cplx_escape_time — MATH complex op

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

• Call: import fullseye as fs; fs.ledger.cplx_escape_time(kind='mandelbrot', param=0j, centre=0j, half_width=2.0, shape=(256, 256), max_iter=64, escape_radius=2.0) (implementation को सीधे call करना हो तो import mathops; mathops.cplx_escape_time(kind='mandelbrot', param=0j, centre=0j, half_width=2.0, shape=(256, 256), max_iter=64, escape_radius=2.0), registry से लेना हो तो opsmath.get("cplx_escape_time"))

उपयोग

z -> z**2 + c के कितने steps में escape disc से बाहर निकलता है।

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

kind="mandelbrot" varies c over the window from z = 0; kind="julia" fixes c = param and varies the starting z. The result is a float image of iteration counts; points that never escape carry max_iter.

★This one is gated by theorems, not by a reference picture.

• *Escape radius*: once |z| > 2 (with |c| <= 2) the orbit diverges, so escape_radius = 2 is not a tuning knob but the exact threshold.

• *Main cardioid*: c lies in the main cardioid iff the fixed point z* = (1 - sqrt(1 - 4c)) / 2 is attracting, i.e. |2 z*| < 1. Every such c provably never escapes, so those pixels must read exactly max_iter — a closed-form interior test for a set usually drawn by iteration alone. The period-2 bulb |c + 1| < 1/4 is the same kind of statement.

• *Symmetry*: both families are invariant under conjugation, so the image must be exactly mirror-symmetric about the real axis (bit for bit, not to a tolerance) when the window is.

Raises ValueError: unknown kind; non-finite param; max_iter < 1; escape_radius <= 0; degenerate window.

HALCON: no 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 करते हैं)

• poc_complex_plane_fields — py -3.11 examples/poc_complex_plane_fields.py

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

wave_fringe_period · abel_inverse_image · abel_revolve · hankel_image · dct_transform · dwt_transform · chebyshev_coeffs_nd · geodesic_heat_grid

इसी category के (complex)

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


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