package zelus

  1. Overview
  2. Docs
type 'a continuous = {
  1. mutable pos : 'a;
  2. mutable der : 'a;
}
type ('a, 'b) zerocrossing = {
  1. mutable zin : 'a;
  2. mutable zout : 'b;
}
type 'a signal = 'a * bool
type zero = bool
type ('a, 'b) node =
  1. | Node : {
    1. alloc : unit -> 's;
    2. step : 's -> 'a -> 'b;
    3. reset : 's -> unit;
    } -> ('a, 'b) node
type ('a, 'b) cnode =
  1. | Cnode : {
    1. alloc : unit -> 's;
    2. copy : 's -> 's -> unit;
    3. step : 's -> 'a -> 'b;
    4. reset : 's -> unit;
    } -> ('a, 'b) cnode
type time = float
type cstate = {
  1. mutable dvec : dvec;
  2. mutable cvec : cvec;
  3. mutable zinvec : zinvec;
  4. mutable zoutvec : zoutvec;
  5. mutable cindex : int;
  6. mutable zindex : int;
  7. mutable cend : int;
  8. mutable zend : int;
  9. mutable cmax : int;
  10. mutable zmax : int;
  11. mutable horizon : float;
  12. mutable major : bool;
}
type ('a, 'b) hnode = cstate -> (time * 'a, 'b) node
type 'b hsimu =
  1. | Hsim : {
    1. alloc : unit -> 's;
    2. maxsize : 's -> int * int;
    3. csize : 's -> int;
    4. zsize : 's -> int;
    5. step : 's -> cvec -> dvec -> zinvec -> time -> 'b;
    6. derivative : 's -> cvec -> dvec -> zinvec -> zoutvec -> time -> unit;
    7. crossings : 's -> cvec -> zinvec -> zoutvec -> time -> unit;
    8. reset : 's -> unit;
    9. horizon : 's -> time;
    } -> 'b hsimu
type ('a, 'b) hsnode =
  1. | Hnode : {
    1. state : 's;
    2. zsize : int;
    3. csize : int;
    4. derivative : 's -> 'a -> time -> cvec -> dvec -> unit;
    5. crossing : 's -> 'a -> time -> cvec -> zoutvec -> unit;
    6. output : 's -> 'a -> cvec -> 'b;
    7. setroots : 's -> 'a -> cvec -> zinvec -> unit;
    8. majorstep : 's -> time -> cvec -> 'a -> 'b;
    9. reset : 's -> unit;
    10. horizon : 's -> time;
    } -> ('a, 'b) hsnode
OCaml

Innovation. Community. Security.