Module NumTok.Signed

type t = sign * Unsigned.t
val equal : t -> t -> bool
val is_zero : t -> bool
val of_nat : UnsignedNat.t -> t
val of_int : SignedNat.t -> t
val to_int : t -> SignedNat.t option
val is_int : t -> bool
val sprint : t -> string
val print : t -> Pp.t

sprint and print returns the number as it was parsed, for printing

val parse_string : string -> t option

Parse the string as a signed Coq number, if possible

val of_int_string : string -> t

Convert from a string in the syntax of OCaml's int/int64

val of_string : string -> t

Convert from a string in the syntax of OCaml's string_of_float

val to_string : t -> string

Returns a string in the syntax of OCaml's float_of_string

val of_bigint : num_class -> Z.t -> t
val to_bigint : t -> Z.t option

Convert from and to bigint when the denotation of a bigint

val of_int_frac_and_exponent : SignedNat.t -> UnsignedNat.t option -> SignedNat.t option -> t
val to_int_frac_and_exponent : t -> SignedNat.t * UnsignedNat.t option * SignedNat.t option

n, p and q such that the number is n.p*10^q or n.p*2^q pre/postcondition: classify n = classify p, classify q = CDec

val of_bigint_and_exponent : Z.t -> Z.t exp -> t
val to_bigint_and_exponent : t -> Z.t * Z.t exp

n and p such that the number is n*10^p or n*2^p

val classify : t -> num_class
val is_bigger_int_than : t -> UnsignedNat.t -> bool

Test if an integer whose absolute value is bounded