package batteries
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=1bcb27dfbd130eb057561196ef851649
sha512=2a56611b09a5f1cba6457539f8b6bc87a5f2a5454b36cdb39f6e0d6a5dac6db179aab1ba87c74dd49cc41df31a9a96feb349028ea41df7371ecb47f4d9dfafc4
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