pub fn gesvd<T: SolverScalar>(
handle: &DnHandle,
jobu: u8,
jobvt: u8,
m: i32,
n: i32,
a: &mut DeviceBuffer<T>,
lda: i32,
s: &mut DeviceBuffer<T::Real>,
u: &mut DeviceBuffer<T>,
ldu: i32,
vt: &mut DeviceBuffer<T>,
ldvt: i32,
rwork: &mut DeviceBuffer<T::Real>,
info: &mut DeviceBuffer<i32>,
) -> Result<()>Expand description
Full SVD: A = U * Σ * Vᵀ. jobu/jobvt are LAPACK-style single-byte
selectors (b’A’ = all, b’S’ = economy, b’N’ = none, b’O’ = overwrite A).
rwork must be provided for complex element types; pass an empty buffer
for real types (pointer is still non-null; cuSOLVER ignores it).