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/map.hpp> 7 #include <boost/qvm/mat_traits_array.hpp> 8 #include <boost/qvm/vec_operations.hpp> 9 #include <boost/qvm/mat_operations.hpp> 10 #include <boost/qvm/mat.hpp> 11 #include "test_qvm_vector.hpp" 12 #include "gold.hpp" 13 14 namespace 15 { 16 template <int Dim> 17 void test()18 test() 19 { 20 using namespace boost::qvm; 21 test_qvm::vector<V1,Dim> x(42,1); 22 float y[1][Dim]; assign(y,row_mat(x)); 23 BOOST_QVM_TEST_EQ(x.a,y[0]); 24 test_qvm::scalar_multiply_v(x.b,x.a,2.0f); 25 row<0>(row_mat(x)) *= 2; 26 BOOST_QVM_TEST_EQ(x.a,x.b); 27 row_mat(x) + row_mat(x); 28 -row_mat(x); 29 } 30 } 31 32 int main()33main() 34 { 35 test<2>(); 36 test<3>(); 37 test<4>(); 38 test<5>(); 39 return boost::report_errors(); 40 } 41