sig
type polynomial =
FConst of float
| Const of Numbers.num
| Poly of string * (OrderedPoly.polynomial * int) list
type t = OrderedPoly.polynomial
exception Unmatched_variables
val const : int -> OrderedPoly.polynomial
val str : OrderedPoly.polynomial -> string
val is_zero : OrderedPoly.polynomial -> bool
val equal : OrderedPoly.polynomial -> OrderedPoly.polynomial -> bool
val compare : OrderedPoly.polynomial -> OrderedPoly.polynomial -> int
val var : OrderedPoly.polynomial -> string
val lower : OrderedPoly.polynomial -> OrderedPoly.polynomial
val constant_value : OrderedPoly.polynomial -> Numbers.num option
val deg : OrderedPoly.polynomial -> int
val leading_coeff : int -> OrderedPoly.polynomial -> OrderedPoly.polynomial
val const_coeff : OrderedPoly.polynomial -> OrderedPoly.polynomial option
val omit_leading : OrderedPoly.polynomial -> OrderedPoly.polynomial
val multiple : int -> OrderedPoly.polynomial -> OrderedPoly.polynomial
val multiple_num :
Numbers.num -> OrderedPoly.polynomial -> OrderedPoly.polynomial
val constant_factors :
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> (Numbers.num * Numbers.num) option
val add :
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> OrderedPoly.polynomial
val neg : OrderedPoly.polynomial -> OrderedPoly.polynomial
val sub :
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> OrderedPoly.polynomial
val mul :
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> OrderedPoly.polynomial
val pow : OrderedPoly.polynomial -> int -> OrderedPoly.polynomial
val div :
?allow_frac:bool ->
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> OrderedPoly.polynomial
val div_rest :
?allow_frac:bool ->
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> OrderedPoly.polynomial * OrderedPoly.polynomial
val diff : OrderedPoly.polynomial -> OrderedPoly.polynomial
val modified_remainder :
OrderedPoly.polynomial ->
OrderedPoly.polynomial -> OrderedPoly.polynomial
end