Skip to main content

ComplexSpecialMath

Trait ComplexSpecialMath 

Source
pub trait ComplexSpecialMath: ComplexSpecialMathWithPolicy {
    // Provided methods
    fn faddeeva_w(self) -> Self { ... }
    fn erfcx(self) -> Self { ... }
    fn voigt(self) -> Self::Real { ... }
}
Available on crate feature special only.
Expand description

ComplexSpecial math functions using the default policy. 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.

Every method here has a counterpart in ComplexSpecialMathWithPolicy with a _p suffix that takes an explicit Policy.

Implementors of ComplexSpecialMathWithPolicy implement this automatically.

Provided Methods§

Source

fn faddeeva_w(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(self) -> Self

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

Source

fn voigt(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§