sig
type t
type dim = int
type scalar
val equal : t -> t -> bool
val add : t -> t -> t
val scalar_mul : scalar -> t -> t
val negate : t -> t
val sub : t -> t -> t
val dot : t -> t -> scalar
val zero : t
val is_zero : t -> bool
val add_term : scalar -> dim -> t -> t
val of_term : scalar -> dim -> t
val enum : t -> (scalar * dim) BatEnum.t
val of_enum : (scalar * dim) BatEnum.t -> t
val of_list : (scalar * dim) list -> t
val coeff : dim -> t -> scalar
val pivot : dim -> t -> scalar * t
val order : t -> int
val mul : t -> t -> t
val one : t
val scalar : scalar -> t
val compose : t -> t -> t
val identity : t
val eval : t -> scalar -> scalar
val exp : t -> int -> t
end