Module Beloch.Poly

type t = Q.t array

Dense univariate polynomials over ℚ, low coefficient first. Invariant: no trailing-zero coefficients; the zero polynomial is ||.

val normalize : Q.t array -> t
val of_list : Q.t list -> t
val zero : t
val is_zero : t -> bool
val degree : t -> int
val leading : t -> Q.t
val const : Q.t -> t
val eval : t -> Q.t -> Q.t
val add : t -> t -> t
val neg : t -> t
val sub : t -> t -> t
val scale : Q.t -> t -> t
val mul : t -> t -> t
val derivative : t -> t
val compose : t -> t -> t
val divmod : t -> t -> t * t
val rem : t -> t -> t
val monic : t -> t
val det : Q.t array array -> Q.t
val resultant : t -> t -> Q.t
val qpow : Q.t -> int -> Q.t
val gcd : t -> t -> t
val squarefree_part : t -> t
val inv_mod : t -> t -> t
val sign_at : t -> Q.t -> int
val sturm_sequence : t -> t list
val sign_changes : t list -> Q.t -> int
val count_roots_in : t list -> Q.t -> Q.t -> int
val cauchy_bound : t -> Q.t
val sign_variations : t -> int
val reverse : t -> t
val descartes_test : t -> Q.t -> Q.t -> int
val isolate_roots : t -> (Q.t * Q.t) list
val interpolate : (Q.t * Q.t) list -> t