mat_solve — MATH linalg op

• Data kinds: matrix × signal → signal

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

उपयोग

square linear system A x = b को हल करता है (LAPACK gesv, partial pivoting के साथ LU)।

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

*a* must be square (n, n); *b* is (n,) or (n, k) (multiple right-hand sides). An exactly singular *A* raises ValueError.

Do not trust the answer of an ill-conditioned system: a solve loses about log10(cond(A)) significant digits, so at cond > 1e12 maybe 3 of float64's ~16 digits survive — and *this function cannot tell you that*, because a near-singular system still "solves". Check mat_cond first; for a rank-deficient or noisy system use mat_lstsq / mat_pinv with an explicit rcond instead.

HALCON: solve_matrix. Returns float64, same trailing shape as *b*.

पूरी 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

• poc_colocalization_crosstalk — py -3.11 examples/poc_colocalization_crosstalk.py

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

mat_lstsq · stat_describe · stat_histogram · stat_zscore · interp_linear · interp_cubic · interp_scattered · poly_fit

इसी category के (linalg)

mat_lstsq · mat_svd · mat_eigh · mat_pinv · mat_cond · 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.