pub trait SMat<T: Float>: Sync {
// Required methods
fn nrows(&self) -> usize;
fn ncols(&self) -> usize;
fn nnz(&self) -> usize;
fn svd_opa(&self, x: &[T], y: &mut [T], transposed: bool);
fn compute_column_means(&self) -> Vec<T>;
}