Module Incremental_step_function
An 'a Step_function.t
is a function from Time_ns.t
to 'a
.
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel.Invariant.S1 with type 'a t := 'a t
val invariant : 'a Base__.Invariant_intf.inv -> 'a t Base__.Invariant_intf.inv
val init : 'a t -> 'a
val steps : 'a t -> (Core_kernel.Time_ns.t * 'a) Core_kernel.Sequence.t
val value : 'a t -> at:Core_kernel.Time_ns.t -> 'a
val constant : 'a -> 'a t
constant a
is the step functiont
withvalue t ~at = a
for allat
.
val create_exn : init:'a -> steps:(Core_kernel.Time_ns.t * 'a) list -> 'a t
create_exn ~init ~steps:[(t_1, v_1); ...; (t_n, vn)]
is the step functiont
withvalue t ~at = init
forat < t_1
,value t ~at = vi
fort_i <= at < t_i+1
.create_exn
raises if the times aren't in nondecreasing order, i.e. if for somei < j
,ti > tj
.
val create_from_sequence : init:'a -> steps:(Core_kernel.Time_ns.t * 'a) Core_kernel.Sequence.t -> 'a t