Expand description
Elliptic integral request structs and the traits they implement:
- Carlson symmetric integrals (for
SpecialMath::carlson):CarlsonRf,CarlsonRc,CarlsonRd,CarlsonRj,CarlsonRg, implementingCarlsonKind. - Legendre integrals (for
SpecialMath::ellint):EllintK/EllintF,EllintE/EllintEInc,EllintD/EllintDInc,EllintPi/EllintPiInc, implementingEllipticKind. Completeness is encoded by the struct: a complete integral has nophifield.
The request structs are implemented for every float vector whose element carries
EllipticConsts: real f32/f64 vectors, Dual (the
derivative is the chain rule through the Carlson duplication and the AGM, contractive
algebraic iterations) and Compensated (which supplies its own, tighter, convergence
thresholds and holds full double-double). Complex does not implement the constants, so
an elliptic integral of a complex vector is a compile error rather than a wrong answer:
the kernels’ region decisions are real-line comparisons.
Re-exports§
pub use crate::specialized::EllipticConsts;pub use crate::specialized::CarlsonKind;pub use crate::specialized::CarlsonRc;pub use crate::specialized::CarlsonRd;pub use crate::specialized::CarlsonRf;pub use crate::specialized::CarlsonRg;pub use crate::specialized::CarlsonRj;pub use crate::specialized::EllintD;pub use crate::specialized::EllintDInc;pub use crate::specialized::EllintE;pub use crate::specialized::EllintEInc;pub use crate::specialized::EllintF;pub use crate::specialized::EllintK;pub use crate::specialized::EllintPi;pub use crate::specialized::EllintPiInc;pub use crate::specialized::EllipticKind;pub use crate::specialized::HeumanLambda;pub use crate::specialized::JacobiZeta;