package batteries
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=40d18485911e343500a5636bbf1d84e2ee32f924fe87e5fd13a37641a4d8f226
md5=fe4da12b678a82faaeda4e58492ea871
doc/batteries.unthreaded/BatNumber/index.html
Module BatNumber
A common interface for numbers.
Arithmetic overflow.
This kind of exception is raised by "safe" numeric modules whenever the number which should be returned is too large to be represented.
Non-"safe" numeric modules will return a result which depends on the internal representation. For instance, with module Int, max_num + 1 returns min_num. By opposition, with module Safe_int, max_num + 1 raises Overflow.
Not a Number
This kind of exception is raised by "safe" modules whenever the number which should be returned is not a number.
For instance, with module Safe_float, 0.0 / 0.0 raises NaN. By opposition, with module Float, 0.0 / 0.0 does not interrupt computation and returns a special value nan.
type 'a numeric = {zero : 'a;one : 'a;neg : 'a -> 'a;succ : 'a -> 'a;pred : 'a -> 'a;abs : 'a -> 'a;add : 'a -> 'a -> 'a;sub : 'a -> 'a -> 'a;mul : 'a -> 'a -> 'a;div : 'a -> 'a -> 'a;modulo : 'a -> 'a -> 'a;pow : 'a -> 'a -> 'a;compare : 'a -> 'a -> int;of_int : int -> 'a;to_int : 'a -> int;of_string : string -> 'a;to_string : 'a -> string;of_float : float -> 'a;to_float : 'a -> float;
}The smallest set of operations supported by every set of numbers.
This is presented as record to permit lightweight typeclass-style computation.
module type Infix = sig ... endThe infix operators available with any type of numbers
module type Compare = sig ... endAnd if you are ready to drop generic comparison operators, then you can open this one as well
module type RefOps = sig ... endReference operators ala C. Mutates a reference value. x -= y is the same as x := !x - y.
module type Numeric = sig ... endThe full set of operations of a type of numbers
module type Bounded = sig ... endmodule type Discrete = sig ... end