Module Core.Piecewise_linear

Piece-wise linear interpolation from float-like types to float.

type ('key, 'value) t_

This type constructor is how we expose, for instance, that Make(K)(V).t and Stable.V1.Make(K)(V).t are the same type (as long as Stable.V1 is current). Likewise, if K0.t = K1.t, then Make(K0)(V).t = Make(K1)(V).t.

module type S : Core__.Piecewise_linear_intf.S with type (k, v) t_ := (k, v) t_
module Make : functor (Key : Core__.Piecewise_linear_intf.Float_like) -> functor (Value : Core__.Piecewise_linear_intf.Float_like) -> S with type key = Key.t with type value = Value.t
type ('key, 'value) t_invertible
module type S_invertible : Core__.Piecewise_linear_intf.S_invertible with type (k, v) t_ := (k, v) t_invertible
module Make_invertible : functor (Key : Core__.Piecewise_linear_intf.Float_like) -> functor (Value : Core__.Piecewise_linear_intf.Float_like) -> S_invertible with type key = Key.t with type value = Value.t

Sexp conversion of many of the following is lossy, because sexp conversion in the underlying modules is lossy.

module Ofday : S with type key = Core__.Import_time.Time.Ofday.t with type value = float
module Span : S with type key = Core__.Import_time.Time.Span.t with type value = float
module Time : S with type key = Core__.Import_time.Time.t with type value = float
module Ofday_ns : S with type key = Core__.Core_time_ns.Ofday.t with type value = float
module Span_ns : S with type key = Core__.Core_time_ns.Span.t with type value = float
module Time_ns : S with type key = Core__.Core_time_ns.t with type value = float

Since keys are represented as floats internally, the precision of the keys is about 238ns (from early 2004 to early 2038).

module Float : S with type key = float with type value = float
module Int : S with type key = int with type value = float
module Stable : sig ... end

Note that applications of the following functors are only as stable as Key and Value.