Version: dev

The operator interface

What a leaf calls on an operator: the right-hand side, its derivative products and Jacobian, and map operators.

OperationKindBindingsSummary
applyfunctionJuliaApply the map operator: out = M(u, p, t, Δ), recording in mask (one byte per decision) the discrete decisions taken; the adjoint holds them fixed (operator-interface.md §7).
ftfunctionJuliaout += ∂f_k/∂t: the explicit time derivative.
ft_vjp_pfunctionJuliaout += ∇_p (νᵀ ∂f_k/∂t).
ft_vjp_ufunctionJuliaout += ∇_u (νᵀ ∂f_k/∂t).
hess_pfunctionJuliaout += ∇_p Σᵢ μᵢᵀ J_k(u) wᵢ, for μ a vector of (μᵢ, wᵢ) pairs.
hess_ufunctionJuliaout += ∇_u Σᵢ μᵢᵀ J_k(u) wᵢ, for μ a vector of (μᵢ, wᵢ) pairs.
jacfunctionJuliaJ_k(u) accumulated into the leaf’s matrix storage (operator-interface.md §4).
jvp_ufunctionJuliaout += J_k(u) v: the Jacobian-vector product.
map_jvpfunctionJuliaThe Jacobian-vector product (∂M/∂u) v_u + (∂M/∂p) v_p of a map operator, with the decisions in mask held fixed, written to out, for tangent checks (operator-interface.md §7).
map_vjpfunctionJuliaAccumulate the vector-Jacobian product of a map operator, with the decisions in mask held fixed, into out_u and out_p (operator-interface.md §7).
rhsfunctionJuliaout += f_k(u, p, t): the operator’s contribution to the right-hand side.
vjp_pfunctionJuliaout += f_{k,p}(u)ᵀ w: the vector-Jacobian product with respect to the parameters.
vjp_ufunctionJuliaout += J_k(u)ᵀ w: the vector-Jacobian product with respect to the state.
map_operatortypeRustA map operator u ← M(u, p, t, Δ) (§7).
operatortypeRustAn additive term operator f_k(u, p, t) (§1, §3).

All topics