Module Solidity_common.ExtQ
include module type of Q with type t = Q.t
type t = Q.t = {
num : Z.t;
den : Z.t;
}
val make : Z.t -> Z.t -> t
val of_int32 : int32 -> t
val of_int64 : int64 -> t
val of_nativeint : nativeint -> t
val of_ints : int -> int -> t
val of_float : float -> t
val of_string : string -> t
type kind =
| ZERO
| INF
| MINF
| UNDEF
| NZERO
val compare : t -> t -> int
val equal : t -> t -> bool
val to_int32 : t -> int32
val to_int64 : t -> int64
val to_nativeint : t -> nativeint
val to_string : t -> string
val to_float : t -> float
val mul_2exp : t -> int -> t
val div_2exp : t -> int -> t
val output : Stdlib.out_channel -> t -> unit
val sprint : unit -> t -> string
val bprint : Stdlib.Buffer.t -> t -> unit
val pp_print : Stdlib.Format.formatter -> t -> unit
val (lsl) : t -> int -> t
val (asr) : t -> int -> t
val (//) : int -> int -> t
val (///) : Z.t -> Z.t -> t
val (<=) : t -> t -> bool
val (>=) : t -> t -> bool
val (<>) : t -> t -> bool
val to_fixed_with_dec : int -> Q.t -> Z.t
val to_fixed : Q.t -> Z.t * int