sig
type round_mode = Floor | Nearest_up | Ceil | Nearest_down
type tristate = False | Unknown | True
module type Int_type =
sig
type t
type tref
val name : unit -> string
val zero : Numerix.Int_type.t
val one : Numerix.Int_type.t
val make_ref : Numerix.Int_type.t -> Numerix.Int_type.tref
val copy_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
val copy_out : Numerix.Int_type.tref -> Numerix.Int_type.t
val look : Numerix.Int_type.tref -> Numerix.Int_type.t
val add :
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val add_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val add_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val add_1_in :
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val sub :
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val sub_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val sub_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val sub_1_in :
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val mul :
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val mul_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val mul_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val mul_1_in :
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val quomod :
Numerix.Int_type.t ->
Numerix.Int_type.t -> Numerix.Int_type.t * Numerix.Int_type.t
val quo :
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val modulo :
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val gquomod :
Numerix.round_mode ->
Numerix.Int_type.t ->
Numerix.Int_type.t -> Numerix.Int_type.t * Numerix.Int_type.t
val gquo :
Numerix.round_mode ->
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val gmod :
Numerix.round_mode ->
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val quomod_in :
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val quo_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val mod_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val gquomod_in :
Numerix.round_mode ->
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val gquo_in :
Numerix.round_mode ->
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val gmod_in :
Numerix.round_mode ->
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val quomod_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t * int
val quo_1 : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val mod_1 : Numerix.Int_type.t -> int -> int
val gquomod_1 :
Numerix.round_mode ->
Numerix.Int_type.t -> int -> Numerix.Int_type.t * int
val gquo_1 :
Numerix.round_mode -> Numerix.Int_type.t -> int -> Numerix.Int_type.t
val gmod_1 : Numerix.round_mode -> Numerix.Int_type.t -> int -> int
val quomod_1_in :
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> int
val quo_1_in :
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val gquomod_1_in :
Numerix.round_mode ->
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> int
val gquo_1_in :
Numerix.round_mode ->
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val abs : Numerix.Int_type.t -> Numerix.Int_type.t
val abs_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
val neg : Numerix.Int_type.t -> Numerix.Int_type.t
val neg_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
val sqr : Numerix.Int_type.t -> Numerix.Int_type.t
val pow : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val pow_1 : int -> int -> Numerix.Int_type.t
val powmod :
Numerix.Int_type.t ->
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val gpowmod :
Numerix.round_mode ->
Numerix.Int_type.t ->
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val sqr_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
val pow_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val pow_1_in : Numerix.Int_type.tref -> int -> int -> unit
val powmod_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val gpowmod_in :
Numerix.round_mode ->
Numerix.Int_type.tref ->
Numerix.Int_type.t ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val sqrt : Numerix.Int_type.t -> Numerix.Int_type.t
val root : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val gsqrt :
Numerix.round_mode -> Numerix.Int_type.t -> Numerix.Int_type.t
val groot :
Numerix.round_mode -> Numerix.Int_type.t -> int -> Numerix.Int_type.t
val sqrt_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
val root_in :
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val gsqrt_in :
Numerix.round_mode ->
Numerix.Int_type.tref -> Numerix.Int_type.t -> unit
val groot_in :
Numerix.round_mode ->
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val fact : int -> Numerix.Int_type.t
val fact_in : Numerix.Int_type.tref -> int -> unit
val gcd :
Numerix.Int_type.t -> Numerix.Int_type.t -> Numerix.Int_type.t
val gcd_ex :
Numerix.Int_type.t ->
Numerix.Int_type.t ->
Numerix.Int_type.t * Numerix.Int_type.t * Numerix.Int_type.t
val cfrac :
Numerix.Int_type.t ->
Numerix.Int_type.t ->
Numerix.Int_type.t * Numerix.Int_type.t * Numerix.Int_type.t *
Numerix.Int_type.t * Numerix.Int_type.t
val gcd_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val gcd_ex_in :
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val cfrac_in :
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> unit
val isprime : Numerix.Int_type.t -> Numerix.tristate
val isprime_1 : int -> Numerix.tristate
val sgn : Numerix.Int_type.t -> int
val cmp : Numerix.Int_type.t -> Numerix.Int_type.t -> int
val cmp_1 : Numerix.Int_type.t -> int -> int
val eq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
val eq_1 : Numerix.Int_type.t -> int -> bool
val neq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
val neq_1 : Numerix.Int_type.t -> int -> bool
val inf : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
val inf_1 : Numerix.Int_type.t -> int -> bool
val infeq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
val infeq_1 : Numerix.Int_type.t -> int -> bool
val sup : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
val sup_1 : Numerix.Int_type.t -> int -> bool
val supeq : Numerix.Int_type.t -> Numerix.Int_type.t -> bool
val supeq_1 : Numerix.Int_type.t -> int -> bool
val of_int : int -> Numerix.Int_type.t
val of_string : string -> Numerix.Int_type.t
val of_int_in : Numerix.Int_type.tref -> int -> unit
val of_string_in : Numerix.Int_type.tref -> string -> unit
val int_of : Numerix.Int_type.t -> int
val string_of : Numerix.Int_type.t -> string
val bstring_of : Numerix.Int_type.t -> string
val hstring_of : Numerix.Int_type.t -> string
val ostring_of : Numerix.Int_type.t -> string
val nrandom : int -> Numerix.Int_type.t
val zrandom : int -> Numerix.Int_type.t
val nrandom1 : int -> Numerix.Int_type.t
val zrandom1 : int -> Numerix.Int_type.t
val nrandom_in : Numerix.Int_type.tref -> int -> unit
val zrandom_in : Numerix.Int_type.tref -> int -> unit
val nrandom1_in : Numerix.Int_type.tref -> int -> unit
val zrandom1_in : Numerix.Int_type.tref -> int -> unit
val random_init : int -> unit
val nbits : Numerix.Int_type.t -> int
val lowbits : Numerix.Int_type.t -> int
val highbits : Numerix.Int_type.t -> int
val nth_word : Numerix.Int_type.t -> int -> int
val nth_bit : Numerix.Int_type.t -> int -> bool
val shl : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val shr : Numerix.Int_type.t -> int -> Numerix.Int_type.t
val split :
Numerix.Int_type.t -> int -> Numerix.Int_type.t * Numerix.Int_type.t
val join :
Numerix.Int_type.t -> Numerix.Int_type.t -> int -> Numerix.Int_type.t
val shl_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val shr_in : Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val split_in :
Numerix.Int_type.tref ->
Numerix.Int_type.tref -> Numerix.Int_type.t -> int -> unit
val join_in :
Numerix.Int_type.tref ->
Numerix.Int_type.t -> Numerix.Int_type.t -> int -> unit
val toplevel_print : Numerix.Int_type.t -> unit
val toplevel_print_tref : Numerix.Int_type.tref -> unit
exception Error of string
end
module Infixes :
functor (E : Int_type) ->
sig
val ( ++ ) : E.t -> E.t -> E.t
val ( -- ) : E.t -> E.t -> E.t
val ( ** ) : E.t -> E.t -> E.t
val ( // ) : E.t -> E.t -> E.t
val ( %% ) : E.t -> E.t -> E.t
val ( /% ) : E.t -> E.t -> E.t * E.t
val ( << ) : E.t -> int -> E.t
val ( >> ) : E.t -> int -> E.t
val ( ^^ ) : E.t -> int -> E.t
val ( += ) : E.tref -> E.t -> unit
val ( -= ) : E.tref -> E.t -> unit
val ( *= ) : E.tref -> E.t -> unit
val ( /= ) : E.tref -> E.t -> unit
val ( %= ) : E.tref -> E.t -> unit
val ( +. ) : E.t -> int -> E.t
val ( -. ) : E.t -> int -> E.t
val ( *. ) : E.t -> int -> E.t
val ( /. ) : E.t -> int -> E.t
val ( %. ) : E.t -> int -> int
val ( /%. ) : E.t -> int -> E.t * int
val ( ^. ) : int -> int -> E.t
val ( +=. ) : E.tref -> int -> unit
val ( -=. ) : E.tref -> int -> unit
val ( *=. ) : E.tref -> int -> unit
val ( /=. ) : E.tref -> int -> unit
val ( =. ) : E.t -> int -> bool
val ( <>. ) : E.t -> int -> bool
val ( <. ) : E.t -> int -> bool
val ( <=. ) : E.t -> int -> bool
val ( >. ) : E.t -> int -> bool
val ( >=. ) : E.t -> int -> bool
val ( ~~ ) : E.tref -> E.t
end
external chrono : string -> unit = "chrono"
end