residue_crt — RESIDUE robust op

• Data kinds: matrix × signal → table

• Call: import fullseye as fs; fs.ledger.residue_crt(residues, periods, weights=None, lo=0.0, hi=None) -> 'dict' (to call the implementation directly, import residue; residue.residue_crt(residues, periods, weights=None, lo=0.0, hi=None) -> 'dict'; from the registry, opsresidue.get("residue_crt"))

Usage

Weighted robust CRT over real periods -> dict.

Solve v ≡ residues[i] (mod periods[i]) for v in [lo, hi). residues has the band axis first, shape (N,) or (N, ...) — every trailing element is solved independently (one pixel, one sample). weights (same shape, or (N,)) say how much each band is trusted — typically the product of the two amplitudes the phase came from, so a band with no contrast gets no vote.

Method: every candidate v = r_ref + k p_ref of the longest period inside the range is scored by phasor agreement sum_i w_i cos(2 pi (v - r_i)/p_i) (the maximum-likelihood criterion for von-Mises phase noise); the best one is refined by the inverse-variance-weighted mean of the signed residuals.

Returns {"value", "score", "margin", "residual", "n_candidates", "unambiguous_range"}: score in [-1, 1] (1 = all bands agree exactly), margin = best minus runner-up score (small = the answer was a near tie — treat as unreliable), residual per band in the units of v. hi defaults to lo + the least common multiple of the periods (when they are commensurate); a range wider than that is refused, because two values in it would have identical residues.

Exactness: integer residues of pairwise-coprime integer periods reproduce residue_integer_crt exactly. Robustness: with periods Γ M_i (M_i coprime integers) a value is recovered exactly whenever every residue error is below Γ/4 (Wang & Xia's bound); beyond it the margin collapses first.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_residue_crt — py -3.11 examples/poc_residue_crt.py

Ops the type connects to (they accept table as input)

—

Same category (robust)

residue_fault_locate


*Provenance: residue.py — RESIDUE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.