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(x);
20         float m2=mag(vref(x));
21         float m3=sqrtf(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()28 main()
29     {
30     test<2>();
31     test<3>();
32     test<4>();
33     test<5>();
34     return boost::report_errors();
35     }
36