cplx_poly_eval — MATH complex op

• Data kinds: signal × cpoints → cpoints

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

उपयोग

complex plane पर polynomial evaluate करता है (Horner, complex-capable)।

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

The complex twin of poly_eval: *coeffs* is highest-power-first ([c_d, ..., c_1, c_0], possibly complex) and *z* is a complex scalar or 1-D array. A scalar query returns a Python complex, an array returns complex128 — mirroring poly_eval's scalar/array behaviour.

This is what makes the rest of the family usable: sample a polynomial on a contour from cplx_contour_circle, then count its zeros with cplx_argument_principle or reconstruct interior values with cplx_cauchy_value. (poly_eval refuses complex input by design — silent imaginary-part truncation — so it cannot serve here.)

Raises ValueError: empty/multi-dimensional *coeffs*, non-finite or masked input, over-cap size, and — the honest one — a result that overflowed to Inf/NaN (a degree-200 polynomial on |z| = 10 genuinely exceeds float64 range; that is refused rather than returned as inf).

HALCON: no complex polynomial operator.

पूरी 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_contour_integral · cplx_winding_number · cplx_cauchy_value · cplx_argument_principle · cplx_laurent_coeffs · cplx_joukowski · cplx_mobius

इसी category के (complex)

cplx_contour_circle · 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.