extern crate alga; extern crate nalgebra as na; use alga::general::{RingCommutative, Real}; use na::{Vector3, Scalar}; fn print_vector(m: &Vector3) { println!("{:?}", m) } fn print_squared_norm(v: &Vector3) { // NOTE: alternatively, nalgebra already defines `v.squared_norm()`. let sqnorm = v.dot(v); println!("{:?}", sqnorm); } fn print_norm(v: &Vector3) { // NOTE: alternatively, nalgebra already defines `v.norm()`. let norm = v.dot(v).sqrt(); // The Real bound implies that N is Display so we can // use "{}" instead of "{:?}" for the format string. println!("{}", norm) } fn main() { let v1 = Vector3::new(1, 2, 3); let v2 = Vector3::new(1.0, 2.0, 3.0); print_vector(&v1); print_squared_norm(&v1); print_norm(&v2); }