- delay :: x -> FRP e m x x
- integral :: (AbstractVector v, AbstractAdd p v) => p -> FRP e m (Rate v) p
- derivative :: (AbstractVector v, AbstractSubtract p v) => FRP e m p (Rate v)
- accumulateNumerical :: Frequency -> (i -> o -> Time -> Time -> Integer -> o) -> o -> FRP e m i o
- integralRK4 :: AbstractVector v => Frequency -> (p -> v -> p) -> p -> FRP e m (Time -> p -> Rate v) p
- integralRK4' :: AbstractVector v => Frequency -> (p -> v -> p) -> (p, Rate v) -> FRP e m (Time -> p -> Rate v -> Acceleration v) (p, Rate v)
- summation :: AbstractAdd p v => p -> FRP e m v p
- threadTime :: FRP e m () Time
- sticky :: (x -> Bool) -> x -> FRP e m x x
- initial :: FRP e m x x
- data EdgeDetectionMode
- edge :: EdgeDetectionMode -> (x -> x -> Bool) -> FRP e m x Bool
- changed :: (x -> x -> Bool) -> FRP e m x Bool
- clingy :: EdgeDetectionMode -> (j -> j -> Bool) -> (j -> p) -> FRP e m j p
Take the integral of a rate over time, using the trapezoidal rule.
Take the derivative of a value over time, by simple subtraction between frames.
accumulate harness for some numerical methods.
Parameters are: current input, previous output, delta time, absolute time, and number of frames at the specified frequency.
Elapsed time since the instantiation of this switch or thread. Reset when a thread switches.
Answer the most recent input that satisfies the predicate. Accepts an initial value, which need not itself satisfy the predicate.
This can be a performance optimization, if it prevents unecessary evaluation of an input.
The edge detection mode. If
Discrete, detect edge between subsequent frames only.
Fuzzy detect edge since the most recent previous detected edge.
HashedDiscrete, the comparison function is itself expensive, and the FRP runtime will compare by
StableNames as a short-circuit optimization.
True only during frames on which the input has changed, based on a user-specified equality predicate.
The predicate function takes the most recent input as its first parameter.