pub(crate) struct EvenKambe {
argument: Complex,
square: Complex,
eta: Complex,
exponential: Complex,
terms: [f64; 2],
values: Vec<Complex>,
}Expand description
Even Kambe orders I_2, I_0, I_-2, I_-4, ... of one argument from the closed-form pair
I_-2, I_0 and the Kambe recurrence, one step per order, as treams evaluates them:
the orders of one reciprocal point of a 2D spherical or 1D cylindrical lattice sum,
whose correlated errors those sums cancel (see lattice::Reduced).
Fields§
§argument: ComplexThe argument z with Re z >= 0 that the pair takes.
square: Complex§eta: Complex§exponential: Complex§terms: [f64; 2]The moduli of the two terms of the closed-form pair (even_terms).
values: Vec<Complex>I_0, I_-2, ... as far as requested.
Implementations§
Source§impl EvenKambe
impl EvenKambe
Sourcepub(crate) fn new(z: Complex, eta: Complex) -> Self
pub(crate) fn new(z: Complex, eta: Complex) -> Self
The chain of I_n(z, eta), starting from the pair.
Sourcepub(crate) fn single(&self, n: i32) -> (Complex, f64)
pub(crate) fn single(&self, n: i32) -> (Complex, f64)
I_n for even n <= 0 on its own, with a first-order bound on its absolute
rounding error in units of epsilon (kambe_with_bound): below the base pair from
the series where that bounds it more tightly than the recurrence.
Sourcepub(crate) fn sum_bounds(&self, weights: &[Complex]) -> (f64, f64)
pub(crate) fn sum_bounds(&self, weights: &[Complex]) -> (f64, f64)
A first-order bound, in units of epsilon, on the absolute rounding error of
sum_j weights[j] I_(-2j) from this chain (which holds the orders down to the last
weight), and the sum of the moduli of its terms: one ulp of each term of the pair
and of each product and endpoint term of the recurrence, carried to the sum by the
adjoint of the recurrence, which sees the correlation of the errors.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EvenKambe
impl RefUnwindSafe for EvenKambe
impl Send for EvenKambe
impl Sync for EvenKambe
impl Unpin for EvenKambe
impl UnwindSafe for EvenKambe
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.