Version: v0.6.0

recurrences

Stable function · Differentiate a model

Tier: stable · Kind: function · Topic: Differentiate a model

JuliaPythonRust
recurrencesrecurrencesrecurrences

Note: The causal self-reference recurrences of a view (spec §4.5), with frame and axis. A recurrence’s dim follows each language’s own indexing: 1-based in Julia, 0-based in Python and Rust (the emitted recurrences field of a pair block is 1-based in every binding).

Julia

recurrences(sv::SysView)
recurrences(sv::SysView, obs)
recurrences(sv::SysView, obs, ctx)
recurrences(sv::SysView, obs = _observed_defs(sv), ctx = _ctx(sv)) -> Vector{Recurrence}

Every recurrence of the view (esm-jacobian-spec.md §4.5), in equation order: each observed whose definition reads itself, with its frame and axis read off the definition. A self-read that cannot be placed on one axis is refused with a BandError (EarthSciAST rejects such a document anyway; the producer never guesses).

Source

Python

recurrences(sv, obs: dict, ctx) -> list[Recurrence]

Every recurrence of the view, in equation order: each observed whose definition reads itself, with its frame and axis read off the definition. A self-read the producer cannot place on one axis is refused (EarthSciAST rejects such a document anyway; the producer never guesses).

Source

Rust

pub fn recurrences(sv: &SysView<'_>, obs: &HashMap<String, Expr>, ctx: &Ctx) -> Result<Vec<Recurrence>, BandError>

Every recurrence of the view, in equation order: each observed whose definition reads itself, with its frame and axis read off the definition. A self-read the producer cannot place on one axis is refused (EarthSciAST rejects such a document anyway; the producer never guesses).

Source · Rust docs