]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/test/diag_mat_test.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / qvm / test / diag_mat_test.cpp
CommitLineData
92f5a8d4
TL
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
14namespace
15 {
16 template <int Dim>
17 void
18 test()
19 {
20 using namespace boost::qvm;
21 test_qvm::vector<V1,Dim> x(42,1);
22 float y[Dim][Dim]; assign(y,diag_mat(x));
23 for( int i=0; i!=Dim; ++i )
24 x.b[i]=y[i][i];
25 BOOST_QVM_TEST_EQ(x.a,x.b);
26 test_qvm::scalar_multiply_v(x.b,x.a,2.0f);
27 diag(diag_mat(x)) *= 2;
28 BOOST_QVM_TEST_EQ(x.a,x.b);
29 diag_mat(x) + diag_mat(x);
30 -diag_mat(x);
31 }
32 }
33
34int
35main()
36 {
37 test<2>();
38 test<3>();
39 test<4>();
40 test<5>();
41 return boost::report_errors();
42 }