Units & uncertainty
The two pillars: native physical units and ±σ measurement uncertainty, propagated correctly through every operation — end to end.
Why this matters
In most numeric tools a voltage and a length are both "just doubles," and sin(volts) happily returns garbage. Captyse refuses that. Every quantity carries its physical dimension and, optionally, a standard uncertainty $\sigma$ — and both propagate correctly through arithmetic, FFTs, filters, fits, and even a live ODE solve.
Pillar A — physical units
Captyse has a full dimensional-analysis system: a sparse representation over the seven SI base dimensions, affine units (so °C, °F, and K coexist with offsets, not just scale factors), and a recursive unit-expression parser for things like kg·m/s² or mV/√Hz.
Unit algebra runs on every binary operation. Multiplying a velocity by a time yields a length:
Rejecting nonsense, loudly
Adding incommensurable quantities is a dimensional error, not a silent bug:
volts + seconds → rejected. Captyse tells you why, instead of returning a meaningless number.Units flow through matrices, tensors, and complex numbers — not just scalars — and through the simulation solver, where an integrator's output unit is derived as derivative_unit × time_unit (so over seconds correctly yields metres).
Pillar B — measurement uncertainty
Every value can carry a standard uncertainty . Captyse propagates it continuously using first-order Gaussian error propagation with a Taylor kernel. For a function of independent inputs:
Correlation-aware lineage
Naive propagation gets wrong, reporting instead of . Captyse tracks the provenance of each value, so correlated terms cancel correctly — even when the subtraction happens across a compound-block boundary. This is genuinely hard, and most tools get it wrong.
Nonlinear operations
For nonlinear ops (min/max/clamp/saturation/abs/products), a first-order kernel isn't enough. Captyse uses a moment-matching layer — Clark's method, folded-normal results, mixture switching, and second-order corrections — to capture both the bias () and the non-Gaussian spread a naive piecewise selection would miss.
The combined claim
Wire up a measurement chain — sensor → calibration → FFT → filter → fit → simulation — and the final number comes out as value ± σ [unit] that is physically meaningful and statistically honest, end to end. Confidence bands (±kσ) render directly on your plots. That is the headline differentiator.