extern crate ndarray;
extern crate ndarray_linalg;
use ndarray::*;
use ndarray_linalg::*;
fn main() {
let a = arr2(&[[3., 2., 2.], [2., 3., -2.]]);
let result = TruncatedSvd::new(a, TruncatedOrder::Largest)
.decompose(2)
.unwrap();
let (u, sigma, v_t) = result.values_vectors();
println!("Result of the singular value decomposition A = UΣV^T:");
println!(" === U ===");
println!("{:?}", u);
println!(" === Σ ===");
println!("{:?}", Array2::from_diag(&sigma));
println!(" === V^T ===");
println!("{:?}", v_t);
}