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