pub(crate) struct SolidTable {
order: i32,
reflection: Vec<f64>,
}Expand description
Solid harmonics r^p P_p^m e^(i m phi) of every degree p <= order and order
|m| <= p, from one degree recurrence per |m| rather than one per entry, with the
order-reflection factors of negative orders precomputed.
Fields§
§order: i32§reflection: Vec<f64>Implementations§
Source§impl SolidTable
impl SolidTable
Sourcepub(crate) fn visit<const GRADIENT: bool>(
&self,
position: [f64; 3],
emit: impl FnMut(usize, i32, Complex, [Complex; 3]),
)
pub(crate) fn visit<const GRADIENT: bool>( &self, position: [f64; 3], emit: impl FnMut(usize, i32, Complex, [Complex; 3]), )
Visits (p * p + p + m, p, S, grad S) for every entry. Each value and gradient
equals solid::<false>(p, m, position) bit for bit; gradients stay zero unless
GRADIENT.
Sourcepub(crate) fn visit_solid<const SECOND: bool>(
&self,
position: [f64; 3],
emit: impl FnMut(usize, i32, Solid),
)
pub(crate) fn visit_solid<const SECOND: bool>( &self, position: [f64; 3], emit: impl FnMut(usize, i32, Solid), )
Visits every solid harmonic with its gradient and, if SECOND, Hessian.
Entries equal the corresponding single solid evaluation bit for bit.
fn visit_impl<const GRADIENT: bool, const SECOND: bool>( &self, position: [f64; 3], emit: impl FnMut(usize, i32, Solid), )
Trait Implementations§
Source§impl Clone for SolidTable
impl Clone for SolidTable
Source§fn clone(&self) -> SolidTable
fn clone(&self) -> SolidTable
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SolidTable
impl RefUnwindSafe for SolidTable
impl Send for SolidTable
impl Sync for SolidTable
impl Unpin for SolidTable
impl UnwindSafe for SolidTable
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.