Module Core_kernel.Float
Floating-point numbers.
- type t- = Core_kernel__.Import.float
include Typerep_lib.Typerepable.S with type t := t
- val typerep_of_t : t Typerep_lib.Std_internal.Typerep.t
- val typename_of_t : t Typerep_lib.Typename.t
module Robust_compare : sig ... endThe results of robust comparisons on nan should be considered undefined.
include Robust_compare.S
- val robust_comparison_tolerance : Core_kernel__.Import.float
- intended to be a tolerance on human-entered floats 
module O : sig ... endmodule Terse : sig ... endinclude Identifiable.S with type t := t and type comparator_witness := Base.Float.comparator_witness
include Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
- val bin_size_t : t Bin_prot.Size.sizer
- val bin_write_t : t Bin_prot.Write.writer
- val bin_read_t : t Bin_prot.Read.reader
- val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
- This function only needs implementation if - texposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant- tafterwards.
- val bin_shape_t : Bin_prot.Shape.t
- val bin_writer_t : t Bin_prot.Type_class.writer
- val bin_reader_t : t Bin_prot.Type_class.reader
- val bin_t : t Bin_prot.Type_class.t
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
- val t_of_sexp : Sexplib0.Sexp.t -> t
- val sexp_of_t : t -> Sexplib0.Sexp.t
include Identifiable.S_common with type t := t
- val compare : t -> t -> Core_kernel__.Import.int
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
- val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel__.Import.Stringable.S with type t := t
include Core_kernel__.Import.Pretty_printer.S with type t := t
- val pp : Base.Formatter.t -> t -> unit
include Comparable.S_binable with type t := t
include Core_kernel__.Comparable_intf.S_common
include Base.Comparable.S
include Base__.Comparable_intf.Polymorphic_compare
- val ascending : t -> t -> int
- ascendingis identical to- compare.- descending x y = ascending y x. These are intended to be mnemonic when used like- List.sort ~compare:ascendingand- List.sort ~cmp:descending, since they cause the list to be sorted in ascending or descending order, respectively.
- val descending : t -> t -> int
- val between : t -> low:t -> high:t -> bool
- between t ~low ~highmeans- low <= t <= high
- val clamp_exn : t -> min:t -> max:t -> t
- clamp_exn t ~min ~maxreturns- t', the closest value to- tsuch that- between t' ~low:min ~high:maxis true.- Raises if - not (min <= max).
- val clamp : t -> min:t -> max:t -> t Base.Or_error.t
include Base.Comparator.S with type t := t
- val comparator : (t, comparator_witness) Base.Comparator.comparator
include Base__.Comparable_intf.Validate with type t := t
- val validate_lbound : min:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_ubound : max:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_bound : min:t Base.Maybe_bound.t -> max:t Base.Maybe_bound.t -> t Base.Validate.check
module Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := tinclude Core_kernel__.Comparable_intf.Map_and_set_binable with type t := t with type comparator_witness := comparator_witness
include Comparator.S with type t := t
- val comparator : (t, comparator_witness) Comparator.comparator
module Map : Map.S_binable with type Key.t = t with type Key.comparator_witness = comparator_witnessmodule Set : Set.S_binable with type Elt.t = t with type Elt.comparator_witness = comparator_witnessinclude Hashable.S_binable with type t := t
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
- val hashable : t Hashtbl.Hashable.t
module Table : Hashtbl.S_binable with type key = tmodule Hash_set : Hash_set.S_binable with type elt = tmodule Hash_queue : Hash_queue.S with type Key.t = tinclude module type of sig ... end with type t := t with module O := Base.Float.O with module Terse := Base.Float.Terse
- val of_float : float -> t
- val to_float : t -> float
- val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
- val hash : t -> Base.Hash.hash_value
- val t_of_sexp : Base.Sexp.t -> t
- val sexp_of_t : t -> Base.Sexp.t
- val of_string : string -> t
- val (>=) : t -> t -> bool
- val (<=) : t -> t -> bool
- val (=) : t -> t -> bool
- val (>) : t -> t -> bool
- val (<) : t -> t -> bool
- val (<>) : t -> t -> bool
- val equal : t -> t -> bool
- val compare : t -> t -> int
- val min : t -> t -> t
- val max : t -> t -> t
- val ascending : t -> t -> int
- val descending : t -> t -> int
- val between : t -> low:t -> high:t -> bool
- val clamp_exn : t -> min:t -> max:t -> t
- val clamp : t -> min:t -> max:t -> t Base.Or_error.t
- type comparator_witness- = Base__Float.comparator_witness
- val comparator : (t, comparator_witness) Base.Comparator.comparator
- val validate_lbound : min:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_ubound : max:t Base.Maybe_bound.t -> t Base.Validate.check
- val validate_bound : min:t Base.Maybe_bound.t -> max:t Base.Maybe_bound.t -> t Base.Validate.check
- val pp : Base.Formatter.t -> t -> unit
- val validate_positive : t Base.Validate.check
- val validate_non_negative : t Base.Validate.check
- val validate_negative : t Base.Validate.check
- val validate_non_positive : t Base.Validate.check
- val is_positive : t -> bool
- val is_non_negative : t -> bool
- val is_negative : t -> bool
- val is_non_positive : t -> bool
- val validate_ordinary : t Base.Validate.check
- val nan : t
- val infinity : t
- val neg_infinity : t
- val max_value : t
- val min_value : t
- val zero : t
- val one : t
- val minus_one : t
- val pi : t
- val sqrt_pi : t
- val sqrt_2pi : t
- val euler : t
- val epsilon_float : t
- val max_finite_value : t
- val min_positive_subnormal_value : t
- val min_positive_normal_value : t
- val to_int64_preserve_order : t -> int64 option
- val to_int64_preserve_order_exn : t -> int64
- val of_int64_preserve_order : int64 -> t
- val one_ulp : [ `Down | `Up ] -> t -> t
- val of_int : int -> t
- val to_int : t -> int
- val of_int63 : Base.Int63.t -> t
- val of_int64 : int64 -> t
- val to_int64 : t -> int64
- val round : ?dir:[ `Down | `Nearest | `Up | `Zero ] -> t -> t
- val iround : ?dir:[ `Down | `Nearest | `Up | `Zero ] -> t -> int option
- val iround_exn : ?dir:[ `Down | `Nearest | `Up | `Zero ] -> t -> int
- val round_towards_zero : t -> t
- val round_down : t -> t
- val round_up : t -> t
- val round_nearest : t -> t
- val round_nearest_half_to_even : t -> t
- val iround_towards_zero : t -> int option
- val iround_down : t -> int option
- val iround_up : t -> int option
- val iround_nearest : t -> int option
- val iround_towards_zero_exn : t -> int
- val iround_down_exn : t -> int
- val iround_up_exn : t -> int
- val iround_nearest_exn : t -> int
- val int63_round_down_exn : t -> Base.Int63.t
- val int63_round_up_exn : t -> Base.Int63.t
- val int63_round_nearest_exn : t -> Base.Int63.t
- val iround_lbound : t
- val iround_ubound : t
- val round_significant : float -> significant_digits:int -> float
- val round_decimal : float -> decimal_digits:int -> float
- val is_nan : t -> bool
- val is_inf : t -> bool
- val min_inan : t -> t -> t
- val max_inan : t -> t -> t
- val (+) : t -> t -> t
- val (-) : t -> t -> t
- val (/) : t -> t -> t
- val (*) : t -> t -> t
- val (**) : t -> t -> t
- val (~-) : t -> t
module Parts = Base__Float.Parts- val modf : t -> Parts.t
- val mod_float : t -> t -> t
- val add : t -> t -> t
- val sub : t -> t -> t
- val neg : t -> t
- val scale : t -> t -> t
- val abs : t -> t
module O = Base__Float.Omodule O_dot = Base__Float.O_dot- val to_string : t -> string
- val to_string_hum : ?delimiter:char -> ?decimals:int -> ?strip_zero:bool -> t -> string
- val to_padded_compact_string : t -> string
- val int_pow : t -> int -> t
- val square : t -> t
- val ldexp : t -> int -> t
- val frexp : t -> t * int
- val log10 : t -> t
- val expm1 : t -> t
- val log1p : t -> t
- val copysign : t -> t -> t
- val cos : t -> t
- val sin : t -> t
- val tan : t -> t
- val acos : t -> t
- val asin : t -> t
- val atan : t -> t
- val atan2 : t -> t -> t
- val hypot : t -> t -> t
- val cosh : t -> t
- val sinh : t -> t
- val tanh : t -> t
- val sqrt : t -> t
- val exp : t -> t
- val log : t -> t
module Class = Base__Float.Class- val classify : t -> Class.t
- val is_finite : t -> bool
- val sign : t -> Base.Sign.t
- val sign_exn : t -> Base.Sign.t
- val sign_or_nan : t -> Base.Sign_or_nan.t
- val create_ieee : negative:bool -> exponent:int -> mantissa:Base.Int63.t -> t Base.Or_error.t
- val create_ieee_exn : negative:bool -> exponent:int -> mantissa:Base.Int63.t -> t
- val ieee_negative : t -> bool
- val ieee_exponent : t -> int
- val ieee_mantissa : t -> Base.Int63.t
module Terse = Base__Float.Tersemodule Private = Base__Float.Private- val to_string_12 : t -> Core_kernel__.Import.string
- to_string_12 xbuilds a string representing- xusing up to 12 significant digits. It loses precision. You can use- "%{Float#12}"in formats, but consider- "%.12g",- "%{Float#hum}", or- "%{Float}"as alternatives.
- val to_string : t -> Core_kernel__.Import.string
- to_string xbuilds a string- srepresenting the float- xthat guarantees the round trip, i.e.,- Float.equal x (Float.of_string s).- It usually yields as few significant digits as possible. That is, it won't print - 3.14as- 3.1400000000000001243. The only exception is that occasionally it will output 17 significant digits when the number can be represented with just 16 (but not 15 or fewer) of them.
- val to_string_round_trippable : t -> Core_kernel__.Import.string
include Quickcheckable.S with type t := t
- val quickcheck_generator : t Base_quickcheck.Generator.t
- val quickcheck_observer : t Base_quickcheck.Observer.t
- val quickcheck_shrinker : t Base_quickcheck.Shrinker.t
- val sign : t -> Sign.t
- val robust_sign : t -> Sign.t
- (Formerly - sign) Uses robust comparison (so sufficiently small numbers are mapped to- Zero). Also maps NaN to- Zero. Using this function is weakly discouraged.
- val gen_uniform_excl : t -> t -> t Quickcheck.Generator.t
- gen_uniform_excl lo hicreates a Quickcheck generator producing finite- tvalues between- loand- hi, exclusive. The generator approximates a uniform distribution over the interval (lo, hi). Raises an exception if- lois not finite,- hiis not finite, or the requested range is empty.- The implementation chooses values uniformly distributed between 0 (inclusive) and 1 (exclusive) up to 52 bits of precision, then scales that interval to the requested range. Due to rounding errors and non-uniform floating point precision, the resulting distribution may not be precisely uniform and may not include all values between - loand- hi.
- val gen_incl : t -> t -> t Quickcheck.Generator.t
- gen_incl lo hicreates a Quickcheck generator that produces values between- loand- hi, inclusive, approximately uniformly distributed, with extra weight given to generating the endpoints- loand- hi. Raises an exception if- lois not finite,- hiis not finite, or the requested range is empty.
- val gen_finite : t Quickcheck.Generator.t
- gen_finiteproduces all finite- tvalues, excluding infinities and all NaN values.
- val gen_positive : t Quickcheck.Generator.t
- gen_positiveproduces all (strictly) positive finite- tvalues.
- val gen_negative : t Quickcheck.Generator.t
- gen_negativeproduces all (strictly) negative finite- tvalues.
- val gen_without_nan : t Quickcheck.Generator.t
- gen_without_nanproduces all finite and infinite- tvalues, excluding all NaN values.
- val gen_infinite : t Quickcheck.Generator.t
- gen_infiniteproduces both infinite values
- val gen_nan : t Quickcheck.Generator.t
- gen_nanproduces all NaN values.
- val gen_normal : t Quickcheck.Generator.t
- gen_normalproduces all normal values
- val gen_subnormal : t Quickcheck.Generator.t
- gen_subnormalproduces all subnormal values
- val gen_zero : t Quickcheck.Generator.t
- gen_zeroproduces both zero values