fullseye

cplx_cr_residual — MATH complex op

使い方

Cauchy-Riemann residual of a sampled complex field — “is this field holomorphic?” as a number.

With f = u + i v sampled on a uniform grid, holomorphy means u_x = v_y and u_y = -v_x (Cauchy-Riemann). This returns the relative residual max(|u_x - v_y|, |u_y + v_x|) / max|grad| (central differences, numpy.gradient): 0 = the samples satisfy CR to the discretisation limit, 2 = the field is the conjugate of a holomorphic one (conj(z) gives exactly 2), values in between = partly analytic or noisy.

Grid convention (it decides the sign of the answer): f[i, j] is the field at z = x0 + j*spacing + i*spacing*1j — rows index the increasing imaginary axis, columns the real axis. Image arrays usually run rows downward; feeding one directly measures the conjugate field, whose residual is 2, not 0. Flip rows (f[::-1]) to use image data.

Discretisation, honestly: central differences are exact for polynomials of degree <= 2, so f = z**2 returns exactly 0; for higher order the residual floors at O(h^2 * |f'''|) (measured: f = z**3 on a [-1,1]^2 grid returns 1.7e-3 at h and 4.2e-4 at h/2 — a factor 4.00, the expected second order). Read a small value as “consistent with holomorphic at this resolution”, never as proof.

A constant field returns 0.0 (it is holomorphic; the 0/0 of the normalisation is resolved by that limit, and stated here rather than left to numpy).

Raises ValueError: not a 2-D array, either dimension below 3 (no central difference exists), non-finite/masked input, over-cap size, non-finite or non-positive spacing.

HALCON: no operator (derivate_gauss supplies the real-valued derivatives one would build this from).

ファミリ共通の入力契約(fail-closed)

mathops の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(measurement を入力に取れる)

同カテゴリ(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 ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.