mat_cond — MATH linalg op

• Data kinds: matrix → measurement

• Call: import fullseye as fs; fs.ledger.mat_cond(a) (implementation को सीधे call करना हो तो import mathops; mathops.mat_cond(a), registry से लेना हो तो opsmath.get("mat_cond"))

उपयोग

Spectral (2-norm) condition number s_max / s_min — पूरे linalg family का numerical canary।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

cond == 1 for an orthogonal/orthonormal matrix (the best possible); inf (returned, not raised — the question "how conditioned is it?" has that honest answer) for an exactly singular one. A solve against *A* loses roughly log10(cond(A)) significant digits (Golub & Van Loan §2.6):

• cond ~ 1e3 — comfortable, ~13 digits survive.

• cond ~ 1e8 — half the digits are gone; residuals may still look small while parameters are off.

• cond > 1e12 — do not trust mat_solve here: at best ~3 digits remain. Rescale/centre the problem, or switch to mat_lstsq / mat_pinv with an honest rcond.

Defined for any rectangular (m, n) matrix (via its singular values).

HALCON: no direct operator (combine norm_matrix of *A* and of its inverse).

पूरी family का input contract (fail-closed)

mathops के सभी ops गणना से पहले input की जाँच करते हैं (कुछ भी चुपचाप पास नहीं होता):

• complex input से ValueError — float64 में ज़बरदस्ती बदलने पर imaginary part चुपचाप छूट जाता है (numpy केवल ComplexWarning देता है और "सही दिखने वाला पर गलत" real number लौटाता है)। .real/.imag/abs() स्पष्ट रूप से लिखें, या complex data संभालने वाले complexops का उपयोग करें।

• masked array (masked elements वाला) से ValueError — mask हटाकर नीचे के raw values इस्तेमाल करने वाला implicit conversion अस्वीकार है। भरना है या हटाना है, यह स्पष्ट रूप से बताएँ।

• हर input पर NaN/Inf से ValueError (गिनती बताकर अस्वीकार — क्योंकि यह पूरे परिणाम में फैल जाता है)।

• Shape सख़्त है: 1-D और 2-D को implicit रूप से promote या broadcast नहीं किया जाता (vector slot में matrix या matrix slot में vector देने पर ValueError; reshape स्पष्ट रूप से करें)।

• Size की सीमा: matrix लेने वाले ops और stat_histogram के bins, mathops.MAX_ELEMENTS (2^26 ≈ 6.7 करोड़ elements) से अधिक होने पर ValueError देते हैं।

उपयोग की विस्तृत guide

• math_metrology family guide

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• blas_threads_and_memory — Matrix decompositions धीमे क्यों हैं — BLAS threads, caches, memory layout

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• math_metrology — py -3.11 examples/math_metrology.py

वे अगले ops जिनसे type जुड़ता है (measurement को input के रूप में लेते हैं)

—

इसी category के (linalg)

mat_solve · mat_lstsq · mat_svd · mat_eigh · mat_pinv · mat_lu · mat_qr · mat_cholesky


*Provenance: mathops.py — MATH operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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