Module Beloch.Qqbar

Exact real algebraic numbers backed by FLINT 3's qqbar (Calcium): canonical minimal-polynomial representation with Arb ball certification. Values are immutable; the C finalizer frees the FLINT struct. ℚ crosses the FFI as strings. See decisions/0013-flint-qqbar-backend.md.

type t
val of_q_str : string -> t
val to_q_str : t -> string
val is_rational : t -> bool
val is_zero : t -> bool
val neg : t -> t
val inv_unsafe : t -> t
val sqrt_unsafe : t -> t
val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val div_unsafe : t -> t -> t
val equal : t -> t -> bool
val cmp_re : t -> t -> int
val sign_re : t -> int
val degree : t -> int
val to_float : t -> float
val minpoly_strs : t -> string array
val express_in_field_raw : t -> t -> int -> string array option
val enclosure_strs : t -> int -> string * string * string
val real_roots_strs : string array -> t array
val roots_qqbar_poly_raw : t array -> t array option
val of_q : Q.t -> t
val to_q : t -> Q.t option
val inv : t -> t
val div : t -> t -> t
val sqrt : t -> t
val minpoly : t -> Poly.t
val express_over : gen:t -> t -> Poly.t option
val enclosure : t -> prec:int -> Q.t * Q.t
val real_roots_of_poly : Poly.t -> t list
val real_roots_of_qqbar_poly : t array -> t list option