atlas Library · Script File
polynomial.at
Several representations of univariate polynomials are defined below, all have in common a dense representation of coefficients starting at degree 0
Definitions in source order
i_poly type
set_type i_poly = vec { compact storage, machine integers as coefficients }i_poly_mat type
set_type i_poly_mat = [[i_poly]] { sublists are matrix rows, not columns! }int_poly, rat_poly type
set_type { more expensive formats, unbounded coefficients; dummy final part }
[ int_poly = (string indeterminate, [int] coefficients, void .)
, rat_poly = (string indeterminate, [rat] coefficients, void .)
]Fields: indeterminate, coefficients, indeterminate, coefficients
addition of vectors (overrides definition in basic.at) to allow vectors of possibly different lengths, implicitly extending on the right by zeros as needed. This gives the right thing for coefficient vectors of polynomials.L16
fix_add
fix_add = +@(vec,vec)fix_sub
fix_sub = -@(vec,vec)save fixed-length vector addition and subtraction
dot_product
dot_product = *@(vec,vec)and scalar product
also in this file at line 294; also defined in cyclotomicMat.at
prepare for different binding of operators |i_poly| inside this fileL26
+
+ = flex_add@(i_poly,i_poly)also in this file at line 78, line 129, line 155, line 157, line 164, line 166, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- = flex_sub@(i_poly,i_poly)also in this file at line 77, line 90, line 128, line 141, line 156, line 158, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
*
* = convolve@(i_poly,i_poly)also in this file at line 102, line 159, line 160, line 168, line 169, line 174, line 186, line 300, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
strip
strip (i_poly v) = i_polyreduce polynomial by dropping trailing zeros; shouldn't really be needed
operator + does actual stripping
degree 3 overloads
degree (i_poly P) = intdegree is -1 for the zero polynomial
degree (int_poly(,a,)) = int|int_poly| presumed always stripped
degree (rat_poly(,a,)) = int|int_poly| presumed always stripped
also defined in cyclotomic.at, character_tables.at, laurentPolynomial.at
constant_poly 3 overloads
constant_poly (int n) = i_polyconstant_poly (int n,string X) = int_polyconstant_poly (rat c,string X) = rat_polyto_int_poly
to_int_poly ([int] coefs,string X) = int_polyto_rat_poly
to_rat_poly ([rat] coefs,string X) = rat_poly=
= (int_poly(,a,)) = boolequality tests ignore the name of the indeterminate
also in this file at line 50, line 53, line 55, line 368; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
!=
!= (int_poly(,a,)) = boolalso in this file at line 51, line 54, line 56; also defined in basic.at, combinatorics.at, synthetic.at, hash.at, tits.at, cyclotomic.at, cyclotomicMat.at
=
= (int_poly(,a,),int_poly(,b,)) = boolalso in this file at line 48, line 53, line 55, line 368; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
!=
!= (int_poly(,a,),int_poly(,b,)) = boolalso in this file at line 49, line 54, line 56; also defined in basic.at, combinatorics.at, synthetic.at, hash.at, tits.at, cyclotomic.at, cyclotomicMat.at
=
= (rat_poly(,a,)) = boolalso in this file at line 48, line 50, line 55, line 368; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
!=
!= (rat_poly(,a,)) = boolalso in this file at line 49, line 51, line 56; also defined in basic.at, combinatorics.at, synthetic.at, hash.at, tits.at, cyclotomic.at, cyclotomicMat.at
=
= (rat_poly(,a,),rat_poly(,b,)) = boolalso in this file at line 48, line 50, line 53, line 368; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
!=
!= (rat_poly(,a,),rat_poly(,b,)) = boolalso in this file at line 49, line 51, line 54; also defined in basic.at, combinatorics.at, synthetic.at, hash.at, tits.at, cyclotomic.at, cyclotomicMat.at
poly_0
!poly_0 = constant_poly(0)for convenience declare some constants, the ! makes changes to these illegal
poly_1
!poly_1 = constant_poly(1)poly_2
!poly_2 = constant_poly(2)poly_q
!poly_q = i_polypoly_q2
!poly_q2 = i_polymonic_divide
monic_divide (i_poly P, i_poly D) = (i_poly,i_poly)quotient, remainder
-
- (int_poly(X,a,)) = int_polyfor |int_poly| values, indeterminate names inherit from first operand
also in this file at line 32, line 90, line 128, line 141, line 156, line 158, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
+
+ (int_poly(X,a,), int_poly(,b,)) = int_polyalso in this file at line 31, line 129, line 155, line 157, line 164, line 166, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (int_poly(X,a,), int_poly(,b,)) = int_polyalso in this file at line 32, line 77, line 128, line 141, line 156, line 158, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
*
* (int_poly(X,a,), int_poly(,b,)) = int_polyalso in this file at line 33, line 159, line 160, line 168, line 169, line 174, line 186, line 300, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
monic_divide
monic_divide (int_poly(X,P,), int_poly(,D,)) = (int_poly,int_poly)quotient, remainder unstripped: size |degree(D)|
-
- (rat_poly(X,a,)) = rat_polythis is basically copy-pasted from the above, then substituted rat for int
also in this file at line 32, line 77, line 90, line 141, line 156, line 158, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
+
+ (rat_poly(X,a,), rat_poly(,b,)) = rat_polyalso in this file at line 31, line 78, line 155, line 157, line 164, line 166, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (rat_poly(X,a,), rat_poly(,b,)) = rat_polyalso in this file at line 32, line 77, line 90, line 128, line 156, line 158, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
+
+ (int c,int_poly(X,,):p) = int_polysome mixed scalar/polynomial operations, for convenience
also in this file at line 31, line 78, line 129, line 157, line 164, line 166, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (int c,int_poly(X,,):p) = int_polyalso in this file at line 32, line 77, line 90, line 128, line 141, line 158, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
+
+ (int_poly(X,,):p,int c) = int_polyalso in this file at line 31, line 78, line 129, line 155, line 164, line 166, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (int_poly(X,,):p,int c) = int_polyalso in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 165, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
* 2 overloads
* (int c,int_poly(X,p,)) = int_poly* (int_poly(X,p,),int c) = int_polyalso in this file at line 33, line 102, line 168, line 169, line 174, line 186, line 300, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
\
\ (int_poly(X,p,),int c) = int_polyalso in this file at line 170, line 241; also defined in basic.at, lazy_lists.at
%
% (int_poly(X,p,),int c) = int_polyalso in this file at line 172, line 242; also defined in basic.at, extParamPol.at, misc.at
+
+ (rat c,rat_poly(X,,):p) = rat_polyalso in this file at line 31, line 78, line 129, line 155, line 157, line 166, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (rat c,rat_poly(X,,):p) = rat_polyalso in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 158, line 167, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
+
+ (rat_poly(X,,):p,rat c) = rat_polyalso in this file at line 31, line 78, line 129, line 155, line 157, line 164, line 317, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (rat_poly(X,,):p,rat c) = rat_polyalso in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 158, line 165, line 314, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
* 2 overloads
* (rat c,rat_poly(X,p,)) = rat_poly* (rat_poly(X,p,),rat c) = rat_polyalso in this file at line 33, line 102, line 159, line 160, line 174, line 186, line 300, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
\
\ (rat_poly(X,p,),int c) = int_polyalso in this file at line 161, line 241; also defined in basic.at, lazy_lists.at
/
/ (rat_poly(X,p,),rat c) = rat_polyalso in this file at line 175; also defined in basic.at, ratmat.at, cyclotomic.at, lazy_lists.at
%
% (rat_poly(X,p,),rat c) = rat_polyalso in this file at line 162, line 242; also defined in basic.at, extParamPol.at, misc.at
*
* (int_poly(X,p,),rat c) = rat_polyalso in this file at line 33, line 102, line 159, line 160, line 168, line 169, line 186, line 300, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
/
/ (int_poly(X,p,),rat c) = rat_polyalso in this file at line 171; also defined in basic.at, ratmat.at, cyclotomic.at, lazy_lists.at
convolve
convolve ([rat]a,[rat]b) = [rat]the heart of polynomial multiplication
*
* (rat_poly(X,a,), rat_poly(,b,)) = rat_polyalso in this file at line 33, line 102, line 159, line 160, line 168, line 169, line 174, line 300, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
^
^ (rat_poly (X,,):P,int n) = rat_polypower of a rational polynomial
also in this file at line 359; also defined in basic.at, ratmat.at, tits.at, cyclotomic.at, sparse.at, lazy_lists.at
monic_divide
monic_divide (rat_poly(X,P,), rat_poly(,D,)) = (rat_poly,rat_poly)quotient, remainder unstripped: size |degree(D)|
unsafe_divide
unsafe_divide (i_poly p,i_poly d) = (i_poly,i_poly)division of integer polynomial |p| by integer polynomial |d|, with remainder, |d| is not required to be monic, but might division fail in |exact_divide|; not particularly written for speed, rather for simplicity and transparency
division of integer polynomials p=dq+r
divide
divide (rat_poly(X,P,), rat_poly(,D,)) = (rat_poly,[rat])quotient, remainder unstripped: size |degree(D)|
also defined in lazy_lists.at
\%
\% (rat_poly A,rat_poly B) = (rat_poly,rat_poly)also defined in basic.at
\
\ (rat_poly A, rat_poly B) = rat_polyalso in this file at line 161, line 170; also defined in basic.at, lazy_lists.at
%
% (rat_poly A, rat_poly B) = rat_polyalso in this file at line 162, line 172; also defined in basic.at, extParamPol.at, misc.at
Bezout
Bezout = (rat_poly,rat_poly->rat_poly,rat_poly,rat_poly)extended euclidean algorithm find $D=\gcd(A,B)$ and $S,T$ such that $D=SA+TB$ (returns |(D,S,T)| )
also defined in number_theory.at
evaluate_at_1
evaluate_at_1 (i_poly v) = intevaluate polynomial at integer
often we need this easy case
use vector dot-product here
also in this file at line 275, line 281; also defined in stable.at, hodgeParamPol.at
eval 2 overloads
eval (i_poly v,int k) = inteval (i_poly v,Split w) = Splitevaluate polynomial at Split value
also in this file at line 276, line 278, line 282; also defined in KL_polynomial_matrices.at
at_s
at_s (i_poly v) = Splitevaluate_at_1
evaluate_at_1 (int_poly (,c,)) = intalso in this file at line 264, line 281; also defined in stable.at, hodgeParamPol.at
eval 2 overloads
eval (int_poly(,v,),int k) = inteval (int_poly(,v,),Split w) = Splitalso in this file at line 267, line 271, line 282; also defined in KL_polynomial_matrices.at
evaluate_at_1
evaluate_at_1 (rat_poly (,c,)) = ratalso in this file at line 264, line 275; also defined in stable.at, hodgeParamPol.at
eval
eval (rat_poly(,v,),rat k) = ratalso in this file at line 267, line 271, line 276, line 278; also defined in KL_polynomial_matrices.at
cannot evaluate rational polynomial at split integer, so noting hereL284
Polynomial matricesL287
this is currently done based on |i_poly| entries onlyL289
shape
shape (i_poly_mat M) = (int,int)also defined in cyclotomicMat.at
dot_product
dot_product([i_poly] v,[i_poly] w) = i_polydot product of two vectors of polynomials (the name avoids *@(mat,mat))
also in this file at line 24; also defined in cyclotomicMat.at
*
*(i_poly_mat A,i_poly_mat B) = i_poly_matmultiply two matrices of polynomials; here row-based representation really makes a difference. Using operator * here does not conflict with other uses
also in this file at line 33, line 102, line 159, line 160, line 168, line 169, line 174, line 186, line 330, line 333, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
poly_list_add
poly_list_add([i_poly] v,[i_poly] w) = [i_poly]add lists of polynomials, assumed of same length (name avoids +@(mat,mat))
poly_list_sub
poly_list_sub([i_poly] v,[i_poly] w) = [i_poly]-
-(i_poly_mat M) = i_poly_matalso in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 158, line 165, line 167, line 321, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
+
+(i_poly_mat A,i_poly_mat B) = i_poly_matadd or subtract matrices of the same size
also in this file at line 31, line 78, line 129, line 155, line 157, line 164, line 166, line 355, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
-(i_poly_mat A,i_poly_mat B) = i_poly_matalso in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 158, line 165, line 167, line 314, line 357, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
scalar_multiply
scalar_multiply([i_poly] v,i_poly f) = [i_poly]* 2 overloads
*(i_poly f,i_poly_mat M) = i_poly_matpolynomial scalar times polynomial matrix
*(int c, i_poly_mat M) = i_poly_matinteger scalar case can be done a bit more efficiently
also in this file at line 33, line 102, line 159, line 160, line 168, line 169, line 174, line 186, line 300, line 488; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
update_row
update_row ([i_poly] R, int j,i_poly v) = [i_poly]update one entry in a list of polynomials, for instance in a row of a matrix
update_matrix_row
update_matrix_row (i_poly_mat M, int i, [i_poly] row) = i_poly_matupdate one row of a matrix (replacing it by a given new row)
zero_poly_row
zero_poly_row (int n) = [i_poly]zero_poly_matrix 2 overloads
zero_poly_matrix (int rows, int columns) = i_poly_matzero_poly_matrix(int n) = i_poly_matscalar_poly_matrix
scalar_poly_matrix (int n, int c) = i_poly_matidentity_poly_matrix
identity_poly_matrix (int n) = i_poly_matmat_as_poly_mat
mat_as_poly_mat (mat M) = i_poly_matalso defined in stable.at, hodge_deform.at
+
+ (i_poly_mat M, i_poly p) = i_poly_matadd polynomial scalar matrix
also in this file at line 31, line 78, line 129, line 155, line 157, line 164, line 166, line 317, line 486; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- (i_poly_mat M, i_poly p) = i_poly_matalso in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 158, line 165, line 167, line 314, line 321, line 487; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
^
^ = (i_poly,int->i_poly)power of a polynomial
also in this file at line 188; also defined in basic.at, ratmat.at, tits.at, cyclotomic.at, sparse.at, lazy_lists.at
=
= (i_poly_mat M,i_poly_mat N) = boolequality of polynomial matrices
also in this file at line 48, line 50, line 53, line 55; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
is_zero
is_zero (i_poly_mat M) = boolpolynomial matrix is 0 if all its entries are zero-length polynomials
also defined in hodge_functions.at
upper_unitriangular_inverse
upper_unitriangular_inverse (i_poly_mat M) = i_poly_matalso defined in matrix.at
lower_unitriangular_inverse
lower_unitriangular_inverse (i_poly_mat M) = i_poly_matpoly_permute_basis
poly_permute_basis(Permutation sigma, i_poly_mat M) = i_poly_mat$PMP^{-1}$ where $P$ is a permutation matrix, and $M$ a polynomial matrix
some printing functionsL397
make a printable string out of a polynomial and name of indeterminate, for use in other print functionsL399
poly_format
poly_format (i_poly v, string q) = stringwe cannot reuse |poly_format| below, as it takes a |vec| of coefficientsL417
format 2 overloads
format (int_poly(X,cs,)) = stringfor |int_poly| and |rat_poly| that value names the indeterminate; use it
format (rat_poly(X,cs,)) = stringalso defined in cyclotomic.at, extended_misc.at, cyclotomicMat.at, bracket.at
printPoly 2 overloads
printPoly (i_poly v) = voidnice printing of a polynomial
printPoly (i_poly v,string q) = voidshow
show(i_poly v) = voidsynonym
also defined in modules.at, K_Nilpotent.at, good_W_representatives.at, arthur_parameters.at, sub_cells.at, associated_variety_annihilator.at, geck_generic.at, L_packet.at, ratmat.at, Levi_subgroups.at, nilpotent_orbits.at, subgroups.at, poset.at, cyclotomic.at, character_tables.at, springer_tables.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, weak_packets.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, exceptional.at, nilpotent_posets.at, lazy_lists.at
M=poly_mat is a polynomial matrix; e.g. expr> set M= poly_mat: [[ [0,1], [0,0,1]], [[0], [1]]] expr> printPolyMatrix (M) +q +q^2 0 +1L455
printPolyMatrix 4 overloads
printPolyMatrix (i_poly_mat M,int space_size, string X_name) = voidprintPolyMatrix (i_poly_mat M,int space_size) = voidprintPolyMatrix (i_poly_mat M,string char) = voidprintPolyMatrix (i_poly_mat M) = voidpoly_plus
poly_plus = +@(i_poly,i_poly)this provides maybe more meaningful names for |flex_add| and friends
this binding will remain exported
poly_minus
poly_minus = -@(i_poly,i_poly)this binding will remain exported
poly_product
poly_product = *@(i_poly,i_poly)this binding will remain exported
restore normal vector arithmeticL482
+
+ = fix_add@(vec,vec)also in this file at line 31, line 78, line 129, line 155, line 157, line 164, line 166, line 317, line 355; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at
-
- = fix_sub@(vec,vec)also in this file at line 32, line 77, line 90, line 128, line 141, line 156, line 158, line 165, line 167, line 314, line 321, line 357; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at
*
* = dot_product@(vec,vec)also in this file at line 33, line 102, line 159, line 160, line 168, line 169, line 174, line 186, line 300, line 330, line 333; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
sgn_poly
sgn_poly (int k) = i_polydivide_by
divide_by (int k,i_poly v) = i_polyalso defined in basic.at, lazy_lists.at
is_non_negative
is_non_negative = (i_poly->bool)whether an |i_poly| has only non-negative coefficients
same condition as "dominance"
also defined in bigMatrices.at
top_left_square_block
top_left_square_block (i_poly_mat M,int size) = i_poly_matalso defined in matrix.at
vee
vee = i_polypolynomial v
v_power
v_power(int k) = i_polyvshow
vshow(i_poly v) = voidat_v_squared
at_v_squared(i_poly f) = i_polywrite f(q) as a polynomial in v^2=q
Generated from atlas-scripts at commit 648506c (2026-10-13).