1#ifndef BOOST_QVM_GEN_MAT_ASSIGN3_HPP_INCLUDED
2#define BOOST_QVM_GEN_MAT_ASSIGN3_HPP_INCLUDED
3
4// Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
5
6// Distributed under the Boost Software License, Version 1.0. (See accompanying
7// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8
9// This file was generated by a program. Do not edit manually.
10
11#include <boost/qvm/config.hpp>
12#include <boost/qvm/enable_if.hpp>
13#include <boost/qvm/mat_traits.hpp>
14
15namespace boost { namespace qvm {
16
17template <class A,class B>
18BOOST_QVM_CONSTEXPR BOOST_QVM_INLINE_OPERATIONS
19typename enable_if_c<
20 mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
21 mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
22 A &>::type
23assign( A & a, B const & b )
24 {
25 write_mat_element<0,0>(a,mat_traits<B>::template read_element<0,0>(b));
26 write_mat_element<0,1>(a,mat_traits<B>::template read_element<0,1>(b));
27 write_mat_element<0,2>(a,mat_traits<B>::template read_element<0,2>(b));
28 write_mat_element<1,0>(a,mat_traits<B>::template read_element<1,0>(b));
29 write_mat_element<1,1>(a,mat_traits<B>::template read_element<1,1>(b));
30 write_mat_element<1,2>(a,mat_traits<B>::template read_element<1,2>(b));
31 write_mat_element<2,0>(a,mat_traits<B>::template read_element<2,0>(b));
32 write_mat_element<2,1>(a,mat_traits<B>::template read_element<2,1>(b));
33 write_mat_element<2,2>(a,mat_traits<B>::template read_element<2,2>(b));
34 return a;
35 }
36
37namespace
38sfinae
39 {
40 using ::boost::qvm::assign;
41 }
42
43namespace
44qvm_detail
45 {
46 template <int R,int C>
47 struct assign_mm_defined;
48
49 template <>
50 struct
51 assign_mm_defined<3,3>
52 {
53 static bool const value=true;
54 };
55 }
56
57template <class A,class B>
58BOOST_QVM_CONSTEXPR BOOST_QVM_INLINE_OPERATIONS
59typename enable_if_c<
60 mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
61 mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
62 A &>::type
63assign( A & a, B const & b )
64 {
65 write_mat_element<0,0>(a,mat_traits<B>::template read_element<0,0>(b));
66 write_mat_element<1,0>(a,mat_traits<B>::template read_element<1,0>(b));
67 write_mat_element<2,0>(a,mat_traits<B>::template read_element<2,0>(b));
68 return a;
69 }
70
71namespace
72sfinae
73 {
74 using ::boost::qvm::assign;
75 }
76
77namespace
78qvm_detail
79 {
80 template <int R,int C>
81 struct assign_mm_defined;
82
83 template <>
84 struct
85 assign_mm_defined<3,1>
86 {
87 static bool const value=true;
88 };
89 }
90
91template <class A,class B>
92BOOST_QVM_CONSTEXPR BOOST_QVM_INLINE_OPERATIONS
93typename enable_if_c<
94 mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
95 mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
96 A &>::type
97assign( A & a, B const & b )
98 {
99 write_mat_element<0,0>(a,mat_traits<B>::template read_element<0,0>(b));
100 write_mat_element<0,1>(a,mat_traits<B>::template read_element<0,1>(b));
101 write_mat_element<0,2>(a,mat_traits<B>::template read_element<0,2>(b));
102 return a;
103 }
104
105namespace
106sfinae
107 {
108 using ::boost::qvm::assign;
109 }
110
111namespace
112qvm_detail
113 {
114 template <int R,int C>
115 struct assign_mm_defined;
116
117 template <>
118 struct
119 assign_mm_defined<1,3>
120 {
121 static bool const value=true;
122 };
123 }
124
125} }
126
127#endif
128

source code of boost/libs/qvm/include/boost/qvm/gen/mat_assign3.hpp