use geoit::algebra::ops;
use geoit::scalar::Rat;
use geoit::*;
fn main() {
let sig = Signature::new(0, 0, 3).unwrap();
let v = Mv::from_rat_terms(&[(0b001, Rat::from(3)), (0b010, Rat::from(4))]);
let w = Mv::from_rat_terms(&[(0b010, Rat::from(1)), (0b100, Rat::from(2))]);
let n2 = ops::norm_squared(&v, &sig);
println!("||v||² = {}", n2);
let bv = ops::outer(&v, &w, &sig);
println!("v ∧ w = {:?}", bv);
let gp = ops::geometric(&v, &w, &sig);
println!("v·w (geometric) = {:?}", gp);
let reflected = ops::sandwich(&v, &w, &sig);
println!("v·w·v~ = {:?}", reflected);
}