Pari.Polynomialtype 'a t = 'a polynomial ty constraint 'a = 'b tyval to_string : 'a t -> stringval eval : 'a t -> 'a -> 'aval degree : 'a t -> intval create : 'a array -> 'a tcreate a returns a_{n-1} X^{n-1} + ... + a_0 for array a of length n.
# let q = Polynomial.create
[|
Integer.of_int 1;
Integer.of_int (-111);
Integer.of_int 6064;
Integer.of_int (-189804);
|];;
val q : Integer.t Polynomial.t = <abstr>
# Polynomial.to_string q;;
- : string = "x^3 - 111*x^2 + 6064*x - 189804"
# let zero = Polynomial.create [| Integer.of_int 0 |];;
val zero : Integer.t Polynomial.t = <abstr>
# let qq = Polynomial.create [| q; q; zero; zero |];;
val qq : Integer.t Polynomial.t Polynomial.t = <abstr>
# Polynomial.to_string qq;;
- : string =
"(x^3 - 111*x^2 + 6064*x - 189804)*y^3 + (x^3 - 111*x^2 + 6064*x - 189804)*y^2"val of_string : string -> 'a t optionval is_irreducible : 'a t -> boolminimal p reduces p to be the minimal polynomial of the roots of p over the field of the rational numbers.
# let q = Polynomial.create
[|
(Rational.of_int 1);
(Rational.of_int (-111));
(Rational.of_int 6064);
(Rational.of_int (-189804));
|];;
val q : Rational.t Polynomial.t = <abstr>
# Polynomial.to_string q;;
- : string = "x^3 - 111*x^2 + 6064*x - 189804"
# let qmin = Polynomial.minimal q;;
val qmin : Rational.t Polynomial.t = <abstr>
# Polynomial.to_string qmin;;
- : string = "x^3 - x^2 - 60*x - 364"
# Number_field.(are_isomorphic (create q) (create qmin));
- : bool = trueval (.%[]) : 'a t -> int -> 'aval roots_ff : finite_field ty t -> (finite_field ty, [ `ROW ]) Vector.tval fold_left : f:('b -> 'a -> 'a) -> acc:'a -> 'b t -> 'aval pol1_f2xx : Signed.long -> Signed.long -> 'a tyval polx_f2xx : Signed.long -> Signed.long -> 'a tyval pol1_flxx : Signed.long -> Signed.long -> 'a tyval polx_flxx : Signed.long -> Signed.long -> 'a tyval polisclass : 'a ty -> Signed.longval polteichmuller : 'a ty -> pari_ulong -> Signed.long -> 'a tyval poliscyclo : 'a ty -> Signed.longval poliscycloprod : 'a ty -> Signed.longval polhermite : Signed.long -> Signed.long -> 'a tyval pollegendre : Signed.long -> Signed.long -> 'a tyval pollegendre_reduced : Signed.long -> Signed.long -> 'a tyval polchebyshev : Signed.long -> Signed.long -> Signed.long -> 'a tyval polchebyshev1 : Signed.long -> Signed.long -> 'a tyval polchebyshev2 : Signed.long -> Signed.long -> 'a tyval poldegree : 'a ty -> Signed.long -> Signed.longval pol0_f2x : Signed.long -> 'a tyval pol1_f2x : Signed.long -> 'a tyval polx_f2x : Signed.long -> 'a tyval polx_zx : Signed.long -> 'a tyval pol_x_powers : Signed.long -> Signed.long -> 'a tyval polmodular_zm : Signed.long -> Signed.long -> 'a tyval polmodular_zxx :
Signed.long ->
Signed.long ->
Signed.long ->
Signed.long ->
'a tyval polsubcyclo : Signed.long -> Signed.long -> Signed.long -> 'a tyval polzag : Signed.long -> Signed.long -> 'a tyval pol_x : Signed.long -> 'a tyval pol_xn : Signed.long -> Signed.long -> 'a tyval pol_xnall : Signed.long -> Signed.long -> 'a tyval polxn_flx : Signed.long -> Signed.long -> 'a tyval pol_1 : Signed.long -> 'a tyval pol_0 : Signed.long -> 'a tyval pol0_flx : Signed.long -> 'a tyval pol1_flx : Signed.long -> 'a tyval polx_flx : Signed.long -> 'a ty