stats op• Data kinds: signal → pairs
• Call: import fullseye as fs; fs.ledger.stat_histogram(x, bins=10, range=None, density=False) (implementation को सीधे call करना हो तो import mathops; mathops.stat_histogram(x, bins=10, range=None, density=False), registry से लेना हो तो opsmath.get("stat_histogram"))
• Ledger के ज़रिए return value: fullseye.ledger.stat_histogram(...) केवल घोषित out type pairs का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.stat_histogram.raw(...) का उपयोग करें, या mathops.stat_histogram को सीधे call करें।
binning को explicit रखते हुए 1-D sample का histogram।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
*bins* is a positive integer count of equal-width bins; *range* is an explicit (lo, hi) (finite, lo < hi) or None to span the data (values exactly at hi land in the last bin, numpy's convention; with an explicit *range*, values outside it are excluded from every bin — they simply do not count, which is why passing *range* explicitly is the honest choice when comparing histograms across datasets). With density=False (default) *counts* are occurrence frequencies (int64, summing to the number of in-range samples); with density=True they form a probability density (float64, integrating to 1 over the range). A *range* that excludes every sample raises ValueError under density=True (the density would be 0/0 — silent NaNs refused) while density=False honestly returns all-zero counts. *bins* is capped at MAX_ELEMENTS (the edge/count arrays are allocations too).
Returns (counts, edges) — edges has bins + 1 entries; bin *i* is [edges[i], edges[i+1]).
HALCON: tuple_histo_range (and gray_histo for whole images).
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 देते हैं।
• measurement_uncertainty — Measurement uncertainty और calibration — 'हम माप रहे हैं' कहने के लिए क्या चाहिए
• 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 में दिए गए हैं।
• math_metrology — py -3.11 examples/math_metrology.py
• poc_thermal_radiometry — py -3.11 examples/poc_thermal_radiometry.py
pairs को input के रूप में लेते हैं)neighbour_index_gaps · curve_locality
stats)stat_describe · stat_covariance · 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.