cplx_contour_circle — MATH complex op

• Data kinds: कोई नहीं → cpoints (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.cplx_contour_circle(center=0.0, radius=1.0, n=256, orientation='ccw') (implementation को सीधे call करना हो तो import mathops; mathops.cplx_contour_circle(center=0.0, radius=1.0, n=256, orientation='ccw'), registry से लेना हो तो opsmath.get("cplx_contour_circle"))

उपयोग

circle को closed contour के रूप में sample करता है — मानक integration path।

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

Returns n complex points center + radius * exp(±i * 2*pi*k/n), k = 0..n-1. The closing segment z[-1] -> z[0] is implicit: the first point is *not* repeated (every contour op in this family closes the polygon itself; repeating it would only add a zero-length segment).

*orientation* is explicit because in complex analysis the sign of every result depends on it: 'ccw' (default) is the positive/mathematical direction — the one for which the residue theorem, the Cauchy formula and the argument principle carry a + sign — and 'cw' negates all three.

Honest limitation: this is a polygon through samples of the circle, not the circle. Its enclosed area is short by a factor sinc-like in 2*pi/n, and every quadrature on it converges as O(n^-2) (cplx_contour_integral documents the measured rate).

Raises ValueError: non-finite *center*/*radius*, radius <= 0, n not an integer in [3, MAX_CONTOUR_POINTS] (a fail-closed size cap — n=10**9 would allocate 16 GB), unknown *orientation*.

HALCON: no complex-plane operator (gen_circle_contour_xld draws the same geometry as an XLD contour for image space).

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

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

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

cplx_poly_eval · cplx_contour_integral · cplx_winding_number · cplx_cauchy_value · cplx_argument_principle · cplx_laurent_coeffs · cplx_joukowski · cplx_mobius

इसी category के (complex)

cplx_poly_eval · cplx_contour_integral · cplx_winding_number · cplx_cauchy_value · cplx_argument_principle · cplx_laurent_coeffs · cplx_joukowski · cplx_mobius


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