pub struct SvdDescriptor<'a, T: Scalar> {
pub m: usize,
pub n: usize,
pub a: &'a [T],
pub u: &'a mut [T],
pub s: &'a mut [T::Real],
pub vt: &'a mut [T],
pub order: MemoryOrder,
pub policy: ExecPolicy,
}Expand description
Thin SVD operation descriptor: A = U * diag(S) * Vt
Computes the thin SVD of an m×n matrix A.
Data layout (A, U, Vt slices) is specified by the order field;
a backend that does not support a given order returns
BackendError::InvalidArgument.
Outputs: U (m×k), S (k singular values), Vt (k×n)
where k = min(m, n).
Fields§
§m: usizeRows of A.
n: usizeColumns of A.
a: &'a [T]Input matrix A (m×n).
u: &'a mut [T]Output left singular vectors U (m×k, k = min(m, n)).
s: &'a mut [T::Real]Output singular values S (k real values).
vt: &'a mut [T]Output right singular vectors Vᴴ (k×n).
order: MemoryOrderMemory layout of the matrix slices.
policy: ExecPolicyPer-call execution policy.
Auto Trait Implementations§
impl<'a, T> !UnwindSafe for SvdDescriptor<'a, T>
impl<'a, T> Freeze for SvdDescriptor<'a, T>
impl<'a, T> RefUnwindSafe for SvdDescriptor<'a, T>
impl<'a, T> Send for SvdDescriptor<'a, T>
impl<'a, T> Sync for SvdDescriptor<'a, T>
impl<'a, T> Unpin for SvdDescriptor<'a, T>
impl<'a, T> UnsafeUnpin for SvdDescriptor<'a, T>
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