summaryrefslogtreecommitdiff
path: root/boost/qvm/gen
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:41:18 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:43:11 +0900
commitf763a99a501650eff2c60288aa6f10ef916d769e (patch)
tree02af7e13f9a38c888ebf340fe764cbe7dae99da9 /boost/qvm/gen
parent5cde13f21d36c7224b0e13d11c4b49379ae5210d (diff)
downloadboost-f763a99a501650eff2c60288aa6f10ef916d769e.tar.gz
boost-f763a99a501650eff2c60288aa6f10ef916d769e.tar.bz2
boost-f763a99a501650eff2c60288aa6f10ef916d769e.zip
Imported Upstream version 1.62.0upstream/1.62.0
Change-Id: I9d4c1ddb7b7d8f0069217ecc582700f9fda6dd4c Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/qvm/gen')
-rw-r--r--boost/qvm/gen/mat_operations2.hpp1649
-rw-r--r--boost/qvm/gen/mat_operations3.hpp1838
-rw-r--r--boost/qvm/gen/mat_operations4.hpp2044
-rw-r--r--boost/qvm/gen/swizzle2.hpp624
-rw-r--r--boost/qvm/gen/swizzle3.hpp3816
-rw-r--r--boost/qvm/gen/swizzle4.hpp23160
-rw-r--r--boost/qvm/gen/vec_mat_operations2.hpp113
-rw-r--r--boost/qvm/gen/vec_mat_operations3.hpp127
-rw-r--r--boost/qvm/gen/vec_mat_operations4.hpp145
-rw-r--r--boost/qvm/gen/vec_operations2.hpp632
-rw-r--r--boost/qvm/gen/vec_operations3.hpp653
-rw-r--r--boost/qvm/gen/vec_operations4.hpp674
12 files changed, 35475 insertions, 0 deletions
diff --git a/boost/qvm/gen/mat_operations2.hpp b/boost/qvm/gen/mat_operations2.hpp
new file mode 100644
index 0000000000..105ebde2ea
--- /dev/null
+++ b/boost/qvm/gen/mat_operations2.hpp
@@ -0,0 +1,1649 @@
+//Copyright (c) 2008-2016 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_2923BE84E16CD6AE529049F1F1BBE9EB
+#define BOOST_QVM_2923BE84E16CD6AE529049F1F1BBE9EB
+
+//This file was generated by a program. Do not edit manually.
+
+#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/throw_exception.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ deduce_mat2<A,B,2,2> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,2,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==2);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==2);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)+mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)+mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)+mat_traits<B>::template read_element<1,1>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,2,1> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,2,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==2);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)+mat_traits<B>::template read_element<1,0>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ deduce_mat2<A,B,1,2> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,1,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==2);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)+mat_traits<B>::template read_element<0,1>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ deduce_mat2<A,B,2,2> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,2,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==2);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==2);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)-mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)-mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)-mat_traits<B>::template read_element<1,1>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,2,1> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,2,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==2);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)-mat_traits<B>::template read_element<1,0>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ deduce_mat2<A,B,1,2> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,1,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==2);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)-mat_traits<B>::template read_element<0,1>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<1,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==2 && mat_traits<B>::cols==2,
+ A &>::type
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_mm_defined<1,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==2 && mat_traits<B>::cols==2,
+ A &>::type
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_mm_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)*b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)*b;
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==1 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==2 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<1,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<A>::cols==2 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<0,1>(a)*=b;
+ mat_traits<A>::template write_element<1,0>(a)*=b;
+ mat_traits<A>::template write_element<1,1>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_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<A>::cols==1 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<1,0>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_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<A>::cols==2 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<0,1>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)/b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)/b;
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==1 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==2 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<1,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<A>::cols==2 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<0,1>(a)/=b;
+ mat_traits<A>::template write_element<1,0>(a)/=b;
+ mat_traits<A>::template write_element<1,1>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_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<A>::cols==1 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<1,0>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_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<A>::cols==2 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<0,1>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_defined<1,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==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<
+ mat_traits<R>::rows==2 && mat_traits<A>::rows==2 &&
+ mat_traits<R>::cols==2 && mat_traits<A>::cols==2,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r) = mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<1,0>(r) = mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<1,1>(r) = mat_traits<A>::template read_element<1,1>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<R>::rows==2 && mat_traits<A>::rows==2 &&
+ mat_traits<R>::cols==1 && mat_traits<A>::cols==1,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<1,0>(r) = mat_traits<A>::template read_element<1,0>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<R>::rows==1 && mat_traits<A>::rows==1 &&
+ mat_traits<R>::cols==2 && mat_traits<A>::cols==2,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r) = mat_traits<A>::template read_element<0,1>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<1,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==2 && mat_traits<B>::cols==2,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b) &&
+ mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b) &&
+ mat_traits<A>::template read_element<1,1>(a)==mat_traits<B>::template read_element<1,1>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_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,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_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,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_mm_defined<1,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==2 && mat_traits<B>::cols==2,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b)) ||
+ !(mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b)) ||
+ !(mat_traits<A>::template read_element<1,1>(a)==mat_traits<B>::template read_element<1,1>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_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,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_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,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_mm_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r)=-mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<1,0>(r)=-mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<1,1>(r)=-mat_traits<A>::template read_element<1,1>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==1,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<1,0>(r)=-mat_traits<A>::template read_element<1,0>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==2,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r)=-mat_traits<A>::template read_element<0,1>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2,
+ typename mat_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ T const a00=mat_traits<A>::template read_element<0,0>(a);
+ T const a01=mat_traits<A>::template read_element<0,1>(a);
+ T const a10=mat_traits<A>::template read_element<1,0>(a);
+ T const a11=mat_traits<A>::template read_element<1,1>(a);
+ T det=(a00*a11-a01*a10);
+ return det;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::determinant;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct determinant_defined;
+
+ template <>
+ struct
+ determinant_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ inverse( A const & a, B det )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ BOOST_QVM_ASSERT(det!=scalar_traits<B>::value(0));
+ T const a00=mat_traits<A>::template read_element<0,0>(a);
+ T const a01=mat_traits<A>::template read_element<0,1>(a);
+ T const a10=mat_traits<A>::template read_element<1,0>(a);
+ T const a11=mat_traits<A>::template read_element<1,1>(a);
+ T const f=scalar_traits<T>::value(1)/det;
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)= f*a11;
+ mat_traits<R>::template write_element<0,1>(r)=-f*a01;
+ mat_traits<R>::template write_element<1,0>(r)=-f*a10;
+ mat_traits<R>::template write_element<1,1>(r)= f*a00;
+ return r;
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2,
+ deduce_mat<A> >::type
+ inverse( A const & a )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ T det=determinant(a);
+ if( det==scalar_traits<T>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_determinant_error());
+ return inverse(a,det);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::inverse;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct inverse_m_defined;
+
+ template <>
+ struct
+ inverse_m_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ deduce_mat2<A,B,2,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ typedef typename deduce_mat2<A,B,2,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==2);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==2);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10;
+ mat_traits<R>::template write_element<0,1>(r)=a00*b01+a01*b11;
+ mat_traits<R>::template write_element<1,0>(r)=a10*b00+a11*b10;
+ mat_traits<R>::template write_element<1,1>(r)=a10*b01+a11*b11;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<2,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==2 && mat_traits<B>::cols==2,
+ A &>::type
+ operator*=( A & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<A>::template write_element<0,0>(a)=a00*b00+a01*b10;
+ mat_traits<A>::template write_element<0,1>(a)=a00*b01+a01*b11;
+ mat_traits<A>::template write_element<1,0>(a)=a10*b00+a11*b10;
+ mat_traits<A>::template write_element<1,1>(a)=a10*b01+a11*b11;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_eq_mm_defined;
+
+ template <>
+ struct
+ mul_eq_mm_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,2,1> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ typedef typename deduce_mat2<A,B,2,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==2);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10;
+ mat_traits<R>::template write_element<1,0>(r)=a10*b00+a11*b10;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<2,2,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==2 &&
+ mat_traits<A>::cols==2 && mat_traits<B>::cols==2,
+ deduce_mat2<A,B,1,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ typedef typename deduce_mat2<A,B,1,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==2);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10;
+ mat_traits<R>::template write_element<0,1>(r)=a00*b01+a01*b11;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<1,2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/mat_operations3.hpp b/boost/qvm/gen/mat_operations3.hpp
new file mode 100644
index 0000000000..1458cf64d9
--- /dev/null
+++ b/boost/qvm/gen/mat_operations3.hpp
@@ -0,0 +1,1838 @@
+//Copyright (c) 2008-2016 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_B3A6DB3C87C3E99245ED1C6B747DE
+#define BOOST_QVM_B3A6DB3C87C3E99245ED1C6B747DE
+
+//This file was generated by a program. Do not edit manually.
+
+#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/quat_traits.hpp>
+#include <boost/qvm/scalar_traits.hpp>
+#include <boost/qvm/throw_exception.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ deduce_mat2<A,B,3,3> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,3,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==3);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==3);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)+mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)+mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)+mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)+mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)+mat_traits<B>::template read_element<1,2>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)+mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)+mat_traits<B>::template read_element<2,1>(b);
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)+mat_traits<B>::template read_element<2,2>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,3,1> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,3,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==3);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)+mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)+mat_traits<B>::template read_element<2,0>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ deduce_mat2<A,B,1,3> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,1,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==3);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)+mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)+mat_traits<B>::template read_element<0,2>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ deduce_mat2<A,B,3,3> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,3,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==3);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==3);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)-mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)-mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)-mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)-mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)-mat_traits<B>::template read_element<1,2>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)-mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)-mat_traits<B>::template read_element<2,1>(b);
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)-mat_traits<B>::template read_element<2,2>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,3,1> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,3,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==3);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)-mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)-mat_traits<B>::template read_element<2,0>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ deduce_mat2<A,B,1,3> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,1,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==3);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)-mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)-mat_traits<B>::template read_element<0,2>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<1,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==3 && mat_traits<B>::cols==3,
+ A &>::type
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_mm_defined<1,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==3 && mat_traits<B>::cols==3,
+ A &>::type
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_mm_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)*b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)*b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)*b;
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)*b;
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)*b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)*b;
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)*b;
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==1 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)*b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==3 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)*b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<1,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<A>::cols==3 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<0,1>(a)*=b;
+ mat_traits<A>::template write_element<0,2>(a)*=b;
+ mat_traits<A>::template write_element<1,0>(a)*=b;
+ mat_traits<A>::template write_element<1,1>(a)*=b;
+ mat_traits<A>::template write_element<1,2>(a)*=b;
+ mat_traits<A>::template write_element<2,0>(a)*=b;
+ mat_traits<A>::template write_element<2,1>(a)*=b;
+ mat_traits<A>::template write_element<2,2>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_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<A>::cols==1 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<1,0>(a)*=b;
+ mat_traits<A>::template write_element<2,0>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_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<A>::cols==3 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<0,1>(a)*=b;
+ mat_traits<A>::template write_element<0,2>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)/b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)/b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)/b;
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)/b;
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)/b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)/b;
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)/b;
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==1 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)/b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==3 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)/b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<1,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<A>::cols==3 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<0,1>(a)/=b;
+ mat_traits<A>::template write_element<0,2>(a)/=b;
+ mat_traits<A>::template write_element<1,0>(a)/=b;
+ mat_traits<A>::template write_element<1,1>(a)/=b;
+ mat_traits<A>::template write_element<1,2>(a)/=b;
+ mat_traits<A>::template write_element<2,0>(a)/=b;
+ mat_traits<A>::template write_element<2,1>(a)/=b;
+ mat_traits<A>::template write_element<2,2>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_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<A>::cols==1 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<1,0>(a)/=b;
+ mat_traits<A>::template write_element<2,0>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_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<A>::cols==3 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<0,1>(a)/=b;
+ mat_traits<A>::template write_element<0,2>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_defined<1,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==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<
+ mat_traits<R>::rows==3 && mat_traits<A>::rows==3 &&
+ mat_traits<R>::cols==3 && mat_traits<A>::cols==3,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r) = mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r) = mat_traits<A>::template read_element<0,2>(a);
+ mat_traits<R>::template write_element<1,0>(r) = mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<1,1>(r) = mat_traits<A>::template read_element<1,1>(a);
+ mat_traits<R>::template write_element<1,2>(r) = mat_traits<A>::template read_element<1,2>(a);
+ mat_traits<R>::template write_element<2,0>(r) = mat_traits<A>::template read_element<2,0>(a);
+ mat_traits<R>::template write_element<2,1>(r) = mat_traits<A>::template read_element<2,1>(a);
+ mat_traits<R>::template write_element<2,2>(r) = mat_traits<A>::template read_element<2,2>(a);
+ return r;
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE
+ typename enable_if_c<
+ is_mat<R>::value && is_quat<A>::value &&
+ mat_traits<R>::rows==3 && mat_traits<R>::cols==3,
+ R>::type
+ convert_to( A const & q )
+ {
+ typedef typename mat_traits<R>::scalar_type T;
+ T const a=quat_traits<A>::template read_element<0>(q);
+ T const b=quat_traits<A>::template read_element<1>(q);
+ T const c=quat_traits<A>::template read_element<2>(q);
+ T const d=quat_traits<A>::template read_element<3>(q);
+ T const bb = b*b;
+ T const cc = c*c;
+ T const dd = d*d;
+ T const bc = b*c;
+ T const bd = b*d;
+ T const cd = c*d;
+ T const ab = a*b;
+ T const ac = a*c;
+ T const ad = a*d;
+ T const one = scalar_traits<T>::value(1);
+ T const two = one+one;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = one - two*(cc+dd);
+ mat_traits<R>::template write_element<0,1>(r) = two*(bc-ad);
+ mat_traits<R>::template write_element<0,2>(r) = two*(bd+ac);
+ mat_traits<R>::template write_element<1,0>(r) = two*(bc+ad);
+ mat_traits<R>::template write_element<1,1>(r) = one - two*(bb+dd);
+ mat_traits<R>::template write_element<1,2>(r) = two*(cd-ab);
+ mat_traits<R>::template write_element<2,0>(r) = two*(bd-ac);
+ mat_traits<R>::template write_element<2,1>(r) = two*(cd+ab);
+ mat_traits<R>::template write_element<2,2>(r) = one - two*(bb+cc);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<R>::rows==3 && mat_traits<A>::rows==3 &&
+ mat_traits<R>::cols==1 && mat_traits<A>::cols==1,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<1,0>(r) = mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<2,0>(r) = mat_traits<A>::template read_element<2,0>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<R>::rows==1 && mat_traits<A>::rows==1 &&
+ mat_traits<R>::cols==3 && mat_traits<A>::cols==3,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r) = mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r) = mat_traits<A>::template read_element<0,2>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<1,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==3 && mat_traits<B>::cols==3,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b) &&
+ mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b) &&
+ mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b) &&
+ mat_traits<A>::template read_element<1,1>(a)==mat_traits<B>::template read_element<1,1>(b) &&
+ mat_traits<A>::template read_element<1,2>(a)==mat_traits<B>::template read_element<1,2>(b) &&
+ mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b) &&
+ mat_traits<A>::template read_element<2,1>(a)==mat_traits<B>::template read_element<2,1>(b) &&
+ mat_traits<A>::template read_element<2,2>(a)==mat_traits<B>::template read_element<2,2>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_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,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b) &&
+ mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_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,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b) &&
+ mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_mm_defined<1,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==3 && mat_traits<B>::cols==3,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b)) ||
+ !(mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b)) ||
+ !(mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b)) ||
+ !(mat_traits<A>::template read_element<1,1>(a)==mat_traits<B>::template read_element<1,1>(b)) ||
+ !(mat_traits<A>::template read_element<1,2>(a)==mat_traits<B>::template read_element<1,2>(b)) ||
+ !(mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b)) ||
+ !(mat_traits<A>::template read_element<2,1>(a)==mat_traits<B>::template read_element<2,1>(b)) ||
+ !(mat_traits<A>::template read_element<2,2>(a)==mat_traits<B>::template read_element<2,2>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_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,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b)) ||
+ !(mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_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,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b)) ||
+ !(mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_mm_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r)=-mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r)=-mat_traits<A>::template read_element<0,2>(a);
+ mat_traits<R>::template write_element<1,0>(r)=-mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<1,1>(r)=-mat_traits<A>::template read_element<1,1>(a);
+ mat_traits<R>::template write_element<1,2>(r)=-mat_traits<A>::template read_element<1,2>(a);
+ mat_traits<R>::template write_element<2,0>(r)=-mat_traits<A>::template read_element<2,0>(a);
+ mat_traits<R>::template write_element<2,1>(r)=-mat_traits<A>::template read_element<2,1>(a);
+ mat_traits<R>::template write_element<2,2>(r)=-mat_traits<A>::template read_element<2,2>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==1,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<1,0>(r)=-mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<2,0>(r)=-mat_traits<A>::template read_element<2,0>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==3,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r)=-mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r)=-mat_traits<A>::template read_element<0,2>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3,
+ typename mat_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ T const a00=mat_traits<A>::template read_element<0,0>(a);
+ T const a01=mat_traits<A>::template read_element<0,1>(a);
+ T const a02=mat_traits<A>::template read_element<0,2>(a);
+ T const a10=mat_traits<A>::template read_element<1,0>(a);
+ T const a11=mat_traits<A>::template read_element<1,1>(a);
+ T const a12=mat_traits<A>::template read_element<1,2>(a);
+ T const a20=mat_traits<A>::template read_element<2,0>(a);
+ T const a21=mat_traits<A>::template read_element<2,1>(a);
+ T const a22=mat_traits<A>::template read_element<2,2>(a);
+ T det=(a00*(a11*a22-a12*a21)-a01*(a10*a22-a12*a20)+a02*(a10*a21-a11*a20));
+ return det;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::determinant;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct determinant_defined;
+
+ template <>
+ struct
+ determinant_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ inverse( A const & a, B det )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ BOOST_QVM_ASSERT(det!=scalar_traits<B>::value(0));
+ T const a00=mat_traits<A>::template read_element<0,0>(a);
+ T const a01=mat_traits<A>::template read_element<0,1>(a);
+ T const a02=mat_traits<A>::template read_element<0,2>(a);
+ T const a10=mat_traits<A>::template read_element<1,0>(a);
+ T const a11=mat_traits<A>::template read_element<1,1>(a);
+ T const a12=mat_traits<A>::template read_element<1,2>(a);
+ T const a20=mat_traits<A>::template read_element<2,0>(a);
+ T const a21=mat_traits<A>::template read_element<2,1>(a);
+ T const a22=mat_traits<A>::template read_element<2,2>(a);
+ T const f=scalar_traits<T>::value(1)/det;
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)= f*(a11*a22-a12*a21);
+ mat_traits<R>::template write_element<0,1>(r)=-f*(a01*a22-a02*a21);
+ mat_traits<R>::template write_element<0,2>(r)= f*(a01*a12-a02*a11);
+ mat_traits<R>::template write_element<1,0>(r)=-f*(a10*a22-a12*a20);
+ mat_traits<R>::template write_element<1,1>(r)= f*(a00*a22-a02*a20);
+ mat_traits<R>::template write_element<1,2>(r)=-f*(a00*a12-a02*a10);
+ mat_traits<R>::template write_element<2,0>(r)= f*(a10*a21-a11*a20);
+ mat_traits<R>::template write_element<2,1>(r)=-f*(a00*a21-a01*a20);
+ mat_traits<R>::template write_element<2,2>(r)= f*(a00*a11-a01*a10);
+ return r;
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3,
+ deduce_mat<A> >::type
+ inverse( A const & a )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ T det=determinant(a);
+ if( det==scalar_traits<T>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_determinant_error());
+ return inverse(a,det);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::inverse;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct inverse_m_defined;
+
+ template <>
+ struct
+ inverse_m_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ deduce_mat2<A,B,3,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ typedef typename deduce_mat2<A,B,3,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==3);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==3);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10+a02*b20;
+ mat_traits<R>::template write_element<0,1>(r)=a00*b01+a01*b11+a02*b21;
+ mat_traits<R>::template write_element<0,2>(r)=a00*b02+a01*b12+a02*b22;
+ mat_traits<R>::template write_element<1,0>(r)=a10*b00+a11*b10+a12*b20;
+ mat_traits<R>::template write_element<1,1>(r)=a10*b01+a11*b11+a12*b21;
+ mat_traits<R>::template write_element<1,2>(r)=a10*b02+a11*b12+a12*b22;
+ mat_traits<R>::template write_element<2,0>(r)=a20*b00+a21*b10+a22*b20;
+ mat_traits<R>::template write_element<2,1>(r)=a20*b01+a21*b11+a22*b21;
+ mat_traits<R>::template write_element<2,2>(r)=a20*b02+a21*b12+a22*b22;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<3,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==3 && mat_traits<B>::cols==3,
+ A &>::type
+ operator*=( A & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ mat_traits<A>::template write_element<0,0>(a)=a00*b00+a01*b10+a02*b20;
+ mat_traits<A>::template write_element<0,1>(a)=a00*b01+a01*b11+a02*b21;
+ mat_traits<A>::template write_element<0,2>(a)=a00*b02+a01*b12+a02*b22;
+ mat_traits<A>::template write_element<1,0>(a)=a10*b00+a11*b10+a12*b20;
+ mat_traits<A>::template write_element<1,1>(a)=a10*b01+a11*b11+a12*b21;
+ mat_traits<A>::template write_element<1,2>(a)=a10*b02+a11*b12+a12*b22;
+ mat_traits<A>::template write_element<2,0>(a)=a20*b00+a21*b10+a22*b20;
+ mat_traits<A>::template write_element<2,1>(a)=a20*b01+a21*b11+a22*b21;
+ mat_traits<A>::template write_element<2,2>(a)=a20*b02+a21*b12+a22*b22;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_eq_mm_defined;
+
+ template <>
+ struct
+ mul_eq_mm_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,3,1> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ typedef typename deduce_mat2<A,B,3,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==3);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10+a02*b20;
+ mat_traits<R>::template write_element<1,0>(r)=a10*b00+a11*b10+a12*b20;
+ mat_traits<R>::template write_element<2,0>(r)=a20*b00+a21*b10+a22*b20;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<3,3,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==3 &&
+ mat_traits<A>::cols==3 && mat_traits<B>::cols==3,
+ deduce_mat2<A,B,1,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ typedef typename deduce_mat2<A,B,1,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==3);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10+a02*b20;
+ mat_traits<R>::template write_element<0,1>(r)=a00*b01+a01*b11+a02*b21;
+ mat_traits<R>::template write_element<0,2>(r)=a00*b02+a01*b12+a02*b22;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<1,3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/mat_operations4.hpp b/boost/qvm/gen/mat_operations4.hpp
new file mode 100644
index 0000000000..0dab7fba9f
--- /dev/null
+++ b/boost/qvm/gen/mat_operations4.hpp
@@ -0,0 +1,2044 @@
+//Copyright (c) 2008-2016 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_B3124DC843BB8BA61F35A7D938251F
+#define BOOST_QVM_B3124DC843BB8BA61F35A7D938251F
+
+//This file was generated by a program. Do not edit manually.
+
+#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/quat_traits.hpp>
+#include <boost/qvm/scalar_traits.hpp>
+#include <boost/qvm/throw_exception.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ deduce_mat2<A,B,4,4> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,4,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==4);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==4);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)+mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)+mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)+mat_traits<B>::template read_element<0,3>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)+mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)+mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)+mat_traits<B>::template read_element<1,2>(b);
+ mat_traits<R>::template write_element<1,3>(r)=mat_traits<A>::template read_element<1,3>(a)+mat_traits<B>::template read_element<1,3>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)+mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)+mat_traits<B>::template read_element<2,1>(b);
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)+mat_traits<B>::template read_element<2,2>(b);
+ mat_traits<R>::template write_element<2,3>(r)=mat_traits<A>::template read_element<2,3>(a)+mat_traits<B>::template read_element<2,3>(b);
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)+mat_traits<B>::template read_element<3,0>(b);
+ mat_traits<R>::template write_element<3,1>(r)=mat_traits<A>::template read_element<3,1>(a)+mat_traits<B>::template read_element<3,1>(b);
+ mat_traits<R>::template write_element<3,2>(r)=mat_traits<A>::template read_element<3,2>(a)+mat_traits<B>::template read_element<3,2>(b);
+ mat_traits<R>::template write_element<3,3>(r)=mat_traits<A>::template read_element<3,3>(a)+mat_traits<B>::template read_element<3,3>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,4,1> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,4,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==4);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)+mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)+mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)+mat_traits<B>::template read_element<3,0>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ deduce_mat2<A,B,1,4> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,1,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==4);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)+mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)+mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)+mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)+mat_traits<B>::template read_element<0,3>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_mm_defined;
+
+ template <>
+ struct
+ plus_mm_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ deduce_mat2<A,B,4,4> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,4,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==4);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==4);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)-mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)-mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)-mat_traits<B>::template read_element<0,3>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)-mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)-mat_traits<B>::template read_element<1,1>(b);
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)-mat_traits<B>::template read_element<1,2>(b);
+ mat_traits<R>::template write_element<1,3>(r)=mat_traits<A>::template read_element<1,3>(a)-mat_traits<B>::template read_element<1,3>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)-mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)-mat_traits<B>::template read_element<2,1>(b);
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)-mat_traits<B>::template read_element<2,2>(b);
+ mat_traits<R>::template write_element<2,3>(r)=mat_traits<A>::template read_element<2,3>(a)-mat_traits<B>::template read_element<2,3>(b);
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)-mat_traits<B>::template read_element<3,0>(b);
+ mat_traits<R>::template write_element<3,1>(r)=mat_traits<A>::template read_element<3,1>(a)-mat_traits<B>::template read_element<3,1>(b);
+ mat_traits<R>::template write_element<3,2>(r)=mat_traits<A>::template read_element<3,2>(a)-mat_traits<B>::template read_element<3,2>(b);
+ mat_traits<R>::template write_element<3,3>(r)=mat_traits<A>::template read_element<3,3>(a)-mat_traits<B>::template read_element<3,3>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==1 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,4,1> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,4,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==4);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)-mat_traits<B>::template read_element<1,0>(b);
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)-mat_traits<B>::template read_element<2,0>(b);
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)-mat_traits<B>::template read_element<3,0>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ deduce_mat2<A,B,1,4> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_mat2<A,B,1,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==4);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)-mat_traits<B>::template read_element<0,0>(b);
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)-mat_traits<B>::template read_element<0,1>(b);
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)-mat_traits<B>::template read_element<0,2>(b);
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)-mat_traits<B>::template read_element<0,3>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_mm_defined;
+
+ template <>
+ struct
+ minus_mm_defined<1,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==4 && mat_traits<B>::cols==4,
+ A &>::type
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct plus_eq_mm_defined;
+
+ template <>
+ struct
+ plus_eq_mm_defined<1,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==4 && mat_traits<B>::cols==4,
+ A &>::type
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_eq_mm_defined;
+
+ template <>
+ struct
+ minus_eq_mm_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)*b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)*b;
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)*b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)*b;
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)*b;
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)*b;
+ mat_traits<R>::template write_element<1,3>(r)=mat_traits<A>::template read_element<1,3>(a)*b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)*b;
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)*b;
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)*b;
+ mat_traits<R>::template write_element<2,3>(r)=mat_traits<A>::template read_element<2,3>(a)*b;
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)*b;
+ mat_traits<R>::template write_element<3,1>(r)=mat_traits<A>::template read_element<3,1>(a)*b;
+ mat_traits<R>::template write_element<3,2>(r)=mat_traits<A>::template read_element<3,2>(a)*b;
+ mat_traits<R>::template write_element<3,3>(r)=mat_traits<A>::template read_element<3,3>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==1 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)*b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)*b;
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==4 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)*b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)*b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)*b;
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_ms_defined;
+
+ template <>
+ struct
+ mul_ms_defined<1,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<A>::cols==4 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<0,1>(a)*=b;
+ mat_traits<A>::template write_element<0,2>(a)*=b;
+ mat_traits<A>::template write_element<0,3>(a)*=b;
+ mat_traits<A>::template write_element<1,0>(a)*=b;
+ mat_traits<A>::template write_element<1,1>(a)*=b;
+ mat_traits<A>::template write_element<1,2>(a)*=b;
+ mat_traits<A>::template write_element<1,3>(a)*=b;
+ mat_traits<A>::template write_element<2,0>(a)*=b;
+ mat_traits<A>::template write_element<2,1>(a)*=b;
+ mat_traits<A>::template write_element<2,2>(a)*=b;
+ mat_traits<A>::template write_element<2,3>(a)*=b;
+ mat_traits<A>::template write_element<3,0>(a)*=b;
+ mat_traits<A>::template write_element<3,1>(a)*=b;
+ mat_traits<A>::template write_element<3,2>(a)*=b;
+ mat_traits<A>::template write_element<3,3>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_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<A>::cols==1 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<1,0>(a)*=b;
+ mat_traits<A>::template write_element<2,0>(a)*=b;
+ mat_traits<A>::template write_element<3,0>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_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<A>::cols==4 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)*=b;
+ mat_traits<A>::template write_element<0,1>(a)*=b;
+ mat_traits<A>::template write_element<0,2>(a)*=b;
+ mat_traits<A>::template write_element<0,3>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_eq_ms_defined;
+
+ template <>
+ struct
+ mul_eq_ms_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)/b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)/b;
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)/b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)/b;
+ mat_traits<R>::template write_element<1,1>(r)=mat_traits<A>::template read_element<1,1>(a)/b;
+ mat_traits<R>::template write_element<1,2>(r)=mat_traits<A>::template read_element<1,2>(a)/b;
+ mat_traits<R>::template write_element<1,3>(r)=mat_traits<A>::template read_element<1,3>(a)/b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)/b;
+ mat_traits<R>::template write_element<2,1>(r)=mat_traits<A>::template read_element<2,1>(a)/b;
+ mat_traits<R>::template write_element<2,2>(r)=mat_traits<A>::template read_element<2,2>(a)/b;
+ mat_traits<R>::template write_element<2,3>(r)=mat_traits<A>::template read_element<2,3>(a)/b;
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)/b;
+ mat_traits<R>::template write_element<3,1>(r)=mat_traits<A>::template read_element<3,1>(a)/b;
+ mat_traits<R>::template write_element<3,2>(r)=mat_traits<A>::template read_element<3,2>(a)/b;
+ mat_traits<R>::template write_element<3,3>(r)=mat_traits<A>::template read_element<3,3>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==1 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<1,0>(r)=mat_traits<A>::template read_element<1,0>(a)/b;
+ mat_traits<R>::template write_element<2,0>(r)=mat_traits<A>::template read_element<2,0>(a)/b;
+ mat_traits<R>::template write_element<3,0>(r)=mat_traits<A>::template read_element<3,0>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==4 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=mat_traits<A>::template read_element<0,0>(a)/b;
+ mat_traits<R>::template write_element<0,1>(r)=mat_traits<A>::template read_element<0,1>(a)/b;
+ mat_traits<R>::template write_element<0,2>(r)=mat_traits<A>::template read_element<0,2>(a)/b;
+ mat_traits<R>::template write_element<0,3>(r)=mat_traits<A>::template read_element<0,3>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_ms_defined;
+
+ template <>
+ struct
+ div_ms_defined<1,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<A>::cols==4 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<0,1>(a)/=b;
+ mat_traits<A>::template write_element<0,2>(a)/=b;
+ mat_traits<A>::template write_element<0,3>(a)/=b;
+ mat_traits<A>::template write_element<1,0>(a)/=b;
+ mat_traits<A>::template write_element<1,1>(a)/=b;
+ mat_traits<A>::template write_element<1,2>(a)/=b;
+ mat_traits<A>::template write_element<1,3>(a)/=b;
+ mat_traits<A>::template write_element<2,0>(a)/=b;
+ mat_traits<A>::template write_element<2,1>(a)/=b;
+ mat_traits<A>::template write_element<2,2>(a)/=b;
+ mat_traits<A>::template write_element<2,3>(a)/=b;
+ mat_traits<A>::template write_element<3,0>(a)/=b;
+ mat_traits<A>::template write_element<3,1>(a)/=b;
+ mat_traits<A>::template write_element<3,2>(a)/=b;
+ mat_traits<A>::template write_element<3,3>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_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<A>::cols==1 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<1,0>(a)/=b;
+ mat_traits<A>::template write_element<2,0>(a)/=b;
+ mat_traits<A>::template write_element<3,0>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_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<A>::cols==4 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ mat_traits<A>::template write_element<0,0>(a)/=b;
+ mat_traits<A>::template write_element<0,1>(a)/=b;
+ mat_traits<A>::template write_element<0,2>(a)/=b;
+ mat_traits<A>::template write_element<0,3>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct div_eq_ms_defined;
+
+ template <>
+ struct
+ div_eq_ms_defined<1,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==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<
+ mat_traits<R>::rows==4 && mat_traits<A>::rows==4 &&
+ mat_traits<R>::cols==4 && mat_traits<A>::cols==4,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r) = mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r) = mat_traits<A>::template read_element<0,2>(a);
+ mat_traits<R>::template write_element<0,3>(r) = mat_traits<A>::template read_element<0,3>(a);
+ mat_traits<R>::template write_element<1,0>(r) = mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<1,1>(r) = mat_traits<A>::template read_element<1,1>(a);
+ mat_traits<R>::template write_element<1,2>(r) = mat_traits<A>::template read_element<1,2>(a);
+ mat_traits<R>::template write_element<1,3>(r) = mat_traits<A>::template read_element<1,3>(a);
+ mat_traits<R>::template write_element<2,0>(r) = mat_traits<A>::template read_element<2,0>(a);
+ mat_traits<R>::template write_element<2,1>(r) = mat_traits<A>::template read_element<2,1>(a);
+ mat_traits<R>::template write_element<2,2>(r) = mat_traits<A>::template read_element<2,2>(a);
+ mat_traits<R>::template write_element<2,3>(r) = mat_traits<A>::template read_element<2,3>(a);
+ mat_traits<R>::template write_element<3,0>(r) = mat_traits<A>::template read_element<3,0>(a);
+ mat_traits<R>::template write_element<3,1>(r) = mat_traits<A>::template read_element<3,1>(a);
+ mat_traits<R>::template write_element<3,2>(r) = mat_traits<A>::template read_element<3,2>(a);
+ mat_traits<R>::template write_element<3,3>(r) = mat_traits<A>::template read_element<3,3>(a);
+ return r;
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE
+ typename enable_if_c<
+ is_mat<R>::value && is_quat<A>::value &&
+ mat_traits<R>::rows==4 && mat_traits<R>::cols==4,
+ R>::type
+ convert_to( A const & q )
+ {
+ typedef typename mat_traits<R>::scalar_type T;
+ T const a=quat_traits<A>::template read_element<0>(q);
+ T const b=quat_traits<A>::template read_element<1>(q);
+ T const c=quat_traits<A>::template read_element<2>(q);
+ T const d=quat_traits<A>::template read_element<3>(q);
+ T const bb = b*b;
+ T const cc = c*c;
+ T const dd = d*d;
+ T const bc = b*c;
+ T const bd = b*d;
+ T const cd = c*d;
+ T const ab = a*b;
+ T const ac = a*c;
+ T const ad = a*d;
+ T const zero = scalar_traits<T>::value(0);
+ T const one = scalar_traits<T>::value(1);
+ T const two = one+one;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = one - two*(cc+dd);
+ mat_traits<R>::template write_element<0,1>(r) = two*(bc-ad);
+ mat_traits<R>::template write_element<0,2>(r) = two*(bd+ac);
+ mat_traits<R>::template write_element<0,3>(r) = zero;
+ mat_traits<R>::template write_element<1,0>(r) = two*(bc+ad);
+ mat_traits<R>::template write_element<1,1>(r) = one - two*(bb+dd);
+ mat_traits<R>::template write_element<1,2>(r) = two*(cd-ab);
+ mat_traits<R>::template write_element<1,3>(r) = zero;
+ mat_traits<R>::template write_element<2,0>(r) = two*(bd-ac);
+ mat_traits<R>::template write_element<2,1>(r) = two*(cd+ab);
+ mat_traits<R>::template write_element<2,2>(r) = one - two*(bb+cc);
+ mat_traits<R>::template write_element<2,3>(r) = zero;
+ mat_traits<R>::template write_element<3,0>(r) = zero;
+ mat_traits<R>::template write_element<3,1>(r) = zero;
+ mat_traits<R>::template write_element<3,2>(r) = zero;
+ mat_traits<R>::template write_element<3,3>(r) = one;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<R>::rows==4 && mat_traits<A>::rows==4 &&
+ mat_traits<R>::cols==1 && mat_traits<A>::cols==1,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<1,0>(r) = mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<2,0>(r) = mat_traits<A>::template read_element<2,0>(a);
+ mat_traits<R>::template write_element<3,0>(r) = mat_traits<A>::template read_element<3,0>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<R>::rows==1 && mat_traits<A>::rows==1 &&
+ mat_traits<R>::cols==4 && mat_traits<A>::cols==4,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ mat_traits<R>::template write_element<0,0>(r) = mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r) = mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r) = mat_traits<A>::template read_element<0,2>(a);
+ mat_traits<R>::template write_element<0,3>(r) = mat_traits<A>::template read_element<0,3>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct convert_to_m_defined;
+
+ template <>
+ struct
+ convert_to_m_defined<1,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==4 && mat_traits<B>::cols==4,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b) &&
+ mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b) &&
+ mat_traits<A>::template read_element<0,3>(a)==mat_traits<B>::template read_element<0,3>(b) &&
+ mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b) &&
+ mat_traits<A>::template read_element<1,1>(a)==mat_traits<B>::template read_element<1,1>(b) &&
+ mat_traits<A>::template read_element<1,2>(a)==mat_traits<B>::template read_element<1,2>(b) &&
+ mat_traits<A>::template read_element<1,3>(a)==mat_traits<B>::template read_element<1,3>(b) &&
+ mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b) &&
+ mat_traits<A>::template read_element<2,1>(a)==mat_traits<B>::template read_element<2,1>(b) &&
+ mat_traits<A>::template read_element<2,2>(a)==mat_traits<B>::template read_element<2,2>(b) &&
+ mat_traits<A>::template read_element<2,3>(a)==mat_traits<B>::template read_element<2,3>(b) &&
+ mat_traits<A>::template read_element<3,0>(a)==mat_traits<B>::template read_element<3,0>(b) &&
+ mat_traits<A>::template read_element<3,1>(a)==mat_traits<B>::template read_element<3,1>(b) &&
+ mat_traits<A>::template read_element<3,2>(a)==mat_traits<B>::template read_element<3,2>(b) &&
+ mat_traits<A>::template read_element<3,3>(a)==mat_traits<B>::template read_element<3,3>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_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,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b) &&
+ mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b) &&
+ mat_traits<A>::template read_element<3,0>(a)==mat_traits<B>::template read_element<3,0>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_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,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b) &&
+ mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b) &&
+ mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b) &&
+ mat_traits<A>::template read_element<0,3>(a)==mat_traits<B>::template read_element<0,3>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct eq_mm_defined;
+
+ template <>
+ struct
+ eq_mm_defined<1,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==4 && mat_traits<B>::cols==4,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b)) ||
+ !(mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b)) ||
+ !(mat_traits<A>::template read_element<0,3>(a)==mat_traits<B>::template read_element<0,3>(b)) ||
+ !(mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b)) ||
+ !(mat_traits<A>::template read_element<1,1>(a)==mat_traits<B>::template read_element<1,1>(b)) ||
+ !(mat_traits<A>::template read_element<1,2>(a)==mat_traits<B>::template read_element<1,2>(b)) ||
+ !(mat_traits<A>::template read_element<1,3>(a)==mat_traits<B>::template read_element<1,3>(b)) ||
+ !(mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b)) ||
+ !(mat_traits<A>::template read_element<2,1>(a)==mat_traits<B>::template read_element<2,1>(b)) ||
+ !(mat_traits<A>::template read_element<2,2>(a)==mat_traits<B>::template read_element<2,2>(b)) ||
+ !(mat_traits<A>::template read_element<2,3>(a)==mat_traits<B>::template read_element<2,3>(b)) ||
+ !(mat_traits<A>::template read_element<3,0>(a)==mat_traits<B>::template read_element<3,0>(b)) ||
+ !(mat_traits<A>::template read_element<3,1>(a)==mat_traits<B>::template read_element<3,1>(b)) ||
+ !(mat_traits<A>::template read_element<3,2>(a)==mat_traits<B>::template read_element<3,2>(b)) ||
+ !(mat_traits<A>::template read_element<3,3>(a)==mat_traits<B>::template read_element<3,3>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_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,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<1,0>(a)==mat_traits<B>::template read_element<1,0>(b)) ||
+ !(mat_traits<A>::template read_element<2,0>(a)==mat_traits<B>::template read_element<2,0>(b)) ||
+ !(mat_traits<A>::template read_element<3,0>(a)==mat_traits<B>::template read_element<3,0>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_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,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(mat_traits<A>::template read_element<0,0>(a)==mat_traits<B>::template read_element<0,0>(b)) ||
+ !(mat_traits<A>::template read_element<0,1>(a)==mat_traits<B>::template read_element<0,1>(b)) ||
+ !(mat_traits<A>::template read_element<0,2>(a)==mat_traits<B>::template read_element<0,2>(b)) ||
+ !(mat_traits<A>::template read_element<0,3>(a)==mat_traits<B>::template read_element<0,3>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct neq_mm_defined;
+
+ template <>
+ struct
+ neq_mm_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r)=-mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r)=-mat_traits<A>::template read_element<0,2>(a);
+ mat_traits<R>::template write_element<0,3>(r)=-mat_traits<A>::template read_element<0,3>(a);
+ mat_traits<R>::template write_element<1,0>(r)=-mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<1,1>(r)=-mat_traits<A>::template read_element<1,1>(a);
+ mat_traits<R>::template write_element<1,2>(r)=-mat_traits<A>::template read_element<1,2>(a);
+ mat_traits<R>::template write_element<1,3>(r)=-mat_traits<A>::template read_element<1,3>(a);
+ mat_traits<R>::template write_element<2,0>(r)=-mat_traits<A>::template read_element<2,0>(a);
+ mat_traits<R>::template write_element<2,1>(r)=-mat_traits<A>::template read_element<2,1>(a);
+ mat_traits<R>::template write_element<2,2>(r)=-mat_traits<A>::template read_element<2,2>(a);
+ mat_traits<R>::template write_element<2,3>(r)=-mat_traits<A>::template read_element<2,3>(a);
+ mat_traits<R>::template write_element<3,0>(r)=-mat_traits<A>::template read_element<3,0>(a);
+ mat_traits<R>::template write_element<3,1>(r)=-mat_traits<A>::template read_element<3,1>(a);
+ mat_traits<R>::template write_element<3,2>(r)=-mat_traits<A>::template read_element<3,2>(a);
+ mat_traits<R>::template write_element<3,3>(r)=-mat_traits<A>::template read_element<3,3>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==1,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<1,0>(r)=-mat_traits<A>::template read_element<1,0>(a);
+ mat_traits<R>::template write_element<2,0>(r)=-mat_traits<A>::template read_element<2,0>(a);
+ mat_traits<R>::template write_element<3,0>(r)=-mat_traits<A>::template read_element<3,0>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<A>::cols==4,
+ deduce_mat<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=-mat_traits<A>::template read_element<0,0>(a);
+ mat_traits<R>::template write_element<0,1>(r)=-mat_traits<A>::template read_element<0,1>(a);
+ mat_traits<R>::template write_element<0,2>(r)=-mat_traits<A>::template read_element<0,2>(a);
+ mat_traits<R>::template write_element<0,3>(r)=-mat_traits<A>::template read_element<0,3>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct minus_m_defined;
+
+ template <>
+ struct
+ minus_m_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4,
+ typename mat_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ T const a00=mat_traits<A>::template read_element<0,0>(a);
+ T const a01=mat_traits<A>::template read_element<0,1>(a);
+ T const a02=mat_traits<A>::template read_element<0,2>(a);
+ T const a03=mat_traits<A>::template read_element<0,3>(a);
+ T const a10=mat_traits<A>::template read_element<1,0>(a);
+ T const a11=mat_traits<A>::template read_element<1,1>(a);
+ T const a12=mat_traits<A>::template read_element<1,2>(a);
+ T const a13=mat_traits<A>::template read_element<1,3>(a);
+ T const a20=mat_traits<A>::template read_element<2,0>(a);
+ T const a21=mat_traits<A>::template read_element<2,1>(a);
+ T const a22=mat_traits<A>::template read_element<2,2>(a);
+ T const a23=mat_traits<A>::template read_element<2,3>(a);
+ T const a30=mat_traits<A>::template read_element<3,0>(a);
+ T const a31=mat_traits<A>::template read_element<3,1>(a);
+ T const a32=mat_traits<A>::template read_element<3,2>(a);
+ T const a33=mat_traits<A>::template read_element<3,3>(a);
+ T det=(a00*(a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31))-a01*(a10*(a22*a33-a23*a32)-a12*(a20*a33-a23*a30)+a13*(a20*a32-a22*a30))+a02*(a10*(a21*a33-a23*a31)-a11*(a20*a33-a23*a30)+a13*(a20*a31-a21*a30))-a03*(a10*(a21*a32-a22*a31)-a11*(a20*a32-a22*a30)+a12*(a20*a31-a21*a30)));
+ return det;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::determinant;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct determinant_defined;
+
+ template <>
+ struct
+ determinant_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4 && is_scalar<B>::value,
+ deduce_mat<A> >::type
+ inverse( A const & a, B det )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ BOOST_QVM_ASSERT(det!=scalar_traits<B>::value(0));
+ T const a00=mat_traits<A>::template read_element<0,0>(a);
+ T const a01=mat_traits<A>::template read_element<0,1>(a);
+ T const a02=mat_traits<A>::template read_element<0,2>(a);
+ T const a03=mat_traits<A>::template read_element<0,3>(a);
+ T const a10=mat_traits<A>::template read_element<1,0>(a);
+ T const a11=mat_traits<A>::template read_element<1,1>(a);
+ T const a12=mat_traits<A>::template read_element<1,2>(a);
+ T const a13=mat_traits<A>::template read_element<1,3>(a);
+ T const a20=mat_traits<A>::template read_element<2,0>(a);
+ T const a21=mat_traits<A>::template read_element<2,1>(a);
+ T const a22=mat_traits<A>::template read_element<2,2>(a);
+ T const a23=mat_traits<A>::template read_element<2,3>(a);
+ T const a30=mat_traits<A>::template read_element<3,0>(a);
+ T const a31=mat_traits<A>::template read_element<3,1>(a);
+ T const a32=mat_traits<A>::template read_element<3,2>(a);
+ T const a33=mat_traits<A>::template read_element<3,3>(a);
+ T const f=scalar_traits<T>::value(1)/det;
+ typedef typename deduce_mat<A>::type R;
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)= f*(a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31));
+ mat_traits<R>::template write_element<0,1>(r)=-f*(a01*(a22*a33-a23*a32)-a02*(a21*a33-a23*a31)+a03*(a21*a32-a22*a31));
+ mat_traits<R>::template write_element<0,2>(r)= f*(a01*(a12*a33-a13*a32)-a02*(a11*a33-a13*a31)+a03*(a11*a32-a12*a31));
+ mat_traits<R>::template write_element<0,3>(r)=-f*(a01*(a12*a23-a13*a22)-a02*(a11*a23-a13*a21)+a03*(a11*a22-a12*a21));
+ mat_traits<R>::template write_element<1,0>(r)=-f*(a10*(a22*a33-a23*a32)-a12*(a20*a33-a23*a30)+a13*(a20*a32-a22*a30));
+ mat_traits<R>::template write_element<1,1>(r)= f*(a00*(a22*a33-a23*a32)-a02*(a20*a33-a23*a30)+a03*(a20*a32-a22*a30));
+ mat_traits<R>::template write_element<1,2>(r)=-f*(a00*(a12*a33-a13*a32)-a02*(a10*a33-a13*a30)+a03*(a10*a32-a12*a30));
+ mat_traits<R>::template write_element<1,3>(r)= f*(a00*(a12*a23-a13*a22)-a02*(a10*a23-a13*a20)+a03*(a10*a22-a12*a20));
+ mat_traits<R>::template write_element<2,0>(r)= f*(a10*(a21*a33-a23*a31)-a11*(a20*a33-a23*a30)+a13*(a20*a31-a21*a30));
+ mat_traits<R>::template write_element<2,1>(r)=-f*(a00*(a21*a33-a23*a31)-a01*(a20*a33-a23*a30)+a03*(a20*a31-a21*a30));
+ mat_traits<R>::template write_element<2,2>(r)= f*(a00*(a11*a33-a13*a31)-a01*(a10*a33-a13*a30)+a03*(a10*a31-a11*a30));
+ mat_traits<R>::template write_element<2,3>(r)=-f*(a00*(a11*a23-a13*a21)-a01*(a10*a23-a13*a20)+a03*(a10*a21-a11*a20));
+ mat_traits<R>::template write_element<3,0>(r)=-f*(a10*(a21*a32-a22*a31)-a11*(a20*a32-a22*a30)+a12*(a20*a31-a21*a30));
+ mat_traits<R>::template write_element<3,1>(r)= f*(a00*(a21*a32-a22*a31)-a01*(a20*a32-a22*a30)+a02*(a20*a31-a21*a30));
+ mat_traits<R>::template write_element<3,2>(r)=-f*(a00*(a11*a32-a12*a31)-a01*(a10*a32-a12*a30)+a02*(a10*a31-a11*a30));
+ mat_traits<R>::template write_element<3,3>(r)= f*(a00*(a11*a22-a12*a21)-a01*(a10*a22-a12*a20)+a02*(a10*a21-a11*a20));
+ return r;
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4,
+ deduce_mat<A> >::type
+ inverse( A const & a )
+ {
+ typedef typename mat_traits<A>::scalar_type T;
+ T det=determinant(a);
+ if( det==scalar_traits<T>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_determinant_error());
+ return inverse(a,det);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::inverse;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct inverse_m_defined;
+
+ template <>
+ struct
+ inverse_m_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ deduce_mat2<A,B,4,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a03 = mat_traits<A>::template read_element<0,3>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a13 = mat_traits<A>::template read_element<1,3>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Ta const a23 = mat_traits<A>::template read_element<2,3>(a);
+ Ta const a30 = mat_traits<A>::template read_element<3,0>(a);
+ Ta const a31 = mat_traits<A>::template read_element<3,1>(a);
+ Ta const a32 = mat_traits<A>::template read_element<3,2>(a);
+ Ta const a33 = mat_traits<A>::template read_element<3,3>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b03 = mat_traits<B>::template read_element<0,3>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b13 = mat_traits<B>::template read_element<1,3>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ Tb const b23 = mat_traits<B>::template read_element<2,3>(b);
+ Tb const b30 = mat_traits<B>::template read_element<3,0>(b);
+ Tb const b31 = mat_traits<B>::template read_element<3,1>(b);
+ Tb const b32 = mat_traits<B>::template read_element<3,2>(b);
+ Tb const b33 = mat_traits<B>::template read_element<3,3>(b);
+ typedef typename deduce_mat2<A,B,4,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==4);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==4);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10+a02*b20+a03*b30;
+ mat_traits<R>::template write_element<0,1>(r)=a00*b01+a01*b11+a02*b21+a03*b31;
+ mat_traits<R>::template write_element<0,2>(r)=a00*b02+a01*b12+a02*b22+a03*b32;
+ mat_traits<R>::template write_element<0,3>(r)=a00*b03+a01*b13+a02*b23+a03*b33;
+ mat_traits<R>::template write_element<1,0>(r)=a10*b00+a11*b10+a12*b20+a13*b30;
+ mat_traits<R>::template write_element<1,1>(r)=a10*b01+a11*b11+a12*b21+a13*b31;
+ mat_traits<R>::template write_element<1,2>(r)=a10*b02+a11*b12+a12*b22+a13*b32;
+ mat_traits<R>::template write_element<1,3>(r)=a10*b03+a11*b13+a12*b23+a13*b33;
+ mat_traits<R>::template write_element<2,0>(r)=a20*b00+a21*b10+a22*b20+a23*b30;
+ mat_traits<R>::template write_element<2,1>(r)=a20*b01+a21*b11+a22*b21+a23*b31;
+ mat_traits<R>::template write_element<2,2>(r)=a20*b02+a21*b12+a22*b22+a23*b32;
+ mat_traits<R>::template write_element<2,3>(r)=a20*b03+a21*b13+a22*b23+a23*b33;
+ mat_traits<R>::template write_element<3,0>(r)=a30*b00+a31*b10+a32*b20+a33*b30;
+ mat_traits<R>::template write_element<3,1>(r)=a30*b01+a31*b11+a32*b21+a33*b31;
+ mat_traits<R>::template write_element<3,2>(r)=a30*b02+a31*b12+a32*b22+a33*b32;
+ mat_traits<R>::template write_element<3,3>(r)=a30*b03+a31*b13+a32*b23+a33*b33;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<4,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==4 && mat_traits<B>::cols==4,
+ A &>::type
+ operator*=( A & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a03 = mat_traits<A>::template read_element<0,3>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a13 = mat_traits<A>::template read_element<1,3>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Ta const a23 = mat_traits<A>::template read_element<2,3>(a);
+ Ta const a30 = mat_traits<A>::template read_element<3,0>(a);
+ Ta const a31 = mat_traits<A>::template read_element<3,1>(a);
+ Ta const a32 = mat_traits<A>::template read_element<3,2>(a);
+ Ta const a33 = mat_traits<A>::template read_element<3,3>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b03 = mat_traits<B>::template read_element<0,3>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b13 = mat_traits<B>::template read_element<1,3>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ Tb const b23 = mat_traits<B>::template read_element<2,3>(b);
+ Tb const b30 = mat_traits<B>::template read_element<3,0>(b);
+ Tb const b31 = mat_traits<B>::template read_element<3,1>(b);
+ Tb const b32 = mat_traits<B>::template read_element<3,2>(b);
+ Tb const b33 = mat_traits<B>::template read_element<3,3>(b);
+ mat_traits<A>::template write_element<0,0>(a)=a00*b00+a01*b10+a02*b20+a03*b30;
+ mat_traits<A>::template write_element<0,1>(a)=a00*b01+a01*b11+a02*b21+a03*b31;
+ mat_traits<A>::template write_element<0,2>(a)=a00*b02+a01*b12+a02*b22+a03*b32;
+ mat_traits<A>::template write_element<0,3>(a)=a00*b03+a01*b13+a02*b23+a03*b33;
+ mat_traits<A>::template write_element<1,0>(a)=a10*b00+a11*b10+a12*b20+a13*b30;
+ mat_traits<A>::template write_element<1,1>(a)=a10*b01+a11*b11+a12*b21+a13*b31;
+ mat_traits<A>::template write_element<1,2>(a)=a10*b02+a11*b12+a12*b22+a13*b32;
+ mat_traits<A>::template write_element<1,3>(a)=a10*b03+a11*b13+a12*b23+a13*b33;
+ mat_traits<A>::template write_element<2,0>(a)=a20*b00+a21*b10+a22*b20+a23*b30;
+ mat_traits<A>::template write_element<2,1>(a)=a20*b01+a21*b11+a22*b21+a23*b31;
+ mat_traits<A>::template write_element<2,2>(a)=a20*b02+a21*b12+a22*b22+a23*b32;
+ mat_traits<A>::template write_element<2,3>(a)=a20*b03+a21*b13+a22*b23+a23*b33;
+ mat_traits<A>::template write_element<3,0>(a)=a30*b00+a31*b10+a32*b20+a33*b30;
+ mat_traits<A>::template write_element<3,1>(a)=a30*b01+a31*b11+a32*b21+a33*b31;
+ mat_traits<A>::template write_element<3,2>(a)=a30*b02+a31*b12+a32*b22+a33*b32;
+ mat_traits<A>::template write_element<3,3>(a)=a30*b03+a31*b13+a32*b23+a33*b33;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_eq_mm_defined;
+
+ template <>
+ struct
+ mul_eq_mm_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==1,
+ deduce_mat2<A,B,4,1> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a03 = mat_traits<A>::template read_element<0,3>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a13 = mat_traits<A>::template read_element<1,3>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Ta const a23 = mat_traits<A>::template read_element<2,3>(a);
+ Ta const a30 = mat_traits<A>::template read_element<3,0>(a);
+ Ta const a31 = mat_traits<A>::template read_element<3,1>(a);
+ Ta const a32 = mat_traits<A>::template read_element<3,2>(a);
+ Ta const a33 = mat_traits<A>::template read_element<3,3>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b30 = mat_traits<B>::template read_element<3,0>(b);
+ typedef typename deduce_mat2<A,B,4,1>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==4);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==1);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10+a02*b20+a03*b30;
+ mat_traits<R>::template write_element<1,0>(r)=a10*b00+a11*b10+a12*b20+a13*b30;
+ mat_traits<R>::template write_element<2,0>(r)=a20*b00+a21*b10+a22*b20+a23*b30;
+ mat_traits<R>::template write_element<3,0>(r)=a30*b00+a31*b10+a32*b20+a33*b30;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<4,4,1>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<A>::rows==1 && mat_traits<B>::rows==4 &&
+ mat_traits<A>::cols==4 && mat_traits<B>::cols==4,
+ deduce_mat2<A,B,1,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a03 = mat_traits<A>::template read_element<0,3>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b03 = mat_traits<B>::template read_element<0,3>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b13 = mat_traits<B>::template read_element<1,3>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ Tb const b23 = mat_traits<B>::template read_element<2,3>(b);
+ Tb const b30 = mat_traits<B>::template read_element<3,0>(b);
+ Tb const b31 = mat_traits<B>::template read_element<3,1>(b);
+ Tb const b32 = mat_traits<B>::template read_element<3,2>(b);
+ Tb const b33 = mat_traits<B>::template read_element<3,3>(b);
+ typedef typename deduce_mat2<A,B,1,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::rows==1);
+ BOOST_QVM_STATIC_ASSERT(mat_traits<R>::cols==4);
+ R r;
+ mat_traits<R>::template write_element<0,0>(r)=a00*b00+a01*b10+a02*b20+a03*b30;
+ mat_traits<R>::template write_element<0,1>(r)=a00*b01+a01*b11+a02*b21+a03*b31;
+ mat_traits<R>::template write_element<0,2>(r)=a00*b02+a01*b12+a02*b22+a03*b32;
+ mat_traits<R>::template write_element<0,3>(r)=a00*b03+a01*b13+a02*b23+a03*b33;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int CR,int C>
+ struct mul_mm_defined;
+
+ template <>
+ struct
+ mul_mm_defined<1,4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/swizzle2.hpp b/boost/qvm/gen/swizzle2.hpp
new file mode 100644
index 0000000000..fd953d3812
--- /dev/null
+++ b/boost/qvm/gen/swizzle2.hpp
@@ -0,0 +1,624 @@
+//Copyright (c) 2008-2016 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/detail/swizzle_traits.hpp>
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > const &
+ _11()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > const &
+ _01()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > const &>::type
+ W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > &>::type
+ W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > const &>::type
+ Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > &>::type
+ Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > const &>::type
+ Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > &>::type
+ Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>::type
+ X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>::type
+ X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const &
+ _10()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const &
+ _00()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>::type
+ W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>::type
+ W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>::type
+ Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>::type
+ Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>::type
+ Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>::type
+ Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>::type
+ X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>::type
+ X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>::type
+ _1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>::type
+ _1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>::type
+ _0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>::type
+ _0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > const &>::type
+ WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>::type
+ WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > const &>::type
+ ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>::type
+ ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > const &>::type
+ YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>::type
+ YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > const &>::type
+ XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>::type
+ XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>::type
+ _1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>::type
+ _1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>::type
+ _0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>::type
+ _0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>::type
+ WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>::type
+ WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > const &>::type
+ ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > &>::type
+ ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>::type
+ YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>::type
+ YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > const &>::type
+ XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > &>::type
+ XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>::type
+ _1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>::type
+ _1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>::type
+ _0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>::type
+ _0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>::type
+ WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>::type
+ WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>::type
+ ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>::type
+ ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>::type
+ YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>::type
+ YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>::type
+ XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>::type
+ XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>::type
+ _1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>::type
+ _1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>::type
+ _0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>::type
+ _0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>::type
+ WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>::type
+ WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>::type
+ ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>::type
+ ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>::type
+ YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>::type
+ YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>::type
+ XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>::type
+ XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
+ }
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/swizzle3.hpp b/boost/qvm/gen/swizzle3.hpp
new file mode 100644
index 0000000000..30a24c3a35
--- /dev/null
+++ b/boost/qvm/gen/swizzle3.hpp
@@ -0,0 +1,3816 @@
+//Copyright (c) 2008-2016 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/detail/swizzle_traits.hpp>
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &
+ _111()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &
+ _011()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ W11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ W11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ Z11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ Z11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ Y11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ Y11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ X11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ X11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &
+ _101()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &
+ _001()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ W01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ W01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ Z01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ Z01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ Y01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ Y01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ X01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ X01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _1W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _1W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _0W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _0W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ WW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ WW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ ZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ ZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ YW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ YW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ XW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ XW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _1Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _1Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _0Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _0Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ WZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ WZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ ZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ ZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ YZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ YZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ XZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ XZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _1Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _1Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _0Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _0Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ WY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ WY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ ZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ ZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ YY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ YY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ XY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ XY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _1X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _1X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ _0X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ _0X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ WX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ WX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ ZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ ZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ YX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ YX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
+ XX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
+ XX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &
+ _110()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &
+ _010()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ W10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ W10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ Z10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ Z10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ Y10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ Y10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ X10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ X10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &
+ _100()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &
+ _000()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ W00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ W00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ Z00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ Z00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ Y00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ Y00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ X00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ X00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _1W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _1W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _0W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _0W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ WW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ WW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ ZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ ZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ YW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ YW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ XW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ XW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _1Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _1Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _0Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _0Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ WZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ WZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ ZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ ZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ YZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ YZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ XZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ XZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _1Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _1Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _0Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _0Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ WY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ WY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ ZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ ZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ YY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ YY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ XY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ XY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _1X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _1X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ _0X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ _0X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ WX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ WX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ ZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ ZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ YX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ YX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
+ XX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
+ XX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _11W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _11W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _01W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _01W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ W1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ W1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ Z1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ Z1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ Y1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ Y1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ X1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ X1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _10W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _10W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _00W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _00W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ W0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ W0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ Z0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ Z0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ Y0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ Y0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ X0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ X0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _1WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _1WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _0WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _0WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ WWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
+ WWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ ZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
+ ZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ YWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
+ YWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ XWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
+ XWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _1ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _1ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _0ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _0ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ WZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ WZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ ZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ ZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ YZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ YZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ XZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
+ XZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _1YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _1YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _0YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _0YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ WYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ WYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ ZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ ZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ YYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ YYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ XYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
+ XYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _1XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _1XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ _0XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
+ _0XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ WXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
+ WXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ ZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
+ ZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ YXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
+ YXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
+ XXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
+ XXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _11Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _11Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _01Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _01Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ W1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ W1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ Z1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ Z1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ Y1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ Y1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ X1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ X1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _10Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _10Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _00Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _00Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ W0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ W0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ Z0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ Z0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ Y0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ Y0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ X0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ X0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _1WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _1WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _0WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _0WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ WWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
+ WWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ ZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
+ ZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ YWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
+ YWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ XWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
+ XWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _1ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _1ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _0ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _0ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ WZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ WZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ ZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ ZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ YZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ YZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ XZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
+ XZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _1YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _1YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _0YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _0YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ WYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ WYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ ZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ ZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ YYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ YYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ XYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
+ XYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _1XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _1XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ _0XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
+ _0XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ WXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
+ WXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ ZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
+ ZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ YXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
+ YXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
+ XXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
+ XXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _11Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _11Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _01Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _01Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ W1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ W1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ Z1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ Z1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ Y1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ Y1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ X1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ X1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _10Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _10Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _00Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _00Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ W0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ W0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ Z0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ Z0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ Y0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ Y0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ X0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ X0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _1WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _1WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _0WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _0WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ WWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
+ WWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ ZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
+ ZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ YWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
+ YWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ XWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
+ XWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _1ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _1ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _0ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _0ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ WZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ WZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ ZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ ZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ YZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ YZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ XZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
+ XZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _1YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _1YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _0YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _0YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ WYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ WYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ ZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ ZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ YYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ YYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ XYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
+ XYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _1XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _1XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ _0XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
+ _0XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ WXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
+ WXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ ZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
+ ZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ YXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
+ YXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
+ XXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
+ XXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _11X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _11X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _01X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _01X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ W1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ W1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ Z1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ Z1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ Y1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ Y1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ X1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ X1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _10X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _10X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _00X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _00X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ W0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ W0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ Z0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ Z0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ Y0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ Y0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ X0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ X0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _1WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _1WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _0WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _0WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ WWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
+ WWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ ZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
+ ZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ YWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
+ YWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ XWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
+ XWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _1ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _1ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _0ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _0ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ WZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ WZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ ZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ ZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ YZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ YZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ XZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
+ XZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _1YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _1YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _0YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _0YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ WYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ WYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ ZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ ZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ YYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ YYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ XYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
+ XYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _1XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _1XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ _0XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
+ _0XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ WXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
+ WXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ ZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
+ ZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ YXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
+ YXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
+ XXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
+ XXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
+ }
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/swizzle4.hpp b/boost/qvm/gen/swizzle4.hpp
new file mode 100644
index 0000000000..db10e2a3b6
--- /dev/null
+++ b/boost/qvm/gen/swizzle4.hpp
@@ -0,0 +1,23160 @@
+//Copyright (c) 2008-2016 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/detail/swizzle_traits.hpp>
+#include <boost/qvm/enable_if.hpp>
+#include <boost/qvm/inline.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _1111()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _0111()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W111( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W111( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z111( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z111( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y111( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y111( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X111( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X111( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _1011()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _0011()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W011( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W011( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z011( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z011( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y011( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y011( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X011( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X011( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1W11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1W11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0W11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0W11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WW11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WW11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZW11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZW11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YW11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YW11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XW11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XW11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1Z11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1Z11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0Z11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0Z11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WZ11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WZ11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZZ11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZZ11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YZ11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YZ11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XZ11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XZ11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1Y11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1Y11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0Y11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0Y11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WY11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WY11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZY11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZY11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YY11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YY11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XY11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XY11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1X11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1X11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0X11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0X11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WX11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WX11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZX11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZX11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YX11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YX11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XX11( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XX11( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _1101()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _0101()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W101( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W101( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z101( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z101( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y101( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y101( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X101( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X101( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _1001()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &
+ _0001()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W001( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W001( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z001( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z001( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y001( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y001( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X001( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X001( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1W01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1W01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0W01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0W01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WW01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WW01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZW01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZW01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YW01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YW01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XW01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XW01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1Z01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1Z01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0Z01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0Z01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WZ01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WZ01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZZ01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZZ01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YZ01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YZ01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XZ01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XZ01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1Y01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1Y01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0Y01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0Y01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WY01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WY01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZY01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZY01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YY01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YY01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XY01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XY01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1X01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1X01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0X01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0X01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WX01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WX01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZX01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZX01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YX01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YX01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XX01( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XX01( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _11W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _11W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _01W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _01W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W1W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W1W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z1W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z1W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y1W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y1W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X1W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X1W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _10W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _10W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _00W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _00W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W0W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W0W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z0W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z0W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y0W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y0W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X0W1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X0W1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1WW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1WW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0WW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0WW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WWW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WWW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZWW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZWW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YWW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YWW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XWW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XWW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1ZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1ZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0ZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0ZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XZW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XZW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1YW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1YW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0YW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0YW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WYW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WYW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZYW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZYW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YYW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YYW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XYW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XYW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1XW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1XW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0XW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0XW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WXW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WXW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZXW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZXW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YXW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YXW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XXW1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XXW1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _11Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _11Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _01Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _01Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W1Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W1Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z1Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z1Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y1Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y1Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X1Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X1Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _10Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _10Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _00Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _00Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W0Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W0Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z0Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z0Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y0Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y0Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X0Z1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X0Z1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1WZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1WZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0WZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0WZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WWZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WWZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZWZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZWZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YWZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YWZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XWZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XWZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1ZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1ZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0ZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0ZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XZZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XZZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1YZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1YZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0YZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0YZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WYZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WYZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZYZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZYZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YYZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YYZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XYZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XYZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1XZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1XZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0XZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0XZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WXZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WXZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZXZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZXZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YXZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YXZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XXZ1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XXZ1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _11Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _11Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _01Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _01Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W1Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W1Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z1Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z1Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y1Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y1Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X1Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X1Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _10Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _10Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _00Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _00Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W0Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W0Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z0Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z0Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y0Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y0Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X0Y1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X0Y1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1WY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1WY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0WY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0WY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WWY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WWY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZWY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZWY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YWY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YWY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XWY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XWY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1ZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1ZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0ZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0ZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XZY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XZY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1YY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1YY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0YY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0YY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WYY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WYY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZYY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZYY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YYY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YYY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XYY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XYY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1XY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1XY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0XY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0XY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WXY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WXY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZXY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZXY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YXY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YXY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XXY1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XXY1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _11X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _11X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _01X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _01X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W1X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W1X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z1X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z1X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y1X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y1X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X1X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X1X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _10X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _10X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _00X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _00X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ W0X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ W0X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Z0X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Z0X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ Y0X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ Y0X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ X0X1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ X0X1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1WX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1WX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0WX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0WX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WWX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WWX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZWX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZWX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YWX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YWX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XWX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XWX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1ZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1ZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0ZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0ZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XZX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XZX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1YX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1YX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0YX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0YX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WYX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WYX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZYX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZYX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YYX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YYX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XYX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XYX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _1XX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _1XX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ _0XX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ _0XX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ WXX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ WXX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ ZXX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ ZXX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ YXX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ YXX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>::type
+ XXX1( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>::type
+ XXX1( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _1110()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _0110()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W110( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W110( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z110( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z110( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y110( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y110( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X110( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X110( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _1010()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _0010()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W010( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W010( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z010( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z010( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y010( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y010( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X010( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X010( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1W10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1W10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0W10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0W10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WW10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WW10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZW10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZW10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YW10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YW10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XW10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XW10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1Z10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1Z10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0Z10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0Z10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WZ10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WZ10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZZ10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZZ10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YZ10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YZ10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XZ10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XZ10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1Y10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1Y10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0Y10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0Y10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WY10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WY10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZY10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZY10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YY10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YY10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XY10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XY10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1X10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1X10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0X10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0X10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WX10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WX10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZX10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZX10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YX10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YX10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XX10( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XX10( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _1100()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _0100()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W100( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W100( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z100( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z100( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y100( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y100( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X100( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X100( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _1000()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ BOOST_QVM_INLINE_TRIVIAL
+ qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &
+ _0000()
+ {
+ return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const *>(qvm_detail::get_null());
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W000( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W000( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z000( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z000( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y000( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y000( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X000( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X000( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1W00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1W00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0W00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0W00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WW00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WW00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZW00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZW00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YW00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YW00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XW00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XW00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1Z00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1Z00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0Z00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0Z00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WZ00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WZ00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZZ00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZZ00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YZ00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YZ00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XZ00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XZ00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1Y00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1Y00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0Y00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0Y00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WY00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WY00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZY00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZY00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YY00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YY00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XY00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XY00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1X00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1X00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0X00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0X00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WX00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WX00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZX00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZX00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YX00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YX00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XX00( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XX00( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _11W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _11W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _01W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _01W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W1W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W1W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z1W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z1W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y1W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y1W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X1W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X1W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _10W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _10W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _00W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _00W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W0W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W0W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z0W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z0W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y0W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y0W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X0W0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X0W0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1WW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1WW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0WW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0WW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WWW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WWW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZWW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZWW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YWW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YWW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XWW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XWW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1ZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1ZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0ZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0ZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XZW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XZW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1YW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1YW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0YW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0YW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WYW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WYW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZYW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZYW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YYW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YYW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XYW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XYW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1XW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1XW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0XW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0XW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WXW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WXW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZXW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZXW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YXW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YXW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XXW0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XXW0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _11Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _11Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _01Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _01Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W1Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W1Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z1Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z1Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y1Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y1Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X1Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X1Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _10Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _10Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _00Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _00Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W0Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W0Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z0Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z0Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y0Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y0Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X0Z0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X0Z0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1WZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1WZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0WZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0WZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WWZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WWZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZWZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZWZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YWZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YWZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XWZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XWZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1ZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1ZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0ZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0ZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XZZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XZZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1YZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1YZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0YZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0YZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WYZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WYZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZYZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZYZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YYZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YYZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XYZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XYZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1XZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1XZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0XZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0XZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WXZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WXZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZXZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZXZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YXZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YXZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XXZ0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XXZ0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _11Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _11Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _01Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _01Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W1Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W1Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z1Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z1Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y1Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y1Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X1Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X1Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _10Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _10Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _00Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _00Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W0Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W0Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z0Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z0Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y0Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y0Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X0Y0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X0Y0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1WY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1WY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0WY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0WY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WWY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WWY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZWY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZWY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YWY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YWY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XWY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XWY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1ZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1ZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0ZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0ZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XZY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XZY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1YY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1YY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0YY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0YY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WYY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WYY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZYY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZYY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YYY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YYY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XYY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XYY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1XY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1XY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0XY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0XY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WXY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WXY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZXY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZXY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YXY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YXY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XXY0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XXY0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _11X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _11X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _01X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _01X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W1X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W1X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z1X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z1X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y1X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y1X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X1X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X1X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _10X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _10X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _00X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _00X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ W0X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ W0X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Z0X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Z0X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ Y0X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ Y0X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ X0X0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ X0X0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1WX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1WX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0WX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0WX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WWX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WWX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZWX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZWX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YWX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YWX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XWX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XWX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1ZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1ZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0ZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0ZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XZX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XZX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1YX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1YX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0YX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0YX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WYX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WYX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZYX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZYX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YYX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YYX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XYX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XYX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _1XX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _1XX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ _0XX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ _0XX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ WXX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ WXX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ ZXX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ ZXX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ YXX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ YXX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>::type
+ XXX0( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>::type
+ XXX0( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _111W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _111W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _011W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _011W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W11W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W11W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z11W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z11W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y11W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y11W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X11W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X11W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _101W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _101W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _001W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _001W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W01W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W01W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z01W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z01W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y01W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y01W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X01W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X01W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1W1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1W1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0W1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0W1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WW1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WW1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZW1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZW1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YW1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YW1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XW1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XW1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1Z1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1Z1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0Z1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0Z1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WZ1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WZ1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZZ1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZZ1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YZ1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YZ1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XZ1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XZ1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1Y1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1Y1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0Y1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0Y1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WY1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WY1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZY1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZY1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YY1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YY1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XY1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XY1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1X1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1X1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0X1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0X1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WX1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WX1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZX1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZX1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YX1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YX1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XX1W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XX1W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _110W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _110W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _010W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _010W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W10W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W10W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z10W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z10W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y10W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y10W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X10W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X10W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _100W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _100W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _000W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _000W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W00W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W00W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z00W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z00W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y00W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y00W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X00W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X00W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1W0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1W0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0W0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0W0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WW0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WW0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZW0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZW0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YW0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YW0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XW0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XW0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1Z0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1Z0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0Z0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0Z0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WZ0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WZ0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZZ0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZZ0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YZ0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YZ0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XZ0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XZ0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1Y0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1Y0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0Y0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0Y0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WY0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WY0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZY0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZY0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YY0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YY0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XY0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XY0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1X0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1X0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0X0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0X0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WX0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WX0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZX0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZX0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YX0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YX0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XX0W( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XX0W( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _11WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _11WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _01WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _01WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W1WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W1WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z1WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z1WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y1WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y1WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X1WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X1WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _10WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _10WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _00WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _00WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W0WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W0WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z0WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z0WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y0WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y0WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X0WW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X0WW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1WWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1WWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0WWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0WWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WWWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WWWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZWWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZWWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YWWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YWWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XWWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XWWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1ZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1ZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0ZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0ZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XZWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XZWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1YWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1YWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0YWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0YWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WYWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WYWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZYWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZYWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YYWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YYWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XYWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XYWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1XWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1XWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0XWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0XWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WXWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WXWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZXWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZXWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YXWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YXWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XXWW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XXWW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _11ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _11ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _01ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _01ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W1ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W1ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z1ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z1ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y1ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y1ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X1ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X1ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _10ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _10ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _00ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _00ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W0ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W0ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z0ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z0ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y0ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y0ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X0ZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X0ZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1WZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1WZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0WZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0WZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WWZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WWZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZWZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZWZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YWZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YWZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XWZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XWZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1ZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1ZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0ZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0ZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XZZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XZZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1YZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1YZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0YZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0YZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WYZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WYZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZYZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZYZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YYZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YYZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XYZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XYZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1XZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1XZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0XZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0XZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WXZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WXZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZXZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZXZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YXZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YXZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XXZW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XXZW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _11YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _11YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _01YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _01YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W1YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W1YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z1YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z1YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y1YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y1YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X1YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X1YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _10YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _10YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _00YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _00YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W0YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W0YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z0YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z0YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y0YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y0YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X0YW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X0YW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1WYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1WYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0WYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0WYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WWYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WWYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZWYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZWYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YWYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YWYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XWYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XWYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1ZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1ZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0ZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0ZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XZYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XZYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1YYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1YYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0YYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0YYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WYYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WYYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZYYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZYYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YYYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YYYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XYYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XYYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1XYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1XYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0XYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0XYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WXYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WXYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZXYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZXYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YXYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YXYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XXYW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XXYW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _11XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _11XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _01XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _01XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W1XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W1XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z1XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z1XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y1XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y1XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X1XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X1XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _10XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _10XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _00XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _00XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ W0XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ W0XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Z0XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Z0XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ Y0XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ Y0XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ X0XW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ X0XW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1WXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1WXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0WXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0WXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WWXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WWXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZWXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZWXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YWXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YWXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XWXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XWXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1ZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1ZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0ZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0ZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XZXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XZXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1YXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1YXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0YXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0YXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WYXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WYXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZYXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZYXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YYXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YYXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XYXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XYXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _1XXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _1XXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ _0XXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ _0XXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ WXXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ WXXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ ZXXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ ZXXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ YXXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ YXXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>::type
+ XXXW( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>::type
+ XXXW( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _111Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _111Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _011Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _011Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W11Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W11Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z11Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z11Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y11Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y11Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X11Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X11Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _101Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _101Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _001Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _001Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W01Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W01Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z01Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z01Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y01Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y01Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X01Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X01Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1W1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1W1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0W1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0W1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WW1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WW1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZW1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZW1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YW1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YW1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XW1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XW1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1Z1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1Z1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0Z1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0Z1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WZ1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WZ1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZZ1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZZ1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YZ1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YZ1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XZ1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XZ1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1Y1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1Y1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0Y1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0Y1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WY1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WY1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZY1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZY1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YY1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YY1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XY1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XY1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1X1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1X1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0X1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0X1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WX1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WX1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZX1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZX1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YX1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YX1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XX1Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XX1Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _110Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _110Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _010Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _010Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W10Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W10Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z10Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z10Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y10Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y10Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X10Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X10Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _100Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _100Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _000Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _000Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W00Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W00Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z00Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z00Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y00Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y00Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X00Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X00Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1W0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1W0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0W0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0W0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WW0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WW0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZW0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZW0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YW0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YW0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XW0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XW0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1Z0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1Z0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0Z0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0Z0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WZ0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WZ0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZZ0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZZ0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YZ0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YZ0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XZ0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XZ0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1Y0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1Y0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0Y0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0Y0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WY0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WY0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZY0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZY0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YY0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YY0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XY0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XY0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1X0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1X0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0X0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0X0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WX0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WX0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZX0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZX0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YX0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YX0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XX0Z( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XX0Z( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _11WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _11WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _01WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _01WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W1WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W1WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z1WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z1WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y1WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y1WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X1WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X1WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _10WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _10WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _00WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _00WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W0WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W0WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z0WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z0WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y0WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y0WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X0WZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X0WZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1WWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1WWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0WWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0WWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WWWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WWWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZWWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZWWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YWWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YWWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XWWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XWWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1ZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1ZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0ZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0ZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XZWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XZWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1YWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1YWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0YWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0YWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WYWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WYWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZYWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZYWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YYWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YYWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XYWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XYWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1XWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1XWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0XWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0XWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WXWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WXWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZXWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZXWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YXWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YXWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XXWZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XXWZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _11ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _11ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _01ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _01ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W1ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W1ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z1ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z1ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y1ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y1ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X1ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X1ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _10ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _10ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _00ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _00ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W0ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W0ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z0ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z0ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y0ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y0ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X0ZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X0ZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1WZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1WZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0WZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0WZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WWZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WWZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZWZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZWZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YWZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YWZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XWZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XWZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1ZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1ZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0ZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0ZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XZZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XZZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1YZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1YZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0YZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0YZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WYZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WYZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZYZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZYZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YYZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YYZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XYZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XYZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1XZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1XZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0XZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0XZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WXZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WXZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZXZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZXZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YXZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YXZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XXZZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XXZZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _11YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _11YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _01YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _01YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W1YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W1YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z1YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z1YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y1YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y1YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X1YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X1YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _10YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _10YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _00YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _00YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W0YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W0YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z0YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z0YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y0YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y0YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X0YZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X0YZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1WYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1WYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0WYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0WYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WWYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WWYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZWYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZWYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YWYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YWYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XWYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XWYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1ZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1ZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0ZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0ZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XZYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XZYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1YYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1YYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0YYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0YYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WYYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WYYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZYYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZYYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YYYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YYYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XYYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XYYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1XYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1XYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0XYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0XYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WXYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WXYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZXYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZXYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YXYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YXYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XXYZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XXYZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _11XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _11XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _01XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _01XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W1XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W1XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z1XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z1XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y1XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y1XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X1XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X1XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _10XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _10XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _00XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _00XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ W0XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ W0XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Z0XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Z0XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ Y0XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ Y0XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ X0XZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ X0XZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1WXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1WXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0WXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0WXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WWXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WWXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZWXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZWXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YWXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YWXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XWXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XWXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1ZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1ZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0ZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0ZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XZXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XZXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1YXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1YXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0YXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0YXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WYXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WYXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZYXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZYXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YYXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YYXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XYXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XYXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _1XXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _1XXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ _0XXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ _0XXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ WXXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ WXXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ ZXXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ ZXXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ YXXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ YXXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>::type
+ XXXZ( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>::type
+ XXXZ( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _111Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _111Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _011Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _011Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W11Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W11Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z11Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z11Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y11Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y11Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X11Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X11Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _101Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _101Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _001Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _001Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W01Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W01Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z01Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z01Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y01Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y01Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X01Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X01Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1W1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1W1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0W1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0W1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WW1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WW1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZW1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZW1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YW1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YW1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XW1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XW1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1Z1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1Z1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0Z1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0Z1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WZ1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WZ1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZZ1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZZ1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YZ1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YZ1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XZ1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XZ1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1Y1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1Y1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0Y1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0Y1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WY1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WY1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZY1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZY1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YY1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YY1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XY1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XY1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1X1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1X1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0X1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0X1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WX1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WX1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZX1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZX1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YX1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YX1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XX1Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XX1Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _110Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _110Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _010Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _010Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W10Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W10Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z10Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z10Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y10Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y10Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X10Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X10Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _100Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _100Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _000Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _000Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W00Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W00Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z00Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z00Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y00Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y00Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X00Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X00Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1W0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1W0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0W0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0W0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WW0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WW0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZW0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZW0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YW0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YW0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XW0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XW0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1Z0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1Z0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0Z0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0Z0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WZ0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WZ0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZZ0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZZ0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YZ0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YZ0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XZ0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XZ0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1Y0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1Y0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0Y0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0Y0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WY0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WY0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZY0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZY0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YY0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YY0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XY0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XY0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1X0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1X0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0X0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0X0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WX0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WX0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZX0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZX0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YX0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YX0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XX0Y( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XX0Y( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _11WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _11WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _01WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _01WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W1WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W1WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z1WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z1WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y1WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y1WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X1WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X1WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _10WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _10WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _00WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _00WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W0WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W0WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z0WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z0WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y0WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y0WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X0WY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X0WY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1WWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1WWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0WWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0WWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WWWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WWWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZWWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZWWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YWWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YWWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XWWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XWWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1ZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1ZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0ZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0ZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XZWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XZWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1YWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1YWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0YWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0YWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WYWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WYWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZYWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZYWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YYWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YYWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XYWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XYWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1XWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1XWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0XWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0XWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WXWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WXWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZXWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZXWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YXWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YXWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XXWY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XXWY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _11ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _11ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _01ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _01ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W1ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W1ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z1ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z1ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y1ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y1ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X1ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X1ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _10ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _10ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _00ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _00ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W0ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W0ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z0ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z0ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y0ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y0ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X0ZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X0ZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1WZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1WZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0WZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0WZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WWZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WWZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZWZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZWZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YWZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YWZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XWZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XWZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1ZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1ZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0ZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0ZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XZZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XZZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1YZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1YZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0YZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0YZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WYZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WYZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZYZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZYZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YYZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YYZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XYZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XYZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1XZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1XZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0XZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0XZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WXZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WXZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZXZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZXZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YXZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YXZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XXZY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XXZY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _11YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _11YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _01YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _01YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W1YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W1YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z1YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z1YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y1YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y1YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X1YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X1YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _10YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _10YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _00YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _00YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W0YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W0YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z0YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z0YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y0YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y0YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X0YY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X0YY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1WYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1WYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0WYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0WYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WWYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WWYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZWYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZWYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YWYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YWYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XWYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XWYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1ZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1ZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0ZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0ZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XZYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XZYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1YYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1YYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0YYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0YYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WYYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WYYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZYYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZYYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YYYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YYYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XYYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XYYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1XYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1XYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0XYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0XYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WXYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WXYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZXYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZXYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YXYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YXYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XXYY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XXYY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _11XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _11XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _01XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _01XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W1XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W1XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z1XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z1XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y1XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y1XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X1XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X1XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _10XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _10XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _00XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _00XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ W0XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ W0XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Z0XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Z0XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ Y0XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ Y0XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ X0XY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ X0XY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1WXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1WXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0WXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0WXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WWXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WWXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZWXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZWXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YWXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YWXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XWXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XWXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1ZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1ZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0ZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0ZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XZXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XZXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1YXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1YXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0YXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0YXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WYXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WYXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZYXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZYXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YYXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YYXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XYXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XYXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _1XXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _1XXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ _0XXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ _0XXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ WXXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ WXXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ ZXXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ ZXXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ YXXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ YXXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>::type
+ XXXY( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>::type
+ XXXY( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _111X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _111X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _011X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _011X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W11X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W11X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z11X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z11X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y11X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y11X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X11X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X11X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _101X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _101X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _001X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _001X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W01X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W01X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z01X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z01X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y01X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y01X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X01X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X01X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1W1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1W1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0W1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0W1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WW1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WW1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZW1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZW1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YW1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YW1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XW1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XW1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1Z1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1Z1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0Z1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0Z1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WZ1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WZ1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZZ1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZZ1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YZ1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YZ1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XZ1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XZ1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1Y1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1Y1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0Y1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0Y1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WY1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WY1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZY1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZY1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YY1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YY1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XY1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XY1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1X1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1X1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0X1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0X1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WX1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WX1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZX1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZX1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YX1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YX1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XX1X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XX1X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _110X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _110X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _010X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _010X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W10X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W10X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z10X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z10X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y10X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y10X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X10X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X10X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _100X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _100X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _000X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _000X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W00X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W00X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z00X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z00X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y00X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y00X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X00X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X00X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1W0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1W0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0W0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0W0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WW0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WW0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZW0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZW0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YW0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YW0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XW0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XW0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1Z0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1Z0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0Z0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0Z0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WZ0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WZ0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZZ0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZZ0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YZ0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YZ0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XZ0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XZ0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1Y0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1Y0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0Y0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0Y0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WY0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WY0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZY0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZY0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YY0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YY0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XY0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XY0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1X0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1X0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0X0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0X0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WX0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WX0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZX0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZX0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YX0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YX0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XX0X( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XX0X( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _11WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _11WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _01WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _01WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W1WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W1WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z1WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z1WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y1WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y1WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X1WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X1WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _10WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _10WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _00WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _00WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W0WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W0WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z0WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z0WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y0WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y0WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X0WX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X0WX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1WWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1WWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0WWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0WWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WWWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WWWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZWWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZWWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YWWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YWWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XWWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XWWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1ZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1ZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0ZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0ZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XZWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XZWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1YWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1YWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0YWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0YWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WYWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WYWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZYWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZYWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YYWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YYWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XYWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XYWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1XWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1XWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0XWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0XWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WXWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WXWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZXWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZXWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YXWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YXWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XXWX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XXWX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _11ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _11ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _01ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _01ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W1ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W1ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z1ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z1ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y1ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y1ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X1ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X1ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _10ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _10ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _00ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _00ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W0ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W0ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z0ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z0ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y0ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y0ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X0ZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X0ZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1WZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1WZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0WZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0WZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WWZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WWZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZWZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZWZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YWZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YWZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XWZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XWZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1ZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1ZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0ZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0ZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XZZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XZZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1YZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1YZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0YZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0YZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WYZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WYZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZYZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZYZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YYZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YYZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XYZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XYZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1XZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1XZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0XZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0XZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WXZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WXZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZXZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZXZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YXZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YXZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XXZX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XXZX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _11YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _11YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _01YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _01YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W1YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W1YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z1YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z1YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y1YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y1YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X1YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X1YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _10YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _10YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _00YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _00YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W0YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W0YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z0YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z0YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y0YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y0YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X0YX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X0YX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1WYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1WYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0WYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0WYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WWYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WWYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZWYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZWYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YWYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YWYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XWYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XWYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1ZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1ZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0ZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0ZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XZYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XZYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1YYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1YYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0YYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0YYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WYYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WYYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZYYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZYYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YYYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YYYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XYYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XYYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1XYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1XYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0XYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0XYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WXYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WXYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZXYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZXYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YXYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YXYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XXYX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XXYX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _11XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _11XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _01XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _01XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W1XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W1XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z1XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z1XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y1XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y1XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X1XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X1XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _10XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _10XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _00XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _00XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ W0XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ W0XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Z0XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Z0XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ Y0XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ Y0XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ X0XX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ X0XX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1WXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1WXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0WXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0WXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WWXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WWXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZWXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZWXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YWXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YWXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XWXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XWXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1ZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1ZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0ZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0ZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XZXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XZXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1YXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1YXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0YXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0YXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WYXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WYXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZYXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZYXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YYXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YYXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XYXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XYXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _1XXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _1XXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ _0XXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ _0XXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ WXXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=4,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ WXXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ ZXXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=3,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ ZXXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ YXXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=2,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ YXXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>::type
+ XXXX( V const & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > const &>(a);
+ }
+ template <class V>
+ BOOST_QVM_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vec<V>::value && vec_traits<V>::dim>=1,
+ qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>::type
+ XXXX( V & a )
+ {
+ return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > > &>(a);
+ }
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_mat_operations2.hpp b/boost/qvm/gen/vec_mat_operations2.hpp
new file mode 100644
index 0000000000..d446e9b27a
--- /dev/null
+++ b/boost/qvm/gen/vec_mat_operations2.hpp
@@ -0,0 +1,113 @@
+//Copyright (c) 2008-2016 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
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/deduce_vec.hpp>
+#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 lazy_enable_if_c<
+ mat_traits<A>::rows==2 && mat_traits<A>::cols==2 &&
+ vec_traits<B>::dim==2,
+ deduce_vec2<A,B,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename vec_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Tb const b0 = vec_traits<B>::template read_element<0>(b);
+ Tb const b1 = vec_traits<B>::template read_element<1>(b);
+ typedef typename deduce_vec2<A,B,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==2);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a00*b0+a01*b1;
+ vec_traits<R>::template write_element<1>(r)=a10*b0+a11*b1;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_mv_defined;
+
+ template <>
+ struct
+ mul_mv_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<B>::rows==2 && mat_traits<B>::cols==2 &&
+ vec_traits<A>::dim==2,
+ deduce_vec2<A,B,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename vec_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a0 = vec_traits<A>::template read_element<0>(a);
+ Ta const a1 = vec_traits<A>::template read_element<1>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ typedef typename deduce_vec2<A,B,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==2);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a0*b00+a1*b10;
+ vec_traits<R>::template write_element<1>(r)=a0*b01+a1*b11;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_vm_defined;
+
+ template <>
+ struct
+ mul_vm_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_mat_operations3.hpp b/boost/qvm/gen/vec_mat_operations3.hpp
new file mode 100644
index 0000000000..deec8ec04e
--- /dev/null
+++ b/boost/qvm/gen/vec_mat_operations3.hpp
@@ -0,0 +1,127 @@
+//Copyright (c) 2008-2016 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
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/deduce_vec.hpp>
+#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 lazy_enable_if_c<
+ mat_traits<A>::rows==3 && mat_traits<A>::cols==3 &&
+ vec_traits<B>::dim==3,
+ deduce_vec2<A,B,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename vec_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Tb const b0 = vec_traits<B>::template read_element<0>(b);
+ Tb const b1 = vec_traits<B>::template read_element<1>(b);
+ Tb const b2 = vec_traits<B>::template read_element<2>(b);
+ typedef typename deduce_vec2<A,B,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==3);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a00*b0+a01*b1+a02*b2;
+ vec_traits<R>::template write_element<1>(r)=a10*b0+a11*b1+a12*b2;
+ vec_traits<R>::template write_element<2>(r)=a20*b0+a21*b1+a22*b2;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_mv_defined;
+
+ template <>
+ struct
+ mul_mv_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<B>::rows==3 && mat_traits<B>::cols==3 &&
+ vec_traits<A>::dim==3,
+ deduce_vec2<A,B,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename vec_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a0 = vec_traits<A>::template read_element<0>(a);
+ Ta const a1 = vec_traits<A>::template read_element<1>(a);
+ Ta const a2 = vec_traits<A>::template read_element<2>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ typedef typename deduce_vec2<A,B,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==3);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a0*b00+a1*b10+a2*b20;
+ vec_traits<R>::template write_element<1>(r)=a0*b01+a1*b11+a2*b21;
+ vec_traits<R>::template write_element<2>(r)=a0*b02+a1*b12+a2*b22;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_vm_defined;
+
+ template <>
+ struct
+ mul_vm_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_mat_operations4.hpp b/boost/qvm/gen/vec_mat_operations4.hpp
new file mode 100644
index 0000000000..3016cf2465
--- /dev/null
+++ b/boost/qvm/gen/vec_mat_operations4.hpp
@@ -0,0 +1,145 @@
+//Copyright (c) 2008-2016 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
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/qvm/deduce_vec.hpp>
+#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 lazy_enable_if_c<
+ mat_traits<A>::rows==4 && mat_traits<A>::cols==4 &&
+ vec_traits<B>::dim==4,
+ deduce_vec2<A,B,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename mat_traits<A>::scalar_type Ta;
+ typedef typename vec_traits<B>::scalar_type Tb;
+ Ta const a00 = mat_traits<A>::template read_element<0,0>(a);
+ Ta const a01 = mat_traits<A>::template read_element<0,1>(a);
+ Ta const a02 = mat_traits<A>::template read_element<0,2>(a);
+ Ta const a03 = mat_traits<A>::template read_element<0,3>(a);
+ Ta const a10 = mat_traits<A>::template read_element<1,0>(a);
+ Ta const a11 = mat_traits<A>::template read_element<1,1>(a);
+ Ta const a12 = mat_traits<A>::template read_element<1,2>(a);
+ Ta const a13 = mat_traits<A>::template read_element<1,3>(a);
+ Ta const a20 = mat_traits<A>::template read_element<2,0>(a);
+ Ta const a21 = mat_traits<A>::template read_element<2,1>(a);
+ Ta const a22 = mat_traits<A>::template read_element<2,2>(a);
+ Ta const a23 = mat_traits<A>::template read_element<2,3>(a);
+ Ta const a30 = mat_traits<A>::template read_element<3,0>(a);
+ Ta const a31 = mat_traits<A>::template read_element<3,1>(a);
+ Ta const a32 = mat_traits<A>::template read_element<3,2>(a);
+ Ta const a33 = mat_traits<A>::template read_element<3,3>(a);
+ Tb const b0 = vec_traits<B>::template read_element<0>(b);
+ Tb const b1 = vec_traits<B>::template read_element<1>(b);
+ Tb const b2 = vec_traits<B>::template read_element<2>(b);
+ Tb const b3 = vec_traits<B>::template read_element<3>(b);
+ typedef typename deduce_vec2<A,B,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==4);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a00*b0+a01*b1+a02*b2+a03*b3;
+ vec_traits<R>::template write_element<1>(r)=a10*b0+a11*b1+a12*b2+a13*b3;
+ vec_traits<R>::template write_element<2>(r)=a20*b0+a21*b1+a22*b2+a23*b3;
+ vec_traits<R>::template write_element<3>(r)=a30*b0+a31*b1+a32*b2+a33*b3;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_mv_defined;
+
+ template <>
+ struct
+ mul_mv_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ mat_traits<B>::rows==4 && mat_traits<B>::cols==4 &&
+ vec_traits<A>::dim==4,
+ deduce_vec2<A,B,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename vec_traits<A>::scalar_type Ta;
+ typedef typename mat_traits<B>::scalar_type Tb;
+ Ta const a0 = vec_traits<A>::template read_element<0>(a);
+ Ta const a1 = vec_traits<A>::template read_element<1>(a);
+ Ta const a2 = vec_traits<A>::template read_element<2>(a);
+ Ta const a3 = vec_traits<A>::template read_element<3>(a);
+ Tb const b00 = mat_traits<B>::template read_element<0,0>(b);
+ Tb const b01 = mat_traits<B>::template read_element<0,1>(b);
+ Tb const b02 = mat_traits<B>::template read_element<0,2>(b);
+ Tb const b03 = mat_traits<B>::template read_element<0,3>(b);
+ Tb const b10 = mat_traits<B>::template read_element<1,0>(b);
+ Tb const b11 = mat_traits<B>::template read_element<1,1>(b);
+ Tb const b12 = mat_traits<B>::template read_element<1,2>(b);
+ Tb const b13 = mat_traits<B>::template read_element<1,3>(b);
+ Tb const b20 = mat_traits<B>::template read_element<2,0>(b);
+ Tb const b21 = mat_traits<B>::template read_element<2,1>(b);
+ Tb const b22 = mat_traits<B>::template read_element<2,2>(b);
+ Tb const b23 = mat_traits<B>::template read_element<2,3>(b);
+ Tb const b30 = mat_traits<B>::template read_element<3,0>(b);
+ Tb const b31 = mat_traits<B>::template read_element<3,1>(b);
+ Tb const b32 = mat_traits<B>::template read_element<3,2>(b);
+ Tb const b33 = mat_traits<B>::template read_element<3,3>(b);
+ typedef typename deduce_vec2<A,B,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==4);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a0*b00+a1*b10+a2*b20+a3*b30;
+ vec_traits<R>::template write_element<1>(r)=a0*b01+a1*b11+a2*b21+a3*b31;
+ vec_traits<R>::template write_element<2>(r)=a0*b02+a1*b12+a2*b22+a3*b32;
+ vec_traits<R>::template write_element<3>(r)=a0*b03+a1*b13+a2*b23+a3*b33;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int R,int C>
+ struct mul_vm_defined;
+
+ template <>
+ struct
+ mul_vm_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_operations2.hpp b/boost/qvm/gen/vec_operations2.hpp
new file mode 100644
index 0000000000..715aec5bdd
--- /dev/null
+++ b/boost/qvm/gen/vec_operations2.hpp
@@ -0,0 +1,632 @@
+//Copyright (c) 2008-2016 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/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/math.hpp>
+#include <boost/qvm/static_assert.hpp>
+#include <boost/qvm/throw_exception.hpp>
+#include <boost/qvm/vec_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
+ deduce_vec2<A,B,2> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vec2<A,B,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==2);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)+vec_traits<B>::template read_element<0>(b);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)+vec_traits<B>::template read_element<1>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct plus_vv_defined;
+
+ template <>
+ struct
+ plus_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
+ deduce_vec2<A,B,2> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vec2<A,B,2>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==2);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)-vec_traits<B>::template read_element<0>(b);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)-vec_traits<B>::template read_element<1>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_vv_defined;
+
+ template <>
+ struct
+ minus_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct plus_eq_vv_defined;
+
+ template <>
+ struct
+ plus_eq_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_eq_vv_defined;
+
+ template <>
+ struct
+ minus_eq_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2 && is_scalar<B>::value,
+ deduce_vec<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)*b;
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_vs_defined;
+
+ template <>
+ struct
+ mul_vs_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==2 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ vec_traits<A>::template write_element<0>(a)*=b;
+ vec_traits<A>::template write_element<1>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_eq_vs_defined;
+
+ template <>
+ struct
+ mul_eq_vs_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2 && is_scalar<B>::value,
+ deduce_vec<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)/b;
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct div_vs_defined;
+
+ template <>
+ struct
+ div_vs_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==2 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ vec_traits<A>::template write_element<0>(a)/=b;
+ vec_traits<A>::template write_element<1>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct div_eq_vs_defined;
+
+ template <>
+ struct
+ div_eq_vs_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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<
+ is_vec<A>::value &&
+ vec_traits<R>::dim==2 && vec_traits<A>::dim==2,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct convert_to_v_defined;
+
+ template <>
+ struct
+ convert_to_v_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ vec_traits<A>::template read_element<0>(a)==vec_traits<B>::template read_element<0>(b) &&
+ vec_traits<A>::template read_element<1>(a)==vec_traits<B>::template read_element<1>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct eq_vv_defined;
+
+ template <>
+ struct
+ eq_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(vec_traits<A>::template read_element<0>(a)==vec_traits<B>::template read_element<0>(b)) ||
+ !(vec_traits<A>::template read_element<1>(a)==vec_traits<B>::template read_element<1>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct neq_vv_defined;
+
+ template <>
+ struct
+ neq_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2,
+ deduce_vec<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=-vec_traits<A>::template read_element<0>(a);
+ vec_traits<R>::template write_element<1>(r)=-vec_traits<A>::template read_element<1>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_v_defined;
+
+ template <>
+ struct
+ minus_v_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vec<A>::value && vec_traits<A>::dim==2,
+ typename vec_traits<A>::scalar_type>::type
+ mag( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const m2=a0*a0+a1*a1;
+ T const mag=sqrt<T>(m2);
+ return mag;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::mag;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mag_v_defined;
+
+ template <>
+ struct
+ mag_v_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vec<A>::value && vec_traits<A>::dim==2,
+ typename vec_traits<A>::scalar_type>::type
+ mag_sqr( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const m2=a0*a0+a1*a1;
+ return m2;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::mag_sqr;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mag_sqr_v_defined;
+
+ template <>
+ struct
+ mag_sqr_v_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2,
+ deduce_vec<A> >::type
+ normalized( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const m2=a0*a0+a1*a1;
+ if( m2==scalar_traits<typename vec_traits<A>::scalar_type>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_magnitude_error());
+ T const rm=scalar_traits<T>::value(1)/sqrt<T>(m2);
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a0*rm;
+ vec_traits<R>::template write_element<1>(r)=a1*rm;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::normalized;
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==2,
+ void>::type
+ normalize( A & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const m2=a0*a0+a1*a1;
+ if( m2==scalar_traits<typename vec_traits<A>::scalar_type>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_magnitude_error());
+ T const rm=scalar_traits<T>::value(1)/sqrt<T>(m2);
+ vec_traits<A>::template write_element<0>(a)*=rm;
+ vec_traits<A>::template write_element<1>(a)*=rm;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::normalize;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct normalize_v_defined;
+
+ template <>
+ struct
+ normalize_v_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==2 && vec_traits<B>::dim==2,
+ deduce_scalar<typename vec_traits<A>::scalar_type,typename vec_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename vec_traits<A>::scalar_type Ta;
+ typedef typename vec_traits<B>::scalar_type Tb;
+ typedef typename deduce_scalar<Ta,Tb>::type Tr;
+ Ta const a0=vec_traits<A>::template read_element<0>(a);
+ Ta const a1=vec_traits<A>::template read_element<1>(a);
+ Tb const b0=vec_traits<B>::template read_element<0>(b);
+ Tb const b1=vec_traits<B>::template read_element<1>(b);
+ Tr const dot=a0*b0+a1*b1;
+ return dot;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::dot;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct dot_vv_defined;
+
+ template <>
+ struct
+ dot_vv_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_operations3.hpp b/boost/qvm/gen/vec_operations3.hpp
new file mode 100644
index 0000000000..405848fd85
--- /dev/null
+++ b/boost/qvm/gen/vec_operations3.hpp
@@ -0,0 +1,653 @@
+//Copyright (c) 2008-2016 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/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/math.hpp>
+#include <boost/qvm/static_assert.hpp>
+#include <boost/qvm/throw_exception.hpp>
+#include <boost/qvm/vec_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
+ deduce_vec2<A,B,3> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vec2<A,B,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==3);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)+vec_traits<B>::template read_element<0>(b);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)+vec_traits<B>::template read_element<1>(b);
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)+vec_traits<B>::template read_element<2>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct plus_vv_defined;
+
+ template <>
+ struct
+ plus_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
+ deduce_vec2<A,B,3> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vec2<A,B,3>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==3);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)-vec_traits<B>::template read_element<0>(b);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)-vec_traits<B>::template read_element<1>(b);
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)-vec_traits<B>::template read_element<2>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_vv_defined;
+
+ template <>
+ struct
+ minus_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct plus_eq_vv_defined;
+
+ template <>
+ struct
+ plus_eq_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_eq_vv_defined;
+
+ template <>
+ struct
+ minus_eq_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3 && is_scalar<B>::value,
+ deduce_vec<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)*b;
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)*b;
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_vs_defined;
+
+ template <>
+ struct
+ mul_vs_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==3 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ vec_traits<A>::template write_element<0>(a)*=b;
+ vec_traits<A>::template write_element<1>(a)*=b;
+ vec_traits<A>::template write_element<2>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_eq_vs_defined;
+
+ template <>
+ struct
+ mul_eq_vs_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3 && is_scalar<B>::value,
+ deduce_vec<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)/b;
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)/b;
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct div_vs_defined;
+
+ template <>
+ struct
+ div_vs_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==3 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ vec_traits<A>::template write_element<0>(a)/=b;
+ vec_traits<A>::template write_element<1>(a)/=b;
+ vec_traits<A>::template write_element<2>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct div_eq_vs_defined;
+
+ template <>
+ struct
+ div_eq_vs_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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<
+ is_vec<A>::value &&
+ vec_traits<R>::dim==3 && vec_traits<A>::dim==3,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a);
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct convert_to_v_defined;
+
+ template <>
+ struct
+ convert_to_v_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ vec_traits<A>::template read_element<0>(a)==vec_traits<B>::template read_element<0>(b) &&
+ vec_traits<A>::template read_element<1>(a)==vec_traits<B>::template read_element<1>(b) &&
+ vec_traits<A>::template read_element<2>(a)==vec_traits<B>::template read_element<2>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct eq_vv_defined;
+
+ template <>
+ struct
+ eq_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(vec_traits<A>::template read_element<0>(a)==vec_traits<B>::template read_element<0>(b)) ||
+ !(vec_traits<A>::template read_element<1>(a)==vec_traits<B>::template read_element<1>(b)) ||
+ !(vec_traits<A>::template read_element<2>(a)==vec_traits<B>::template read_element<2>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct neq_vv_defined;
+
+ template <>
+ struct
+ neq_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3,
+ deduce_vec<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=-vec_traits<A>::template read_element<0>(a);
+ vec_traits<R>::template write_element<1>(r)=-vec_traits<A>::template read_element<1>(a);
+ vec_traits<R>::template write_element<2>(r)=-vec_traits<A>::template read_element<2>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_v_defined;
+
+ template <>
+ struct
+ minus_v_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vec<A>::value && vec_traits<A>::dim==3,
+ typename vec_traits<A>::scalar_type>::type
+ mag( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const m2=a0*a0+a1*a1+a2*a2;
+ T const mag=sqrt<T>(m2);
+ return mag;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::mag;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mag_v_defined;
+
+ template <>
+ struct
+ mag_v_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vec<A>::value && vec_traits<A>::dim==3,
+ typename vec_traits<A>::scalar_type>::type
+ mag_sqr( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const m2=a0*a0+a1*a1+a2*a2;
+ return m2;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::mag_sqr;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mag_sqr_v_defined;
+
+ template <>
+ struct
+ mag_sqr_v_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3,
+ deduce_vec<A> >::type
+ normalized( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const m2=a0*a0+a1*a1+a2*a2;
+ if( m2==scalar_traits<typename vec_traits<A>::scalar_type>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_magnitude_error());
+ T const rm=scalar_traits<T>::value(1)/sqrt<T>(m2);
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a0*rm;
+ vec_traits<R>::template write_element<1>(r)=a1*rm;
+ vec_traits<R>::template write_element<2>(r)=a2*rm;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::normalized;
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==3,
+ void>::type
+ normalize( A & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const m2=a0*a0+a1*a1+a2*a2;
+ if( m2==scalar_traits<typename vec_traits<A>::scalar_type>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_magnitude_error());
+ T const rm=scalar_traits<T>::value(1)/sqrt<T>(m2);
+ vec_traits<A>::template write_element<0>(a)*=rm;
+ vec_traits<A>::template write_element<1>(a)*=rm;
+ vec_traits<A>::template write_element<2>(a)*=rm;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::normalize;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct normalize_v_defined;
+
+ template <>
+ struct
+ normalize_v_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==3 && vec_traits<B>::dim==3,
+ deduce_scalar<typename vec_traits<A>::scalar_type,typename vec_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename vec_traits<A>::scalar_type Ta;
+ typedef typename vec_traits<B>::scalar_type Tb;
+ typedef typename deduce_scalar<Ta,Tb>::type Tr;
+ Ta const a0=vec_traits<A>::template read_element<0>(a);
+ Ta const a1=vec_traits<A>::template read_element<1>(a);
+ Ta const a2=vec_traits<A>::template read_element<2>(a);
+ Tb const b0=vec_traits<B>::template read_element<0>(b);
+ Tb const b1=vec_traits<B>::template read_element<1>(b);
+ Tb const b2=vec_traits<B>::template read_element<2>(b);
+ Tr const dot=a0*b0+a1*b1+a2*b2;
+ return dot;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::dot;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct dot_vv_defined;
+
+ template <>
+ struct
+ dot_vv_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif
diff --git a/boost/qvm/gen/vec_operations4.hpp b/boost/qvm/gen/vec_operations4.hpp
new file mode 100644
index 0000000000..ac7c8e4c62
--- /dev/null
+++ b/boost/qvm/gen/vec_operations4.hpp
@@ -0,0 +1,674 @@
+//Copyright (c) 2008-2016 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/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/math.hpp>
+#include <boost/qvm/static_assert.hpp>
+#include <boost/qvm/throw_exception.hpp>
+#include <boost/qvm/vec_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
+ deduce_vec2<A,B,4> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vec2<A,B,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==4);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)+vec_traits<B>::template read_element<0>(b);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)+vec_traits<B>::template read_element<1>(b);
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)+vec_traits<B>::template read_element<2>(b);
+ vec_traits<R>::template write_element<3>(r)=vec_traits<A>::template read_element<3>(a)+vec_traits<B>::template read_element<3>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator+;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct plus_vv_defined;
+
+ template <>
+ struct
+ plus_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
+ deduce_vec2<A,B,4> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vec2<A,B,4>::type R;
+ BOOST_QVM_STATIC_ASSERT(vec_traits<R>::dim==4);
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)-vec_traits<B>::template read_element<0>(b);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)-vec_traits<B>::template read_element<1>(b);
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)-vec_traits<B>::template read_element<2>(b);
+ vec_traits<R>::template write_element<3>(r)=vec_traits<A>::template read_element<3>(a)-vec_traits<B>::template read_element<3>(b);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_vv_defined;
+
+ template <>
+ struct
+ minus_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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
+ operator+=( 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::operator+=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct plus_eq_vv_defined;
+
+ template <>
+ struct
+ plus_eq_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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
+ operator-=( 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::operator-=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_eq_vv_defined;
+
+ template <>
+ struct
+ minus_eq_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4 && is_scalar<B>::value,
+ deduce_vec<A> >::type
+ operator*( A const & a, B b )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)*b;
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)*b;
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)*b;
+ vec_traits<R>::template write_element<3>(r)=vec_traits<A>::template read_element<3>(a)*b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_vs_defined;
+
+ template <>
+ struct
+ mul_vs_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==4 && is_scalar<B>::value,
+ A &>::type
+ operator*=( A & a, B b )
+ {
+ vec_traits<A>::template write_element<0>(a)*=b;
+ vec_traits<A>::template write_element<1>(a)*=b;
+ vec_traits<A>::template write_element<2>(a)*=b;
+ vec_traits<A>::template write_element<3>(a)*=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator*=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mul_eq_vs_defined;
+
+ template <>
+ struct
+ mul_eq_vs_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4 && is_scalar<B>::value,
+ deduce_vec<A> >::type
+ operator/( A const & a, B b )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a)/b;
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a)/b;
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a)/b;
+ vec_traits<R>::template write_element<3>(r)=vec_traits<A>::template read_element<3>(a)/b;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct div_vs_defined;
+
+ template <>
+ struct
+ div_vs_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==4 && is_scalar<B>::value,
+ A &>::type
+ operator/=( A & a, B b )
+ {
+ vec_traits<A>::template write_element<0>(a)/=b;
+ vec_traits<A>::template write_element<1>(a)/=b;
+ vec_traits<A>::template write_element<2>(a)/=b;
+ vec_traits<A>::template write_element<3>(a)/=b;
+ return a;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator/=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct div_eq_vs_defined;
+
+ template <>
+ struct
+ div_eq_vs_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ 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<
+ is_vec<A>::value &&
+ vec_traits<R>::dim==4 && vec_traits<A>::dim==4,
+ R>::type
+ convert_to( A const & a )
+ {
+ R r;
+ vec_traits<R>::template write_element<0>(r)=vec_traits<A>::template read_element<0>(a);
+ vec_traits<R>::template write_element<1>(r)=vec_traits<A>::template read_element<1>(a);
+ vec_traits<R>::template write_element<2>(r)=vec_traits<A>::template read_element<2>(a);
+ vec_traits<R>::template write_element<3>(r)=vec_traits<A>::template read_element<3>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::convert_to;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct convert_to_v_defined;
+
+ template <>
+ struct
+ convert_to_v_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ vec_traits<A>::template read_element<0>(a)==vec_traits<B>::template read_element<0>(b) &&
+ vec_traits<A>::template read_element<1>(a)==vec_traits<B>::template read_element<1>(b) &&
+ vec_traits<A>::template read_element<2>(a)==vec_traits<B>::template read_element<2>(b) &&
+ vec_traits<A>::template read_element<3>(a)==vec_traits<B>::template read_element<3>(b);
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator==;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct eq_vv_defined;
+
+ template <>
+ struct
+ eq_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(vec_traits<A>::template read_element<0>(a)==vec_traits<B>::template read_element<0>(b)) ||
+ !(vec_traits<A>::template read_element<1>(a)==vec_traits<B>::template read_element<1>(b)) ||
+ !(vec_traits<A>::template read_element<2>(a)==vec_traits<B>::template read_element<2>(b)) ||
+ !(vec_traits<A>::template read_element<3>(a)==vec_traits<B>::template read_element<3>(b));
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator!=;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct neq_vv_defined;
+
+ template <>
+ struct
+ neq_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4,
+ deduce_vec<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=-vec_traits<A>::template read_element<0>(a);
+ vec_traits<R>::template write_element<1>(r)=-vec_traits<A>::template read_element<1>(a);
+ vec_traits<R>::template write_element<2>(r)=-vec_traits<A>::template read_element<2>(a);
+ vec_traits<R>::template write_element<3>(r)=-vec_traits<A>::template read_element<3>(a);
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::operator-;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct minus_v_defined;
+
+ template <>
+ struct
+ minus_v_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vec<A>::value && vec_traits<A>::dim==4,
+ typename vec_traits<A>::scalar_type>::type
+ mag( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const a3=vec_traits<A>::template read_element<3>(a);
+ T const m2=a0*a0+a1*a1+a2*a2+a3*a3;
+ T const mag=sqrt<T>(m2);
+ return mag;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::mag;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mag_v_defined;
+
+ template <>
+ struct
+ mag_v_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vec<A>::value && vec_traits<A>::dim==4,
+ typename vec_traits<A>::scalar_type>::type
+ mag_sqr( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const a3=vec_traits<A>::template read_element<3>(a);
+ T const m2=a0*a0+a1*a1+a2*a2+a3*a3;
+ return m2;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::mag_sqr;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct mag_sqr_v_defined;
+
+ template <>
+ struct
+ mag_sqr_v_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4,
+ deduce_vec<A> >::type
+ normalized( A const & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const a3=vec_traits<A>::template read_element<3>(a);
+ T const m2=a0*a0+a1*a1+a2*a2+a3*a3;
+ if( m2==scalar_traits<typename vec_traits<A>::scalar_type>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_magnitude_error());
+ T const rm=scalar_traits<T>::value(1)/sqrt<T>(m2);
+ typedef typename deduce_vec<A>::type R;
+ R r;
+ vec_traits<R>::template write_element<0>(r)=a0*rm;
+ vec_traits<R>::template write_element<1>(r)=a1*rm;
+ vec_traits<R>::template write_element<2>(r)=a2*rm;
+ vec_traits<R>::template write_element<3>(r)=a3*rm;
+ return r;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::normalized;
+ }
+
+ template <class A>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename enable_if_c<
+ vec_traits<A>::dim==4,
+ void>::type
+ normalize( A & a )
+ {
+ typedef typename vec_traits<A>::scalar_type T;
+ T const a0=vec_traits<A>::template read_element<0>(a);
+ T const a1=vec_traits<A>::template read_element<1>(a);
+ T const a2=vec_traits<A>::template read_element<2>(a);
+ T const a3=vec_traits<A>::template read_element<3>(a);
+ T const m2=a0*a0+a1*a1+a2*a2+a3*a3;
+ if( m2==scalar_traits<typename vec_traits<A>::scalar_type>::value(0) )
+ BOOST_QVM_THROW_EXCEPTION(zero_magnitude_error());
+ T const rm=scalar_traits<T>::value(1)/sqrt<T>(m2);
+ vec_traits<A>::template write_element<0>(a)*=rm;
+ vec_traits<A>::template write_element<1>(a)*=rm;
+ vec_traits<A>::template write_element<2>(a)*=rm;
+ vec_traits<A>::template write_element<3>(a)*=rm;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::normalize;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct normalize_v_defined;
+
+ template <>
+ struct
+ normalize_v_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_QVM_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vec_traits<A>::dim==4 && vec_traits<B>::dim==4,
+ deduce_scalar<typename vec_traits<A>::scalar_type,typename vec_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename vec_traits<A>::scalar_type Ta;
+ typedef typename vec_traits<B>::scalar_type Tb;
+ typedef typename deduce_scalar<Ta,Tb>::type Tr;
+ Ta const a0=vec_traits<A>::template read_element<0>(a);
+ Ta const a1=vec_traits<A>::template read_element<1>(a);
+ Ta const a2=vec_traits<A>::template read_element<2>(a);
+ Ta const a3=vec_traits<A>::template read_element<3>(a);
+ Tb const b0=vec_traits<B>::template read_element<0>(b);
+ Tb const b1=vec_traits<B>::template read_element<1>(b);
+ Tb const b2=vec_traits<B>::template read_element<2>(b);
+ Tb const b3=vec_traits<B>::template read_element<3>(b);
+ Tr const dot=a0*b0+a1*b1+a2*b2+a3*b3;
+ return dot;
+ }
+
+ namespace
+ sfinae
+ {
+ using ::boost::qvm::dot;
+ }
+
+ namespace
+ qvm_detail
+ {
+ template <int D>
+ struct dot_vv_defined;
+
+ template <>
+ struct
+ dot_vv_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+
+ }
+ }
+
+#endif