Systems
Systems¶
TSDynamics ships 149 built-in systems across three families:
| Family | Base class | Count | Time | Engine |
|---|---|---|---|---|
| Continuous | ContinuousSystem |
118 | continuous | JiTCODE (compiled C) |
| Delay | DelaySystem |
5 | continuous, with memory | JiTCDDE (compiled C) |
| Discrete | DiscreteMap |
26 | discrete | Numba (JIT) |
Every built-in is importable from the top level:
or discoverable programmatically through the registry:
from tsdynamics import registry
registry.families() # {'ode': 118, 'dde': 5, 'map': 26}
[e.name for e in registry.all_systems(family="dde")]
# ['MackeyGlass', 'IkedaDelay', 'SprottDelay', 'ScrollDelay', 'PiecewiseCircuit']
How the pages below are built¶
The per-system pages under each family section are generated from the code at build time — there are no hand-written equation pages to drift out of sync. For each registered system, the generator renders:
- the governing equations, derived from the actual symbolic
_equations(or_step) definition that the integrator compiles, - the default parameters, dimension, and named variables,
- a phase-portrait or orbit figure integrated at build time,
- the literature reference and known Lyapunov values, when the class declares them.
Adding a system = writing the class¶
There is no separate documentation step. Subclass the right base class (see the mental model), and the new class auto-registers; its documentation page, registry entry, and bulk test coverage all follow from the class definition itself. The full checklist lives in Contributing.