summaryrefslogtreecommitdiff
path: root/boost/qvm/gen
diff options
context:
space:
mode:
Diffstat (limited to 'boost/qvm/gen')
-rw-r--r--boost/qvm/gen/mat_assign2.hpp125
-rw-r--r--boost/qvm/gen/mat_assign3.hpp132
-rw-r--r--boost/qvm/gen/mat_assign4.hpp141
-rw-r--r--boost/qvm/gen/mat_operations2.hpp107
-rw-r--r--boost/qvm/gen/mat_operations3.hpp114
-rw-r--r--boost/qvm/gen/mat_operations4.hpp123
-rw-r--r--boost/qvm/gen/swizzle2.hpp6
-rw-r--r--boost/qvm/gen/swizzle3.hpp6
-rw-r--r--boost/qvm/gen/swizzle4.hpp6
-rw-r--r--boost/qvm/gen/vec_assign2.hpp56
-rw-r--r--boost/qvm/gen/vec_assign3.hpp57
-rw-r--r--boost/qvm/gen/vec_assign4.hpp58
-rw-r--r--boost/qvm/gen/vec_mat_operations2.hpp7
-rw-r--r--boost/qvm/gen/vec_mat_operations3.hpp7
-rw-r--r--boost/qvm/gen/vec_mat_operations4.hpp7
-rw-r--r--boost/qvm/gen/vec_operations2.hpp42
-rw-r--r--boost/qvm/gen/vec_operations3.hpp43
-rw-r--r--boost/qvm/gen/vec_operations4.hpp44
18 files changed, 608 insertions, 473 deletions
diff --git a/boost/qvm/gen/mat_assign2.hpp b/boost/qvm/gen/mat_assign2.hpp
new file mode 100644
index 0000000000..8a4285c911
--- /dev/null
+++ b/boost/qvm/gen/mat_assign2.hpp
@@ -0,0 +1,125 @@
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_QVM_5DD4CBFC96F5453B13D89A1CDBAE32
+#define BOOST_QVM_5DD4CBFC96F5453B13D89A1CDBAE32
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/mat_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/mat_assign3.hpp b/boost/qvm/gen/mat_assign3.hpp
new file mode 100644
index 0000000000..b2e8f12f4c
--- /dev/null
+++ b/boost/qvm/gen/mat_assign3.hpp
@@ -0,0 +1,132 @@
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_QVM_209A50EE407836FD124932F69E7D49DC
+#define BOOST_QVM_209A50EE407836FD124932F69E7D49DC
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/mat_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<A>::template write_element<1,2>(a)=mat_traits<B>::template read_element<1,2>(b);
+ mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<A>::template write_element<2,1>(a)=mat_traits<B>::template read_element<2,1>(b);
+ mat_traits<A>::template write_element<2,2>(a)=mat_traits<B>::template read_element<2,2>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/mat_assign4.hpp b/boost/qvm/gen/mat_assign4.hpp
new file mode 100644
index 0000000000..69fa3e1928
--- /dev/null
+++ b/boost/qvm/gen/mat_assign4.hpp
@@ -0,0 +1,141 @@
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_QVM_AD4F14F2444066D06BC430B7323BA122
+#define BOOST_QVM_AD4F14F2444066D06BC430B7323BA122
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/mat_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<A>::template write_element<0,3>(a)=mat_traits<B>::template read_element<0,3>(b);
+ mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<A>::template write_element<1,2>(a)=mat_traits<B>::template read_element<1,2>(b);
+ mat_traits<A>::template write_element<1,3>(a)=mat_traits<B>::template read_element<1,3>(b);
+ mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<A>::template write_element<2,1>(a)=mat_traits<B>::template read_element<2,1>(b);
+ mat_traits<A>::template write_element<2,2>(a)=mat_traits<B>::template read_element<2,2>(b);
+ mat_traits<A>::template write_element<2,3>(a)=mat_traits<B>::template read_element<2,3>(b);
+ mat_traits<A>::template write_element<3,0>(a)=mat_traits<B>::template read_element<3,0>(b);
+ mat_traits<A>::template write_element<3,1>(a)=mat_traits<B>::template read_element<3,1>(b);
+ mat_traits<A>::template write_element<3,2>(a)=mat_traits<B>::template read_element<3,2>(b);
+ mat_traits<A>::template write_element<3,3>(a)=mat_traits<B>::template read_element<3,3>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<A>::template write_element<3,0>(a)=mat_traits<B>::template read_element<3,0>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<A>::template write_element<0,3>(a)=mat_traits<B>::template read_element<0,3>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct assign_mm_defined;
+
+ template <>
+ struct
+ assign_mm_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/mat_operations2.hpp b/boost/qvm/gen/mat_operations2.hpp
index 6fbda7a800..d20339bc7d 100644
--- a/boost/qvm/gen/mat_operations2.hpp
+++ b/boost/qvm/gen/mat_operations2.hpp
@@ -1,4 +1,4 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,10 +11,8 @@
#include <boost/qvm/assert.hpp>
#include <boost/qvm/deduce_mat.hpp>
#include <boost/qvm/deduce_vec.hpp>
-#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/error.hpp>
-#include <boost/qvm/inline.hpp>
-#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/gen/mat_assign2.hpp>
#include <boost/qvm/throw_exception.hpp>
namespace
@@ -1029,107 +1027,6 @@ boost
};
}
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
- mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
- mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
- mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<2,2>
- {
- static bool const value=true;
- };
- }
-
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
- mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<2,1>
- {
- static bool const value=true;
- };
- }
-
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
- mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<1,2>
- {
- static bool const value=true;
- };
- }
-
template <class R,class A>
BOOST_QVM_INLINE_OPERATIONS
typename enable_if_c<
diff --git a/boost/qvm/gen/mat_operations3.hpp b/boost/qvm/gen/mat_operations3.hpp
index 5b0e74b458..31cf755dab 100644
--- a/boost/qvm/gen/mat_operations3.hpp
+++ b/boost/qvm/gen/mat_operations3.hpp
@@ -1,4 +1,4 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,10 +11,8 @@
#include <boost/qvm/assert.hpp>
#include <boost/qvm/deduce_mat.hpp>
#include <boost/qvm/deduce_vec.hpp>
-#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/error.hpp>
-#include <boost/qvm/inline.hpp>
-#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/gen/mat_assign3.hpp>
#include <boost/qvm/quat_traits.hpp>
#include <boost/qvm/scalar_traits.hpp>
#include <boost/qvm/throw_exception.hpp>
@@ -1100,114 +1098,6 @@ boost
};
}
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
- mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
- mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
- mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
- mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);
- mat_traits<A>::template write_element<1,2>(a)=mat_traits<B>::template read_element<1,2>(b);
- mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
- mat_traits<A>::template write_element<2,1>(a)=mat_traits<B>::template read_element<2,1>(b);
- mat_traits<A>::template write_element<2,2>(a)=mat_traits<B>::template read_element<2,2>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<3,3>
- {
- static bool const value=true;
- };
- }
-
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
- mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
- mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<3,1>
- {
- static bool const value=true;
- };
- }
-
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
- mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
- mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<1,3>
- {
- static bool const value=true;
- };
- }
-
template <class R,class A>
BOOST_QVM_INLINE_OPERATIONS
typename enable_if_c<
diff --git a/boost/qvm/gen/mat_operations4.hpp b/boost/qvm/gen/mat_operations4.hpp
index ad115f916d..1c50131461 100644
--- a/boost/qvm/gen/mat_operations4.hpp
+++ b/boost/qvm/gen/mat_operations4.hpp
@@ -1,4 +1,4 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,10 +11,8 @@
#include <boost/qvm/assert.hpp>
#include <boost/qvm/deduce_mat.hpp>
#include <boost/qvm/deduce_vec.hpp>
-#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/error.hpp>
-#include <boost/qvm/inline.hpp>
-#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/gen/mat_assign4.hpp>
#include <boost/qvm/quat_traits.hpp>
#include <boost/qvm/scalar_traits.hpp>
#include <boost/qvm/throw_exception.hpp>
@@ -1189,123 +1187,6 @@ boost
};
}
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
- mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
- mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
- mat_traits<A>::template write_element<0,3>(a)=mat_traits<B>::template read_element<0,3>(b);
- mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
- mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);
- mat_traits<A>::template write_element<1,2>(a)=mat_traits<B>::template read_element<1,2>(b);
- mat_traits<A>::template write_element<1,3>(a)=mat_traits<B>::template read_element<1,3>(b);
- mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
- mat_traits<A>::template write_element<2,1>(a)=mat_traits<B>::template read_element<2,1>(b);
- mat_traits<A>::template write_element<2,2>(a)=mat_traits<B>::template read_element<2,2>(b);
- mat_traits<A>::template write_element<2,3>(a)=mat_traits<B>::template read_element<2,3>(b);
- mat_traits<A>::template write_element<3,0>(a)=mat_traits<B>::template read_element<3,0>(b);
- mat_traits<A>::template write_element<3,1>(a)=mat_traits<B>::template read_element<3,1>(b);
- mat_traits<A>::template write_element<3,2>(a)=mat_traits<B>::template read_element<3,2>(b);
- mat_traits<A>::template write_element<3,3>(a)=mat_traits<B>::template read_element<3,3>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<4,4>
- {
- static bool const value=true;
- };
- }
-
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
- mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);
- mat_traits<A>::template write_element<2,0>(a)=mat_traits<B>::template read_element<2,0>(b);
- mat_traits<A>::template write_element<3,0>(a)=mat_traits<B>::template read_element<3,0>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<4,1>
- {
- static bool const value=true;
- };
- }
-
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
- mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
- A &>::type
- assign( A & a, B const & b )
- {
- mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);
- mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);
- mat_traits<A>::template write_element<0,2>(a)=mat_traits<B>::template read_element<0,2>(b);
- mat_traits<A>::template write_element<0,3>(a)=mat_traits<B>::template read_element<0,3>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int R,int C>
- struct assign_mm_defined;
-
- template <>
- struct
- assign_mm_defined<1,4>
- {
- static bool const value=true;
- };
- }
-
template <class R,class A>
BOOST_QVM_INLINE_OPERATIONS
typename enable_if_c<
diff --git a/boost/qvm/gen/swizzle2.hpp b/boost/qvm/gen/swizzle2.hpp
index b894bb6986..a4f6ac27aa 100644
--- a/boost/qvm/gen/swizzle2.hpp
+++ b/boost/qvm/gen/swizzle2.hpp
@@ -1,10 +1,10 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_61CDD11E9D9C167272E61DF0844F4A77
-#define BOOST_QVM_61CDD11E9D9C167272E61DF0844F4A77
+#ifndef BOOST_QVM_9673ED9162F6768D4F74A4AD0576876
+#define BOOST_QVM_9673ED9162F6768D4F74A4AD0576876
//This file was generated by a program. Do not edit manually.
diff --git a/boost/qvm/gen/swizzle3.hpp b/boost/qvm/gen/swizzle3.hpp
index f1f182d2bd..beacb2681e 100644
--- a/boost/qvm/gen/swizzle3.hpp
+++ b/boost/qvm/gen/swizzle3.hpp
@@ -1,10 +1,10 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_2D7E8392C53CBC9121E33749ECF4D5
-#define BOOST_QVM_2D7E8392C53CBC9121E33749ECF4D5
+#ifndef BOOST_QVM_FA16BB11ADAE248879FE52DB2543E53C
+#define BOOST_QVM_FA16BB11ADAE248879FE52DB2543E53C
//This file was generated by a program. Do not edit manually.
diff --git a/boost/qvm/gen/swizzle4.hpp b/boost/qvm/gen/swizzle4.hpp
index 91ba215c8b..c400a12a6f 100644
--- a/boost/qvm/gen/swizzle4.hpp
+++ b/boost/qvm/gen/swizzle4.hpp
@@ -1,10 +1,10 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_D49FD4A4597E35CF3222F4CCCFD3902D
-#define BOOST_QVM_D49FD4A4597E35CF3222F4CCCFD3902D
+#ifndef BOOST_QVM_F445D3D828CEBF5C560593D97278A59
+#define BOOST_QVM_F445D3D828CEBF5C560593D97278A59
//This file was generated by a program. Do not edit manually.
diff --git a/boost/qvm/gen/vec_assign2.hpp b/boost/qvm/gen/vec_assign2.hpp
new file mode 100644
index 0000000000..2265602b7a
--- /dev/null
+++ b/boost/qvm/gen/vec_assign2.hpp
@@ -0,0 +1,56 @@
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_QVM_61CDD11E9D9C167272E61DF0844F4A77
+#define BOOST_QVM_61CDD11E9D9C167272E61DF0844F4A77
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/vec_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b);
+ vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct assign_vv_defined;
+
+ template <>
+ struct
+ assign_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_assign3.hpp b/boost/qvm/gen/vec_assign3.hpp
new file mode 100644
index 0000000000..17da3ad9af
--- /dev/null
+++ b/boost/qvm/gen/vec_assign3.hpp
@@ -0,0 +1,57 @@
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_QVM_2D7E8392C53CBC9121E33749ECF4D5
+#define BOOST_QVM_2D7E8392C53CBC9121E33749ECF4D5
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/vec_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b);
+ vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b);
+ vec_traits<A>::template write_element<2>(a)=vec_traits<B>::template read_element<2>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct assign_vv_defined;
+
+ template <>
+ struct
+ assign_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_assign4.hpp b/boost/qvm/gen/vec_assign4.hpp
new file mode 100644
index 0000000000..7fa7a566ef
--- /dev/null
+++ b/boost/qvm/gen/vec_assign4.hpp
@@ -0,0 +1,58 @@
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_QVM_D49FD4A4597E35CF3222F4CCCFD3902D
+#define BOOST_QVM_D49FD4A4597E35CF3222F4CCCFD3902D
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/vec_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b);
+ vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b);
+ vec_traits<A>::template write_element<2>(a)=vec_traits<B>::template read_element<2>(b);
+ vec_traits<A>::template write_element<3>(a)=vec_traits<B>::template read_element<3>(b);
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::assign;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct assign_vv_defined;
+
+ template <>
+ struct
+ assign_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_mat_operations2.hpp b/boost/qvm/gen/vec_mat_operations2.hpp
index d446e9b27a..8b52bd25e4 100644
--- a/boost/qvm/gen/vec_mat_operations2.hpp
+++ b/boost/qvm/gen/vec_mat_operations2.hpp
@@ -1,10 +1,10 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_F622919DE18B1FDAB0CA992B9729D49
-#define BOOST_QVM_F622919DE18B1FDAB0CA992B9729D49
+#ifndef BOOST_QVM_48D38F75E6D91D2AE5C0F72B78818744
+#define BOOST_QVM_48D38F75E6D91D2AE5C0F72B78818744
//This file was generated by a program. Do not edit manually.
@@ -12,6 +12,7 @@
#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/inline.hpp>
#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/vec_traits.hpp>
namespace
boost
diff --git a/boost/qvm/gen/vec_mat_operations3.hpp b/boost/qvm/gen/vec_mat_operations3.hpp
index deec8ec04e..9e0da9045e 100644
--- a/boost/qvm/gen/vec_mat_operations3.hpp
+++ b/boost/qvm/gen/vec_mat_operations3.hpp
@@ -1,10 +1,10 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_2C807EC599D5E980B2EAC9CC53BF67D6
-#define BOOST_QVM_2C807EC599D5E980B2EAC9CC53BF67D6
+#ifndef BOOST_QVM_E5F500D4618DBE7B51573B33821F
+#define BOOST_QVM_E5F500D4618DBE7B51573B33821F
//This file was generated by a program. Do not edit manually.
@@ -12,6 +12,7 @@
#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/inline.hpp>
#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/vec_traits.hpp>
namespace
boost
diff --git a/boost/qvm/gen/vec_mat_operations4.hpp b/boost/qvm/gen/vec_mat_operations4.hpp
index 3016cf2465..ab7db98e31 100644
--- a/boost/qvm/gen/vec_mat_operations4.hpp
+++ b/boost/qvm/gen/vec_mat_operations4.hpp
@@ -1,10 +1,10 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_BF14D67E2DDC8E6683EF574961FF698F
-#define BOOST_QVM_BF14D67E2DDC8E6683EF574961FF698F
+#ifndef BOOST_QVM_187092DA6454CEB1853E6915F8466A4
+#define BOOST_QVM_187092DA6454CEB1853E6915F8466A4
//This file was generated by a program. Do not edit manually.
@@ -12,6 +12,7 @@
#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/inline.hpp>
#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/vec_traits.hpp>
namespace
boost
diff --git a/boost/qvm/gen/vec_operations2.hpp b/boost/qvm/gen/vec_operations2.hpp
index 00ee6d6eb5..08faeddb38 100644
--- a/boost/qvm/gen/vec_operations2.hpp
+++ b/boost/qvm/gen/vec_operations2.hpp
@@ -1,22 +1,20 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_5DD4CBFC96F5453B13D89A1CDBAE32
-#define BOOST_QVM_5DD4CBFC96F5453B13D89A1CDBAE32
+#ifndef BOOST_QVM_F622919DE18B1FDAB0CA992B9729D49
+#define BOOST_QVM_F622919DE18B1FDAB0CA992B9729D49
//This file was generated by a program. Do not edit manually.
#include <boost/qvm/deduce_scalar.hpp>
#include <boost/qvm/deduce_vec.hpp>
-#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/error.hpp>
-#include <boost/qvm/inline.hpp>
+#include <boost/qvm/gen/vec_assign2.hpp>
#include <boost/qvm/math.hpp>
#include <boost/qvm/static_assert.hpp>
#include <boost/qvm/throw_exception.hpp>
-#include <boost/qvm/vec_traits.hpp>
namespace
boost
@@ -324,38 +322,6 @@ boost
};
}
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
- A &>::type
- assign( A & a, B const & b )
- {
- vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b);
- vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int D>
- struct assign_vv_defined;
-
- template <>
- struct
- assign_vv_defined<2>
- {
- static bool const value=true;
- };
- }
-
template <class R,class A>
BOOST_QVM_INLINE_OPERATIONS
typename enable_if_c<
diff --git a/boost/qvm/gen/vec_operations3.hpp b/boost/qvm/gen/vec_operations3.hpp
index d894066efc..c985721d65 100644
--- a/boost/qvm/gen/vec_operations3.hpp
+++ b/boost/qvm/gen/vec_operations3.hpp
@@ -1,22 +1,20 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_209A50EE407836FD124932F69E7D49DC
-#define BOOST_QVM_209A50EE407836FD124932F69E7D49DC
+#ifndef BOOST_QVM_2C807EC599D5E980B2EAC9CC53BF67D6
+#define BOOST_QVM_2C807EC599D5E980B2EAC9CC53BF67D6
//This file was generated by a program. Do not edit manually.
#include <boost/qvm/deduce_scalar.hpp>
#include <boost/qvm/deduce_vec.hpp>
-#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/error.hpp>
-#include <boost/qvm/inline.hpp>
+#include <boost/qvm/gen/vec_assign3.hpp>
#include <boost/qvm/math.hpp>
#include <boost/qvm/static_assert.hpp>
#include <boost/qvm/throw_exception.hpp>
-#include <boost/qvm/vec_traits.hpp>
namespace
boost
@@ -333,39 +331,6 @@ boost
};
}
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
- A &>::type
- assign( A & a, B const & b )
- {
- vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b);
- vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b);
- vec_traits<A>::template write_element<2>(a)=vec_traits<B>::template read_element<2>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int D>
- struct assign_vv_defined;
-
- template <>
- struct
- assign_vv_defined<3>
- {
- static bool const value=true;
- };
- }
-
template <class R,class A>
BOOST_QVM_INLINE_OPERATIONS
typename enable_if_c<
diff --git a/boost/qvm/gen/vec_operations4.hpp b/boost/qvm/gen/vec_operations4.hpp
index 91049445a9..e3edfa27c3 100644
--- a/boost/qvm/gen/vec_operations4.hpp
+++ b/boost/qvm/gen/vec_operations4.hpp
@@ -1,22 +1,20 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_QVM_AD4F14F2444066D06BC430B7323BA122
-#define BOOST_QVM_AD4F14F2444066D06BC430B7323BA122
+#ifndef BOOST_QVM_BF14D67E2DDC8E6683EF574961FF698F
+#define BOOST_QVM_BF14D67E2DDC8E6683EF574961FF698F
//This file was generated by a program. Do not edit manually.
#include <boost/qvm/deduce_scalar.hpp>
#include <boost/qvm/deduce_vec.hpp>
-#include <boost/qvm/enable_if.hpp>
#include <boost/qvm/error.hpp>
-#include <boost/qvm/inline.hpp>
+#include <boost/qvm/gen/vec_assign4.hpp>
#include <boost/qvm/math.hpp>
#include <boost/qvm/static_assert.hpp>
#include <boost/qvm/throw_exception.hpp>
-#include <boost/qvm/vec_traits.hpp>
namespace
boost
@@ -342,40 +340,6 @@ boost
};
}
- template <class A,class B>
- BOOST_QVM_INLINE_OPERATIONS
- typename enable_if_c<
- vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
- A &>::type
- assign( A & a, B const & b )
- {
- vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b);
- vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b);
- vec_traits<A>::template write_element<2>(a)=vec_traits<B>::template read_element<2>(b);
- vec_traits<A>::template write_element<3>(a)=vec_traits<B>::template read_element<3>(b);
- return a;
- }
-
- namespace
- sfinae
- {
- using ::boost::qvm::assign;
- }
-
- namespace
- qvm_detail
- {
- template <int D>
- struct assign_vv_defined;
-
- template <>
- struct
- assign_vv_defined<4>
- {
- static bool const value=true;
- };
- }
-
template <class R,class A>
BOOST_QVM_INLINE_OPERATIONS
typename enable_if_c<