mag_sqr_v_test.cpp 816 B

1234567891011121314151617181920212223242526272829303132333435
  1. //Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
  2. //Distributed under the Boost Software License, Version 1.0. (See accompanying
  3. //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  4. #include <boost/qvm/vec_operations.hpp>
  5. #include "test_qvm_vector.hpp"
  6. #include "gold.hpp"
  7. namespace
  8. {
  9. template <int Dim>
  10. void
  11. test()
  12. {
  13. using namespace boost::qvm::sfinae;
  14. test_qvm::vector<V1,Dim> const x(42,1);
  15. float m1=mag_sqr(x);
  16. float m2=mag_sqr(vref(x));
  17. float m3=test_qvm::dot<float>(x.a,x.a);
  18. BOOST_QVM_TEST_CLOSE(m1,m3,0.000001f);
  19. BOOST_QVM_TEST_CLOSE(m2,m3,0.000001f);
  20. }
  21. }
  22. int
  23. main()
  24. {
  25. test<2>();
  26. test<3>();
  27. test<4>();
  28. test<5>();
  29. return boost::report_errors();
  30. }