1 # -*- coding: utf-8 -*-
11 # [_order_min_] 次数の最小値 (ex. 2)
12 # [_order_max_] 次数の最大値 (ex. 3)
13 # [_x_] 使用する変数 (ex. ['x'] / [['x', 'y']])
14 # [_factor_minus_] 真なら整数部に負の数を使用する (ex. true)
15 # [_factor_min_] 整数部の最小値 (ex. 0)
16 # [_factor_max_] 整数部の最大値 (ex. 100)
18 class Factorization < HighOrderExpression
20 validation /\A(?:\d+)?([a-zA-Z])\^2 [+-] (?:\d+)?\1 [+-] \d+\z/
21 validation /\A(?:\d+)?([a-zA-Z])\^2 [+-] (?:\d+)?\1([a-zA-Z]) [+-] \d+\2\^2\z/
22 validation /\A(?:\d+)?[a-zA-Z]\^2 [+-] (?:\d+)?[a-zA-Z]\^2\z/
24 validation /\A(?:\d+)?([a-zA-Z])\^3 [+-] (?:\d+)?\1\^2 [+-] (?:\d+)?\1 [+-] \d+\z/
25 validation /\A(?:\d+)?([a-zA-Z])\^3 [+-] (?:\d+)?\1\^2([a-zA-Z]) [+-] (?:\d+)?\1\2\^2 [+-] (?:\d+)?\2\^3\z/
30 :order_min => 2, :order_max => 3,
31 :factor_minus => true,