数式処理の内部表現と組み込み関数です。

第0.43版 2016年10月23日
第0.39版 2010年 9月23日


内部表現

 <A_list> = <rat> | <poly>
 <rat> = ("rat", <ploy>, <poly>)
 <poly> = ("poly", <term_list>, <opt>) // <opt> is for extension
 <term_list> = (<term>, ...)
 <term> = ((<const>, <const>), <var_list>, <func_list>)
 <var_list>  = (<var>, ...)  // order of <var>  is order of strcmp of <name>
 <func_list> = (<func>, ...) // order of <func> is order of strcmp of <name>
 <var> = ("var", <name>, <index_list>, <degree>)
 <index_list> = (<index-1>, ... , <index-k>)   // k >=0
 <func> = ("func", <name>, <A_list_list>, <degree>)
 <A_list_list> = (<A-list-1>, ..., <A-list-k>) // k >=0, order of <A_list> is order of listcmp of <A_list>
 <index>  // integer of 0 or more, however, variable of 1st power without affixing character OK
 <degree> // integer

math("add_poly", tl1, tl2)

term_list表現で、多項式tl1と多項式tl2の和の多項式を返します。

math("sub_poly", tl1, tl2)

term_list表現で、多項式tl1と多項式tl2の差の多項式を返します。

math("mul_poly", tl1, tl2)

term_list表現で、多項式tl1と多項式tl2の積の多項式を返します。

math("divmod_poly", tl1, tl2)

term_list表現で、多項式tl1と多項式tl2の商をdiv、余りをmodとするとき、
(div, mod)を返します。

math("divmod_poly2", tl1, tl2, vf, v, l)

term_list表現で、多項式tl1と多項式tl2の商をdiv、余りをmodとするとき、
変数はたは関数情報(vf, v, l)に着目して、(div, mod)を返します。

math("degree_poly", tl, vf, v, l)

(vf,v,l)で指定される変数または関数について、term_list表現の多項式tlの次数を返します。

math("coef_poly", tl, vf, v, l, d)

(vf,v,l)で指定される次数dの変数または関数について、term_list表現の多項式tlの係数を返します。

math("normalize", tl)

term_list表現で、多項式tlの単項の共通因子を除いた多項式を返します。
最大公約多項式の取得の時等で使用します。

math("normalize2", tl1, tl2)

term_list表現で、多項式tl1と多項式tl2の単項の共通因子を除いた多項式をペアで返します。
有理式の分母と分子の共通項の削除等に使用します。

math("normalize3_var", vl1, vl2)

var_list表現の変数リストvl1からとvar_list表現の変数リストvl2を
除いたvar_list表現の変数リストを返します。

math("normalize3_func", fl1, fl2)

func_list表現の変数リストfl1からとfunc_list表現の変数リストfl2を
除いたfunc_list表現の変数リストを返します。

math("to_gfp_poly", tl, mod)

term_list表現の多項式tlの係数を素数modを法とする有限体に変えた多項式を返します。
多項式tlは整係数である必要があります。

math("from_gfp_poly", tl)

係数を素数modを法とする有限体に変えた多項式を係数を整数体に戻した多項式を返します。