use static_math::{M22, M33, M44, M55, M66, m22_new, m33_new, m44_new, m55_new, m66_new};
use static_math::traits::LinearAlgebra;
fn main() {
let m22 = m22_new!(1.0, 2.0;
3.0, 4.0);
let m33 = m33_new!(10.0, -1.0, 2.0;
3.0, 3.0, 1.0;
1.0, 2.0, 5.0);
let m44 = m44_new!( 0.0, 1.0, 2.0, 3.0;
4.0, 0.0, 1.0, 7.0;
10.0, 9.0, 10.0, 11.0;
12.0, 13.0, 14.0, 15.0);
let m55 = m55_new!(10.0, 1.0, 7.0, 1.0, 5.0;
2.0, 4.0, 8.0, 3.0, 2.0;
5.0, 1.0, 2.0, 9.0, 10.0;
6.0, 9.0, 1.0, 7.0, 3.0;
1.0, 8.0, 8.0, 10.0, 5.0);
let m66 = m66_new!( 1.0, 1.0, 3.0, 4.0, 9.0, 3.0;
10.0, 10.0, 1.0, 2.0, 2.0, 5.0;
2.0, 9.0, 6.0, 10.0, 10.0, 9.0;
10.0, 9.0, 9.0, 7.0, 3.0, 6.0;
7.0, 6.0, 6.0, 2.0, 9.0, 5.0;
3.0, 8.0, 1.0, 4.0, 1.0, 5.0);
if let Some((q, r)) = m22.qr() {
println!("q: {}", q);
println!("r: {}", r);
println!("m22: {}", q * r);
println!("q.det(): {}", q.det());
}
if let Some((q, r)) = m33.qr() {
println!("q: {}", q);
println!("r: {}", r);
println!("m33: {}", q * r);
println!("q.det(): {}", q.det());
}
if let Some((q, r)) = m44.qr() {
println!("q: {}", q);
println!("r: {}", r);
println!("m44: {}", q * r);
println!("q.det(): {}", q.det());
}
if let Some((q, r)) = m55.qr() {
println!("q: {}", q);
println!("r: {}", r);
println!("m55: {}", q * r);
println!("q.det(): {}", q.det());
}
if let Some((q, r)) = m66.qr() {
println!("q: {}", q);
println!("r: {}", r);
println!("m66: {}", q * r);
println!("q.det(): {}", q.det());
}
}