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