28 #include <mln/core/contract.hh>
30 #include <mln/algebra/quat.hh>
31 #include <mln/norm/l2.hh>
38 algebra::quat q1(3.f, 4.f, 1.6f, 0.5f);
39 algebra::quat q2(1.2f,
make::vec(3, 6, 4));
40 algebra::quat q3(
make::vec(1.3, 3., -6., 4.));
42 std::cout << q1 << std::endl;
43 std::cout << q2 << std::endl;
44 std::cout << q3 << std::endl;
46 std::cout << q1.s() << std::endl;
49 std::cout << q1 << std::endl;
51 std::cout << q1.v() << std::endl;
54 std::cout << q2 << std::endl;
56 std::cout << q2 * q3 << std::endl;
58 mln_assertion(! q3.is_unit());
60 std::cout << q3 << std::endl;
61 mln_assertion(q3.is_unit());
63 std::cout << q2.conj() << std::endl;
64 std::cout << q2.inv() << std::endl;
65 std::cout << norm::l2(q2.to_vec()) <<
' '<< norm::l2(q2.inv().to_vec())
67 std::cout << q2.inv().inv() << std::endl;