Skip to main content

ComplexSpecialMathWithPolicy

Trait ComplexSpecialMathWithPolicy 

Source
pub trait ComplexSpecialMathWithPolicy: ComplexVector {
    // Required methods
    fn faddeeva_w_p<P: Policy>(self) -> Self;
    fn erfcx_p<P: Policy>(self) -> Self;
    fn voigt_p<P: Policy>(self) -> Self::Real;
}
Available on crate feature special only.
Expand description

ComplexSpecial math functions with customizable policies. Complex special functions that carry an element-specific coefficient table.

Generated from SpecializedComplexSpecialMath by the same macro that builds ComplexMath, so z.faddeeva_w_p::<Precision>() behaves as z.norm_p::<Precision>() does and generic code can bound on V: ComplexSpecialMath.

Only the members with no home in SpecialMath are re-exposed here. The Gamma family is already z.tgamma() there; declaring it a second time would make every such call ambiguous whenever both traits are in scope.

Each function takes a Policy as its first generic argument. For the default-policy versions (same names, no _p suffix), see ComplexSpecialMath.

Implemented automatically for every type implementing SpecializedComplexSpecialMath.

Required Methods§

Source

fn faddeeva_w_p<P: Policy>(self) -> Self

$w(z) = e^{-z^2}\operatorname{erfc}(-iz)$, the Faddeeva function (also the complex error function, or the plasma dispersion function up to a factor).

See faddeeva for the algorithm, the accuracy ladder, and the one caveat that matters ($\operatorname{Re} w$ near the real axis).

Source

fn erfcx_p<P: Policy>(self) -> Self

$\operatorname{erfcx}(z) = e^{z^2}\operatorname{erfc}(z) = w(iz)$, the scaled complementary error function.

Source

fn voigt_p<P: Policy>(self) -> Self::Real

The Voigt function $K(x, y) = \operatorname{Re} w(x + iy)$, as a real value.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§