Classes and extremals¶
Ma–Minda class admissibility, sampled membership and containment screens, and exact canonical-extremal coefficients. A screen is not a proof unless the result carries a separate certificate.
geometric_function_atlas.classes
¶
Ma–Minda class screens and extremal coefficients.
The website source catalog enumerates named and parametric Ma–Minda classes
S*(phi) with phi(0) = 1 and phi'(0) > 0. This module reproduces
the class-level operations as screens unless the check is exact:
- admissibility —
phi(0) = 1andphi'(0) > 0are decided in exact arithmetic; the region conditions (Re phi > 0on the disk, real coefficients, starlikeness with respect to 1) are float winding-number and grid screens with reported margins; - membership — the subordination screen
z f'(z)/f(z) in phi(D)on a sampled disk grid (a true member always passes; a non-member whose violation is confined to a thin annulus near|z| = 1can slip through); - containment —
phi_inner(D) subset phi_outer(D)by sampled boundary winding numbers, which by subordination transitivity is the same asS*(phi_inner) subset S*(phi_outer); - extremal coefficients — exact Taylor coefficients of the sharp member
f_phi(z) = z exp(int_0^z (phi(t) - 1)/t dt)via the standard recurrence.
MAX_EXTREMAL_ORDER = 24
module-attribute
¶
ClassAdmissibilityResult
dataclass
¶
Admissibility verdict with exact and screen check details.
class_key: str
instance-attribute
¶
admissible: bool
instance-attribute
¶
verification_report: VerificationReport
instance-attribute
¶
exact_values: dict[str, str]
instance-attribute
¶
margins: dict[str, float]
instance-attribute
¶
class_identity: str | None = None
class-attribute
instance-attribute
¶
generator_formula: str | None = None
class-attribute
instance-attribute
¶
generator_citation: str | None = None
class-attribute
instance-attribute
¶
__init__(class_key: str, admissible: bool, verification_report: VerificationReport, exact_values: dict[str, str], margins: dict[str, float], class_identity: str | None = None, generator_formula: str | None = None, generator_citation: str | None = None) -> None
¶
to_dict() -> dict[str, Any]
¶
ClassMembershipResult
dataclass
¶
Subordination membership screen verdict.
class_key: str
instance-attribute
¶
coefficients: tuple[float, ...]
instance-attribute
¶
member: bool
instance-attribute
¶
fraction_inside: float
instance-attribute
¶
min_dist_to_boundary: float
instance-attribute
¶
witness_w: tuple[float, float] | None
instance-attribute
¶
verification_report: VerificationReport
instance-attribute
¶
class_identity: str | None = None
class-attribute
instance-attribute
¶
generator_formula: str | None = None
class-attribute
instance-attribute
¶
generator_citation: str | None = None
class-attribute
instance-attribute
¶
__init__(class_key: str, coefficients: tuple[float, ...], member: bool, fraction_inside: float, min_dist_to_boundary: float, witness_w: tuple[float, float] | None, verification_report: VerificationReport, class_identity: str | None = None, generator_formula: str | None = None, generator_citation: str | None = None) -> None
¶
to_dict() -> dict[str, Any]
¶
ClassContainmentResult
dataclass
¶
Containment screen verdict between two classes.
inner: str
instance-attribute
¶
outer: str
instance-attribute
¶
contained: bool
instance-attribute
¶
fraction_inside: float
instance-attribute
¶
margin: float | None
instance-attribute
¶
witness_w: tuple[float, float] | None
instance-attribute
¶
verification_report: VerificationReport
instance-attribute
¶
inner_identity: str | None = None
class-attribute
instance-attribute
¶
inner_formula: str | None = None
class-attribute
instance-attribute
¶
inner_citation: str | None = None
class-attribute
instance-attribute
¶
outer_identity: str | None = None
class-attribute
instance-attribute
¶
outer_formula: str | None = None
class-attribute
instance-attribute
¶
outer_citation: str | None = None
class-attribute
instance-attribute
¶
__init__(inner: str, outer: str, contained: bool, fraction_inside: float, margin: float | None, witness_w: tuple[float, float] | None, verification_report: VerificationReport, inner_identity: str | None = None, inner_formula: str | None = None, inner_citation: str | None = None, outer_identity: str | None = None, outer_formula: str | None = None, outer_citation: str | None = None) -> None
¶
to_dict() -> dict[str, Any]
¶
list_classes() -> tuple[Generator, ...]
¶
Return the Ma–Minda class catalog in stable key order.
class_admissibility(class_key: str | Generator, *, n_theta: int = 120, radii: tuple[float, ...] = (0.3, 0.6, 0.9, 0.99)) -> ClassAdmissibilityResult
¶
Check the Ma–Minda admissibility conditions for one class.
Exact: phi(0) = 1 and phi'(0) real and positive. Screens with
reported margins: Re phi > 0 on the disk, real-coefficient symmetry,
and starlikeness with respect to 1.
class_member_screen(class_key: str | Generator, coefficients: list[float] | tuple[float, ...], *, grid_r: int = 16, grid_theta: int = 24, max_r: float = 0.95, n_boundary: int = 720) -> ClassMembershipResult
¶
Screen f in S*(phi): sample z f'/f on a grid and test whether
every value lies inside the sampled boundary of phi(D).
class_containment_screen(inner: str | Generator, outer: str | Generator, *, n_inner: int = 180, r_inner: float = 0.99, n_outer: int = 720) -> ClassContainmentResult
¶
Screen phi_inner(D) subset phi_outer(D) by winding numbers.
By subordination transitivity this is the same screen as
S*(phi_inner) subset S*(phi_outer). A failed screen returns a boundary
witness w attained by the inner extremal function.
class_extremal_coefficients(class_key: str | Generator, order: int) -> tuple[sp.Expr, ...]
¶
Return exact [a2, ..., a_{order+1}] of the sharp member
f_phi(z) = z exp(int (phi - 1)/t dt).
With phi - 1 = sum B_k z^k, f/z = exp(sum (B_k/k) z^k) and the
exponential-of-series recurrence gives exact coefficients. Those
coefficients are rational for rational generators but algebraic or
transcendental for generators such as limacon_0.707, parabolic,
and rational_kr; the exact symbolic expression is returned unchanged
and is never coerced to a float.