include sig ... end
val hash_fold_t : Ppx_hash_lib.Std.Hash.state ‑> t ‑> Ppx_hash_lib.Std.Hash.state
val hash : t ‑> Ppx_hash_lib.Std.Hash.hash_value
Sexp conversions represent values as decimals of up to nine decimal places if
possible, or else as (x + y/z)
where x
is decimal and y
and z
are integers. So
for example, 1/3 <-> (0.333333333 + 1/3000000000). In string and sexp conversions,
values with denominator of zero are special-cased: 0/0 <-> "nan", 1/0 <-> "inf", and
-1/0 <-> "-inf".
include Core_kernel.Sexpable with type t := t
val t_of_sexp : Base__.Sexplib.Sexp.t ‑> t
val sexp_of_t : t ‑> Base__.Sexplib.Sexp.t
include Core_kernel.Comparable with type t := t
include Core_kernel__.Comparable_intf.S_common
include Base.Comparable_intf.S
include Base.Comparable_intf.Polymorphic_compare
ascending
is identical to compare
. descending x y = ascending y x
. These are
intended to be mnemonic when used like List.sort ~cmp:ascending
and List.sort
~cmp:descending
, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max
returns t'
, the closest value to t
such that
between t' ~low:min ~high:max
is 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 := t
module Map : Core_kernel__.Core_map.S with type Key.t = t with type Key.comparator_witness = comparator_witness
module Set : Core_kernel__.Core_set.S with type Elt.t = t with type Elt.comparator_witness = comparator_witness
include Core_kernel.Hashable with type t := t
include Core_kernel.Hashable.Common
val hash : t ‑> Core_kernel__.Import.int
val compare : t ‑> t ‑> Core_kernel__.Import.int
val hashable : t Core_kernel.Hashable.Hashtbl.Hashable.t
module Table : Core_kernel.Hashable.Hashtbl.S with type key = t
module Hash_set : Core_kernel.Hash_set.S with type elt = t
module Hash_queue : Core_kernel.Hash_queue.S with type Key.t = t
gen
produces values with an order of magnitude (roughly the number of digits) in the
numerator and denominator proportional to Quickcheck.Generator.size
. Also includes
values with zero in the denominator.
include Core_kernel.Binable with type t := t
include Core_kernel__.Binable0.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 t
exposed 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 t
afterwards.
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
gen
produces values with an order of magnitude (roughly the number of digits) in the
numerator and denominator proportional to Quickcheck.Generator.size
. Also includes
values with zero in the denominator.
val zero : t
val one : t
val ten : t
val hundred : t
val thousand : t
val million : t
val billion : t
val trillion : t
val tenth : t
val hundredth : t
val thousandth : t
val millionth : t
val billionth : t
val trillionth : t
Beware: 2 ** 8_000_000
will take at least a megabyte to store the result,
and multiplying numbers a megabyte long is slow no matter how clever your algorithm.
Be careful to ensure the second argument is reasonably-sized.
Beware: 2 ** 8_000_000
will take at least a megabyte to store the result,
and multiplying numbers a megabyte long is slow no matter how clever your algorithm.
Be careful to ensure the second argument is reasonably-sized.
val iround : ?dir:[ `Down | `Up | `Nearest | `Zero ] ‑> ?to_multiple_of:int ‑> t ‑> int option
None
if the result would overflow or to_multiple_of
is zero.
val iround_exn : ?dir:[ `Down | `Up | `Nearest | `Zero ] ‑> ?to_multiple_of:int ‑> t ‑> int
Exception if the result would overflow or to_multiple_of
is zero.
val to_string : t ‑> string
Decimal. Output is truncated (not rounded) to nine decimal places, so may be lossy.
Consider using sexp_of_t
if you need lossless stringification.
val to_int_exn : t ‑> int
val is_zero : t ‑> bool
val sign : t ‑> int
val of_string : string ‑> t
val of_int : int ‑> t
val of_float : float ‑> t
val pp : Format.formatter ‑> t ‑> unit
val gen_finite : t Core_kernel.Quickcheck.Generator.t
gen_finite
is like gen
but excludes values with zero in the denominator.
val gen_uniform_excl : t ‑> t ‑> t Core_kernel.Quickcheck.Generator.t
gen_uniform_excl lower_bound upper_bound
produces a uniform distribution between
lower_bound
and upper_bound
, exclusive, in units based on the fractional parts of
the bounds plus a number of decimal places proportional to
Quickcheck.Generator.size
.
val gen_incl : t ‑> t ‑> t Core_kernel.Quickcheck.Generator.t
gen_incl lower_bound upper_bound
produces a distribution of values between
lower_bound
and upper_bound
, inclusive, that is approximately uniform with extra
weight given to producing the endpoints lower_bound
and upper_bound
.
module Stable : sig ... end
module O : sig ... end