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