pub struct PermutationResidual {
pub(super) vectors: Vec<[Complex; 3]>,
pub(super) polarizations: Vec<u8>,
pub(super) turns: usize,
pub(super) helicity: bool,
}Expand description
What permutation saves for its pullback: the wavevectors, the polarizations, the
number of turns and the polarization convention.
The pullback writes each mode’s gradient on its own, so its result does not depend on the thread count.
Fields§
§vectors: Vec<[Complex; 3]>§polarizations: Vec<u8>§turns: usize§helicity: boolImplementations§
Source§impl PermutationResidual
impl PermutationResidual
Sourcepub fn shape(&self) -> (usize, usize)
pub fn shape(&self) -> (usize, usize)
Output polarizations and input plane modes: the shape (2, modes) of the
coefficients.
Sourcepub fn validate_tangents(&self, vectors: &[[Complex; 3]]) -> Result<()>
pub fn validate_tangents(&self, vectors: &[[Complex; 3]]) -> Result<()>
Validate a wavevector tangent for the recorded operation.
Source§impl PermutationResidual
impl PermutationResidual
Sourcepub fn state_size(modes: usize) -> Result<usize>
pub fn state_size(modes: usize) -> Result<usize>
Byte count for a permutation of modes plane waves.
Trait Implementations§
Source§impl Debug for PermutationResidual
impl Debug for PermutationResidual
Source§impl SavedState for PermutationResidual
impl SavedState for PermutationResidual
Auto Trait Implementations§
impl Freeze for PermutationResidual
impl RefUnwindSafe for PermutationResidual
impl Send for PermutationResidual
impl Sync for PermutationResidual
impl Unpin for PermutationResidual
impl UnwindSafe for PermutationResidual
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> 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.