use std::cmp; use nl::Hessenberg; use na::{DMatrix, Matrix4}; quickcheck!{ fn hessenberg(n: usize) -> bool { if n != 0 { let n = cmp::min(n, 25); let m = DMatrix::::new_random(n, n); match Hessenberg::new(m.clone()) { Some(hess) => { let h = hess.h(); let p = hess.p(); relative_eq!(m, &p * h * p.transpose(), epsilon = 1.0e-7) }, None => true } } else { true } } fn hessenberg_static(m: Matrix4) -> bool { match Hessenberg::new(m) { Some(hess) => { let h = hess.h(); let p = hess.p(); relative_eq!(m, p * h * p.transpose(), epsilon = 1.0e-7) }, None => true } } }