#[non_exhaustive]pub struct EigGeneralizedWork<T: Scalar> {Show 15 fields
pub n: i32,
pub jobvr: JobEv,
pub jobvl: JobEv,
pub alpha: Vec<MaybeUninit<T::Complex>>,
pub beta: Vec<MaybeUninit<T::Complex>>,
pub alpha_re: Option<Vec<MaybeUninit<T::Real>>>,
pub alpha_im: Option<Vec<MaybeUninit<T::Real>>>,
pub beta_re: Option<Vec<MaybeUninit<T::Real>>>,
pub beta_im: Option<Vec<MaybeUninit<T::Real>>>,
pub vc_l: Option<Vec<MaybeUninit<T::Complex>>>,
pub vr_l: Option<Vec<MaybeUninit<T::Real>>>,
pub vc_r: Option<Vec<MaybeUninit<T::Complex>>>,
pub vr_r: Option<Vec<MaybeUninit<T::Real>>>,
pub work: Vec<MaybeUninit<T>>,
pub rwork: Option<Vec<MaybeUninit<T::Real>>>,
}Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.n: i32Problem size
jobvr: JobEvCompute right eigenvectors or not
jobvl: JobEvCompute left eigenvectors or not
alpha: Vec<MaybeUninit<T::Complex>>Eigenvalues: alpha (numerators)
beta: Vec<MaybeUninit<T::Complex>>Eigenvalues: beta (denominators)
alpha_re: Option<Vec<MaybeUninit<T::Real>>>Real part of alpha (eigenvalue numerators) used in real routines
alpha_im: Option<Vec<MaybeUninit<T::Real>>>Imaginary part of alpha (eigenvalue numerators) used in real routines
beta_re: Option<Vec<MaybeUninit<T::Real>>>Real part of beta (eigenvalue denominators) used in real routines
beta_im: Option<Vec<MaybeUninit<T::Real>>>Imaginary part of beta (eigenvalue denominators) used in real routines
vc_l: Option<Vec<MaybeUninit<T::Complex>>>Left eigenvectors
vr_l: Option<Vec<MaybeUninit<T::Real>>>Left eigenvectors used in real routines
vc_r: Option<Vec<MaybeUninit<T::Complex>>>Right eigenvectors
vr_r: Option<Vec<MaybeUninit<T::Real>>>Right eigenvectors used in real routines
work: Vec<MaybeUninit<T>>Working memory
rwork: Option<Vec<MaybeUninit<T::Real>>>Working memory with T::Real
Implementations§
Source§impl<T> EigGeneralizedWork<T>
impl<T> EigGeneralizedWork<T>
Trait Implementations§
Source§impl EigGeneralizedWorkImpl for EigGeneralizedWork<c32>
impl EigGeneralizedWorkImpl for EigGeneralizedWork<c32>
type Elem = Complex<f32>
fn new(calc_v: bool, l: MatrixLayout) -> Result<Self>
fn calc<'work>( &'work mut self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedRef<'work, Self::Elem>>
fn eval( self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedOwned<Self::Elem>>
Source§impl EigGeneralizedWorkImpl for EigGeneralizedWork<c64>
impl EigGeneralizedWorkImpl for EigGeneralizedWork<c64>
type Elem = Complex<f64>
fn new(calc_v: bool, l: MatrixLayout) -> Result<Self>
fn calc<'work>( &'work mut self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedRef<'work, Self::Elem>>
fn eval( self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedOwned<Self::Elem>>
Source§impl EigGeneralizedWorkImpl for EigGeneralizedWork<f32>
impl EigGeneralizedWorkImpl for EigGeneralizedWork<f32>
type Elem = f32
fn new(calc_v: bool, l: MatrixLayout) -> Result<Self>
fn calc<'work>( &'work mut self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedRef<'work, Self::Elem>>
fn eval( self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedOwned<Self::Elem>>
Source§impl EigGeneralizedWorkImpl for EigGeneralizedWork<f64>
impl EigGeneralizedWorkImpl for EigGeneralizedWork<f64>
type Elem = f64
fn new(calc_v: bool, l: MatrixLayout) -> Result<Self>
fn calc<'work>( &'work mut self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedRef<'work, Self::Elem>>
fn eval( self, a: &mut [Self::Elem], b: &mut [Self::Elem], ) -> Result<EigGeneralizedOwned<Self::Elem>>
Auto Trait Implementations§
impl<T> Freeze for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: Freeze,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: Freeze,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: Freeze,
Vec<MaybeUninit<T>>: Freeze,
impl<T> RefUnwindSafe for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: RefUnwindSafe,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: RefUnwindSafe,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: RefUnwindSafe,
Vec<MaybeUninit<T>>: RefUnwindSafe,
impl<T> Send for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: Send,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: Send,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: Send,
Vec<MaybeUninit<T>>: Send,
impl<T> Sync for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: Sync,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: Sync,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: Sync,
Vec<MaybeUninit<T>>: Sync,
impl<T> Unpin for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: Unpin,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: Unpin,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: Unpin,
Vec<MaybeUninit<T>>: Unpin,
impl<T> UnsafeUnpin for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: UnsafeUnpin,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: UnsafeUnpin,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: UnsafeUnpin,
Vec<MaybeUninit<T>>: UnsafeUnpin,
impl<T> UnwindSafe for EigGeneralizedWork<T>where
Vec<MaybeUninit<<T as Scalar>::Complex>>: UnwindSafe,
Option<Vec<MaybeUninit<<T as Scalar>::Real>>>: UnwindSafe,
Option<Vec<MaybeUninit<<T as Scalar>::Complex>>>: UnwindSafe,
Vec<MaybeUninit<T>>: UnwindSafe,
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