stat_covariance — MATH stats op

• Data kinds: matrix → matrix

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

उपयोग

(N, D) observations का sample covariance matrix → (D, D)।

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

Rows are observations, columns are variables — the (N, D) orientation every Fullseye point/sample API uses (note np.cov defaults to the *transposed* convention). Uses the unbiased ddof=1 estimator (divides by N - 1), hence the N >= 2 requirement. The diagonal holds the per-variable sample variances; the result is symmetric positive semi-definite by construction, so it can go straight into mat_eigh for principal axes (the covariance-ellipse workflow).

HALCON: no public tuple/matrix operator — covariance lives inside HALCON's calibration and matching internals only.

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

• measurement_uncertainty — Measurement uncertainty और calibration — 'हम माप रहे हैं' कहने के लिए क्या चाहिए

संदर्भ (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_thermal_radiometry — py -3.11 examples/poc_thermal_radiometry.py

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

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

इसी category के (stats)

stat_describe · stat_histogram · stat_correlation · stat_zscore


*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.