|
2.4.2 poly expressions
A poly expression is (optional parts in square brackets):
-
a monomial (there are NO spaces allowed inside a monomial)
| [coefficient] ring_variable [ exponent] [ring_variable [exponent] ...]
|
-
an identifier of type poly
-
a function returning poly
-
poly expressions combined by the arithmetic operations
+ , - , * , / , or ^ .
-
a type cast to poly
Example:
| 2x, x3, 2x2y3, xyz, 2xy2; // are monomials
2*x, x^3, 2*x^2*y^3, x*y*z, 2*x*y^2; // are poly expressions
2*x(1); // is a valid poly expression, but not 2x(1) (a syntax error)
2*x^3; // is a valid poly expression equal to 2x3 (a valid monomial)
// but not equal to 2x^3 which will be interpreted as (2x)^3
// since 2x is a monomial
ring r=0,(x,y),dp;
poly f = 10x2y3 +2x2y2-2xy+y -x+2;
lead(f);
==> 10x2y3
leadmonom(f);
==> x2y3
simplify(f,1); // normalize leading coefficient
==> x2y3+1/5x2y2-1/5xy-1/10x+1/10y+1/5
poly g = 1/2x2 + 1/3y;
cleardenom(g);
==> 3x2+2y
int i = 102;
poly(i);
==> 102
typeof(_);
==> poly
|
Remark: In the non-commutative case see PLURAL conventions.
Example:
| ring r=0,(x,y),dp;
ncalgebra(1,1);
// it is a Weyl algebra
r;
==> // characteristic : 0
==> // number of vars : 2
==> // block 1 : ordering dp
==> // : names x y
==> // block 2 : ordering C
==> // noncommutative relations:
==> // yx=xy+1
yx; // not correct input
==> xy
y*x; // correct input
==> xy+1
|
|