Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-07 09:58:08

0001 #ifndef BOOST_QVM_GEN_SWIZZLE3_HPP_INCLUDED
0002 #define BOOST_QVM_GEN_SWIZZLE3_HPP_INCLUDED
0003 
0004 // Copyright 2008-2024 Emil Dotchevski and Reverge Studios, Inc.
0005 // This file was generated by a program. Do not edit manually.
0006 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0007 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 
0009 #include <boost/qvm/config.hpp>
0010 #include <boost/qvm/detail/swizzle_traits.hpp>
0011 #include <boost/qvm/enable_if.hpp>
0012 
0013 namespace boost { namespace qvm {
0014 
0015 BOOST_QVM_INLINE_TRIVIAL
0016 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &
0017 _111()
0018     {
0019     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());
0020     }
0021 BOOST_QVM_INLINE_TRIVIAL
0022 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &
0023 _011()
0024     {
0025     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());
0026     }
0027 template <class V>
0028 BOOST_QVM_INLINE_TRIVIAL
0029 typename enable_if_c<
0030     is_vec<V>::value && vec_traits<V>::dim>=4,
0031     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0032 W11( V const & a )
0033     {
0034     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0035     }
0036 template <class V>
0037 BOOST_QVM_INLINE_TRIVIAL
0038 typename enable_if_c<
0039     is_vec<V>::value && vec_traits<V>::dim>=4,
0040     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0041 W11( V & a )
0042     {
0043     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0044     }
0045 template <class V>
0046 BOOST_QVM_INLINE_TRIVIAL
0047 typename enable_if_c<
0048     is_vec<V>::value && vec_traits<V>::dim>=3,
0049     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0050 Z11( V const & a )
0051     {
0052     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0053     }
0054 template <class V>
0055 BOOST_QVM_INLINE_TRIVIAL
0056 typename enable_if_c<
0057     is_vec<V>::value && vec_traits<V>::dim>=3,
0058     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0059 Z11( V & a )
0060     {
0061     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0062     }
0063 template <class V>
0064 BOOST_QVM_INLINE_TRIVIAL
0065 typename enable_if_c<
0066     is_vec<V>::value && vec_traits<V>::dim>=2,
0067     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0068 Y11( V const & a )
0069     {
0070     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0071     }
0072 template <class V>
0073 BOOST_QVM_INLINE_TRIVIAL
0074 typename enable_if_c<
0075     is_vec<V>::value && vec_traits<V>::dim>=2,
0076     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0077 Y11( V & a )
0078     {
0079     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0080     }
0081 template <class V>
0082 BOOST_QVM_INLINE_TRIVIAL
0083 typename enable_if_c<
0084     is_vec<V>::value && vec_traits<V>::dim>=1,
0085     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0086 X11( V const & a )
0087     {
0088     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0089     }
0090 template <class S>
0091 BOOST_QVM_INLINE_TRIVIAL
0092 typename enable_if_c<
0093     is_scalar<S>::value,
0094     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0095 X11( S const & a )
0096     {
0097     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0098     }
0099 template <class V>
0100 BOOST_QVM_INLINE_TRIVIAL
0101 typename enable_if_c<
0102     is_vec<V>::value && vec_traits<V>::dim>=1,
0103     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0104 X11( V & a )
0105     {
0106     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0107     }
0108 template <class S>
0109 BOOST_QVM_INLINE_TRIVIAL
0110 typename enable_if_c<
0111     is_scalar<S>::value,
0112     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0113 X11( S & a )
0114     {
0115     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0116     }
0117 BOOST_QVM_INLINE_TRIVIAL
0118 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &
0119 _101()
0120     {
0121     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());
0122     }
0123 BOOST_QVM_INLINE_TRIVIAL
0124 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &
0125 _001()
0126     {
0127     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());
0128     }
0129 template <class V>
0130 BOOST_QVM_INLINE_TRIVIAL
0131 typename enable_if_c<
0132     is_vec<V>::value && vec_traits<V>::dim>=4,
0133     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0134 W01( V const & a )
0135     {
0136     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0137     }
0138 template <class V>
0139 BOOST_QVM_INLINE_TRIVIAL
0140 typename enable_if_c<
0141     is_vec<V>::value && vec_traits<V>::dim>=4,
0142     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0143 W01( V & a )
0144     {
0145     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0146     }
0147 template <class V>
0148 BOOST_QVM_INLINE_TRIVIAL
0149 typename enable_if_c<
0150     is_vec<V>::value && vec_traits<V>::dim>=3,
0151     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0152 Z01( V const & a )
0153     {
0154     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0155     }
0156 template <class V>
0157 BOOST_QVM_INLINE_TRIVIAL
0158 typename enable_if_c<
0159     is_vec<V>::value && vec_traits<V>::dim>=3,
0160     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0161 Z01( V & a )
0162     {
0163     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0164     }
0165 template <class V>
0166 BOOST_QVM_INLINE_TRIVIAL
0167 typename enable_if_c<
0168     is_vec<V>::value && vec_traits<V>::dim>=2,
0169     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0170 Y01( V const & a )
0171     {
0172     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0173     }
0174 template <class V>
0175 BOOST_QVM_INLINE_TRIVIAL
0176 typename enable_if_c<
0177     is_vec<V>::value && vec_traits<V>::dim>=2,
0178     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0179 Y01( V & a )
0180     {
0181     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0182     }
0183 template <class V>
0184 BOOST_QVM_INLINE_TRIVIAL
0185 typename enable_if_c<
0186     is_vec<V>::value && vec_traits<V>::dim>=1,
0187     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0188 X01( V const & a )
0189     {
0190     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0191     }
0192 template <class S>
0193 BOOST_QVM_INLINE_TRIVIAL
0194 typename enable_if_c<
0195     is_scalar<S>::value,
0196     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0197 X01( S const & a )
0198     {
0199     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0200     }
0201 template <class V>
0202 BOOST_QVM_INLINE_TRIVIAL
0203 typename enable_if_c<
0204     is_vec<V>::value && vec_traits<V>::dim>=1,
0205     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0206 X01( V & a )
0207     {
0208     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0209     }
0210 template <class S>
0211 BOOST_QVM_INLINE_TRIVIAL
0212 typename enable_if_c<
0213     is_scalar<S>::value,
0214     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0215 X01( S & a )
0216     {
0217     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0218     }
0219 template <class V>
0220 BOOST_QVM_INLINE_TRIVIAL
0221 typename enable_if_c<
0222     is_vec<V>::value && vec_traits<V>::dim>=4,
0223     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0224 _1W1( V const & a )
0225     {
0226     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0227     }
0228 template <class V>
0229 BOOST_QVM_INLINE_TRIVIAL
0230 typename enable_if_c<
0231     is_vec<V>::value && vec_traits<V>::dim>=4,
0232     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
0233 _1W1( V & a )
0234     {
0235     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0236     }
0237 template <class V>
0238 BOOST_QVM_INLINE_TRIVIAL
0239 typename enable_if_c<
0240     is_vec<V>::value && vec_traits<V>::dim>=4,
0241     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0242 _0W1( V const & a )
0243     {
0244     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0245     }
0246 template <class V>
0247 BOOST_QVM_INLINE_TRIVIAL
0248 typename enable_if_c<
0249     is_vec<V>::value && vec_traits<V>::dim>=4,
0250     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
0251 _0W1( V & a )
0252     {
0253     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0254     }
0255 template <class V>
0256 BOOST_QVM_INLINE_TRIVIAL
0257 typename enable_if_c<
0258     is_vec<V>::value && vec_traits<V>::dim>=4,
0259     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0260 WW1( V const & a )
0261     {
0262     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0263     }
0264 template <class V>
0265 BOOST_QVM_INLINE_TRIVIAL
0266 typename enable_if_c<
0267     is_vec<V>::value && vec_traits<V>::dim>=4,
0268     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
0269 WW1( V & a )
0270     {
0271     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0272     }
0273 template <class V>
0274 BOOST_QVM_INLINE_TRIVIAL
0275 typename enable_if_c<
0276     is_vec<V>::value && vec_traits<V>::dim>=4,
0277     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0278 ZW1( V const & a )
0279     {
0280     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0281     }
0282 template <class V>
0283 BOOST_QVM_INLINE_TRIVIAL
0284 typename enable_if_c<
0285     is_vec<V>::value && vec_traits<V>::dim>=4,
0286     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
0287 ZW1( V & a )
0288     {
0289     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0290     }
0291 template <class V>
0292 BOOST_QVM_INLINE_TRIVIAL
0293 typename enable_if_c<
0294     is_vec<V>::value && vec_traits<V>::dim>=4,
0295     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0296 YW1( V const & a )
0297     {
0298     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0299     }
0300 template <class V>
0301 BOOST_QVM_INLINE_TRIVIAL
0302 typename enable_if_c<
0303     is_vec<V>::value && vec_traits<V>::dim>=4,
0304     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
0305 YW1( V & a )
0306     {
0307     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0308     }
0309 template <class V>
0310 BOOST_QVM_INLINE_TRIVIAL
0311 typename enable_if_c<
0312     is_vec<V>::value && vec_traits<V>::dim>=4,
0313     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0314 XW1( V const & a )
0315     {
0316     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0317     }
0318 template <class V>
0319 BOOST_QVM_INLINE_TRIVIAL
0320 typename enable_if_c<
0321     is_vec<V>::value && vec_traits<V>::dim>=4,
0322     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
0323 XW1( V & a )
0324     {
0325     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0326     }
0327 template <class V>
0328 BOOST_QVM_INLINE_TRIVIAL
0329 typename enable_if_c<
0330     is_vec<V>::value && vec_traits<V>::dim>=3,
0331     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0332 _1Z1( V const & a )
0333     {
0334     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0335     }
0336 template <class V>
0337 BOOST_QVM_INLINE_TRIVIAL
0338 typename enable_if_c<
0339     is_vec<V>::value && vec_traits<V>::dim>=3,
0340     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0341 _1Z1( V & a )
0342     {
0343     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0344     }
0345 template <class V>
0346 BOOST_QVM_INLINE_TRIVIAL
0347 typename enable_if_c<
0348     is_vec<V>::value && vec_traits<V>::dim>=3,
0349     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0350 _0Z1( V const & a )
0351     {
0352     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0353     }
0354 template <class V>
0355 BOOST_QVM_INLINE_TRIVIAL
0356 typename enable_if_c<
0357     is_vec<V>::value && vec_traits<V>::dim>=3,
0358     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0359 _0Z1( V & a )
0360     {
0361     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0362     }
0363 template <class V>
0364 BOOST_QVM_INLINE_TRIVIAL
0365 typename enable_if_c<
0366     is_vec<V>::value && vec_traits<V>::dim>=4,
0367     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0368 WZ1( V const & a )
0369     {
0370     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0371     }
0372 template <class V>
0373 BOOST_QVM_INLINE_TRIVIAL
0374 typename enable_if_c<
0375     is_vec<V>::value && vec_traits<V>::dim>=4,
0376     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0377 WZ1( V & a )
0378     {
0379     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0380     }
0381 template <class V>
0382 BOOST_QVM_INLINE_TRIVIAL
0383 typename enable_if_c<
0384     is_vec<V>::value && vec_traits<V>::dim>=3,
0385     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0386 ZZ1( V const & a )
0387     {
0388     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0389     }
0390 template <class V>
0391 BOOST_QVM_INLINE_TRIVIAL
0392 typename enable_if_c<
0393     is_vec<V>::value && vec_traits<V>::dim>=3,
0394     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0395 ZZ1( V & a )
0396     {
0397     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0398     }
0399 template <class V>
0400 BOOST_QVM_INLINE_TRIVIAL
0401 typename enable_if_c<
0402     is_vec<V>::value && vec_traits<V>::dim>=3,
0403     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0404 YZ1( V const & a )
0405     {
0406     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0407     }
0408 template <class V>
0409 BOOST_QVM_INLINE_TRIVIAL
0410 typename enable_if_c<
0411     is_vec<V>::value && vec_traits<V>::dim>=3,
0412     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0413 YZ1( V & a )
0414     {
0415     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0416     }
0417 template <class V>
0418 BOOST_QVM_INLINE_TRIVIAL
0419 typename enable_if_c<
0420     is_vec<V>::value && vec_traits<V>::dim>=3,
0421     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0422 XZ1( V const & a )
0423     {
0424     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0425     }
0426 template <class V>
0427 BOOST_QVM_INLINE_TRIVIAL
0428 typename enable_if_c<
0429     is_vec<V>::value && vec_traits<V>::dim>=3,
0430     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
0431 XZ1( V & a )
0432     {
0433     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0434     }
0435 template <class V>
0436 BOOST_QVM_INLINE_TRIVIAL
0437 typename enable_if_c<
0438     is_vec<V>::value && vec_traits<V>::dim>=2,
0439     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0440 _1Y1( V const & a )
0441     {
0442     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0443     }
0444 template <class V>
0445 BOOST_QVM_INLINE_TRIVIAL
0446 typename enable_if_c<
0447     is_vec<V>::value && vec_traits<V>::dim>=2,
0448     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0449 _1Y1( V & a )
0450     {
0451     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0452     }
0453 template <class V>
0454 BOOST_QVM_INLINE_TRIVIAL
0455 typename enable_if_c<
0456     is_vec<V>::value && vec_traits<V>::dim>=2,
0457     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0458 _0Y1( V const & a )
0459     {
0460     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0461     }
0462 template <class V>
0463 BOOST_QVM_INLINE_TRIVIAL
0464 typename enable_if_c<
0465     is_vec<V>::value && vec_traits<V>::dim>=2,
0466     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0467 _0Y1( V & a )
0468     {
0469     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0470     }
0471 template <class V>
0472 BOOST_QVM_INLINE_TRIVIAL
0473 typename enable_if_c<
0474     is_vec<V>::value && vec_traits<V>::dim>=4,
0475     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0476 WY1( V const & a )
0477     {
0478     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0479     }
0480 template <class V>
0481 BOOST_QVM_INLINE_TRIVIAL
0482 typename enable_if_c<
0483     is_vec<V>::value && vec_traits<V>::dim>=4,
0484     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0485 WY1( V & a )
0486     {
0487     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0488     }
0489 template <class V>
0490 BOOST_QVM_INLINE_TRIVIAL
0491 typename enable_if_c<
0492     is_vec<V>::value && vec_traits<V>::dim>=3,
0493     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0494 ZY1( V const & a )
0495     {
0496     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0497     }
0498 template <class V>
0499 BOOST_QVM_INLINE_TRIVIAL
0500 typename enable_if_c<
0501     is_vec<V>::value && vec_traits<V>::dim>=3,
0502     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0503 ZY1( V & a )
0504     {
0505     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0506     }
0507 template <class V>
0508 BOOST_QVM_INLINE_TRIVIAL
0509 typename enable_if_c<
0510     is_vec<V>::value && vec_traits<V>::dim>=2,
0511     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0512 YY1( V const & a )
0513     {
0514     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0515     }
0516 template <class V>
0517 BOOST_QVM_INLINE_TRIVIAL
0518 typename enable_if_c<
0519     is_vec<V>::value && vec_traits<V>::dim>=2,
0520     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0521 YY1( V & a )
0522     {
0523     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0524     }
0525 template <class V>
0526 BOOST_QVM_INLINE_TRIVIAL
0527 typename enable_if_c<
0528     is_vec<V>::value && vec_traits<V>::dim>=2,
0529     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0530 XY1( V const & a )
0531     {
0532     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0533     }
0534 template <class V>
0535 BOOST_QVM_INLINE_TRIVIAL
0536 typename enable_if_c<
0537     is_vec<V>::value && vec_traits<V>::dim>=2,
0538     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>::type
0539 XY1( V & a )
0540     {
0541     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0542     }
0543 template <class V>
0544 BOOST_QVM_INLINE_TRIVIAL
0545 typename enable_if_c<
0546     is_vec<V>::value && vec_traits<V>::dim>=1,
0547     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0548 _1X1( V const & a )
0549     {
0550     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0551     }
0552 template <class S>
0553 BOOST_QVM_INLINE_TRIVIAL
0554 typename enable_if_c<
0555     is_scalar<S>::value,
0556     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0557 _1X1( S const & a )
0558     {
0559     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0560     }
0561 template <class V>
0562 BOOST_QVM_INLINE_TRIVIAL
0563 typename enable_if_c<
0564     is_vec<V>::value && vec_traits<V>::dim>=1,
0565     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0566 _1X1( V & a )
0567     {
0568     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0569     }
0570 template <class S>
0571 BOOST_QVM_INLINE_TRIVIAL
0572 typename enable_if_c<
0573     is_scalar<S>::value,
0574     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0575 _1X1( S & a )
0576     {
0577     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0578     }
0579 template <class V>
0580 BOOST_QVM_INLINE_TRIVIAL
0581 typename enable_if_c<
0582     is_vec<V>::value && vec_traits<V>::dim>=1,
0583     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0584 _0X1( V const & a )
0585     {
0586     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0587     }
0588 template <class S>
0589 BOOST_QVM_INLINE_TRIVIAL
0590 typename enable_if_c<
0591     is_scalar<S>::value,
0592     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0593 _0X1( S const & a )
0594     {
0595     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0596     }
0597 template <class V>
0598 BOOST_QVM_INLINE_TRIVIAL
0599 typename enable_if_c<
0600     is_vec<V>::value && vec_traits<V>::dim>=1,
0601     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0602 _0X1( V & a )
0603     {
0604     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0605     }
0606 template <class S>
0607 BOOST_QVM_INLINE_TRIVIAL
0608 typename enable_if_c<
0609     is_scalar<S>::value,
0610     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0611 _0X1( S & a )
0612     {
0613     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0614     }
0615 template <class V>
0616 BOOST_QVM_INLINE_TRIVIAL
0617 typename enable_if_c<
0618     is_vec<V>::value && vec_traits<V>::dim>=4,
0619     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0620 WX1( V const & a )
0621     {
0622     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0623     }
0624 template <class V>
0625 BOOST_QVM_INLINE_TRIVIAL
0626 typename enable_if_c<
0627     is_vec<V>::value && vec_traits<V>::dim>=4,
0628     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0629 WX1( V & a )
0630     {
0631     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0632     }
0633 template <class V>
0634 BOOST_QVM_INLINE_TRIVIAL
0635 typename enable_if_c<
0636     is_vec<V>::value && vec_traits<V>::dim>=3,
0637     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0638 ZX1( V const & a )
0639     {
0640     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0641     }
0642 template <class V>
0643 BOOST_QVM_INLINE_TRIVIAL
0644 typename enable_if_c<
0645     is_vec<V>::value && vec_traits<V>::dim>=3,
0646     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0647 ZX1( V & a )
0648     {
0649     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0650     }
0651 template <class V>
0652 BOOST_QVM_INLINE_TRIVIAL
0653 typename enable_if_c<
0654     is_vec<V>::value && vec_traits<V>::dim>=2,
0655     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0656 YX1( V const & a )
0657     {
0658     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0659     }
0660 template <class V>
0661 BOOST_QVM_INLINE_TRIVIAL
0662 typename enable_if_c<
0663     is_vec<V>::value && vec_traits<V>::dim>=2,
0664     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0665 YX1( V & a )
0666     {
0667     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0668     }
0669 template <class V>
0670 BOOST_QVM_INLINE_TRIVIAL
0671 typename enable_if_c<
0672     is_vec<V>::value && vec_traits<V>::dim>=1,
0673     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0674 XX1( V const & a )
0675     {
0676     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0677     }
0678 template <class S>
0679 BOOST_QVM_INLINE_TRIVIAL
0680 typename enable_if_c<
0681     is_scalar<S>::value,
0682     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>::type
0683 XX1( S const & a )
0684     {
0685     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > const &>(a);
0686     }
0687 template <class V>
0688 BOOST_QVM_INLINE_TRIVIAL
0689 typename enable_if_c<
0690     is_vec<V>::value && vec_traits<V>::dim>=1,
0691     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0692 XX1( V & a )
0693     {
0694     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0695     }
0696 template <class S>
0697 BOOST_QVM_INLINE_TRIVIAL
0698 typename enable_if_c<
0699     is_scalar<S>::value,
0700     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>::type
0701 XX1( S & a )
0702     {
0703     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
0704     }
0705 BOOST_QVM_INLINE_TRIVIAL
0706 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &
0707 _110()
0708     {
0709     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());
0710     }
0711 BOOST_QVM_INLINE_TRIVIAL
0712 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &
0713 _010()
0714     {
0715     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());
0716     }
0717 template <class V>
0718 BOOST_QVM_INLINE_TRIVIAL
0719 typename enable_if_c<
0720     is_vec<V>::value && vec_traits<V>::dim>=4,
0721     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0722 W10( V const & a )
0723     {
0724     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0725     }
0726 template <class V>
0727 BOOST_QVM_INLINE_TRIVIAL
0728 typename enable_if_c<
0729     is_vec<V>::value && vec_traits<V>::dim>=4,
0730     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
0731 W10( V & a )
0732     {
0733     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0734     }
0735 template <class V>
0736 BOOST_QVM_INLINE_TRIVIAL
0737 typename enable_if_c<
0738     is_vec<V>::value && vec_traits<V>::dim>=3,
0739     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0740 Z10( V const & a )
0741     {
0742     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0743     }
0744 template <class V>
0745 BOOST_QVM_INLINE_TRIVIAL
0746 typename enable_if_c<
0747     is_vec<V>::value && vec_traits<V>::dim>=3,
0748     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
0749 Z10( V & a )
0750     {
0751     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0752     }
0753 template <class V>
0754 BOOST_QVM_INLINE_TRIVIAL
0755 typename enable_if_c<
0756     is_vec<V>::value && vec_traits<V>::dim>=2,
0757     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0758 Y10( V const & a )
0759     {
0760     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0761     }
0762 template <class V>
0763 BOOST_QVM_INLINE_TRIVIAL
0764 typename enable_if_c<
0765     is_vec<V>::value && vec_traits<V>::dim>=2,
0766     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
0767 Y10( V & a )
0768     {
0769     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0770     }
0771 template <class V>
0772 BOOST_QVM_INLINE_TRIVIAL
0773 typename enable_if_c<
0774     is_vec<V>::value && vec_traits<V>::dim>=1,
0775     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0776 X10( V const & a )
0777     {
0778     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0779     }
0780 template <class S>
0781 BOOST_QVM_INLINE_TRIVIAL
0782 typename enable_if_c<
0783     is_scalar<S>::value,
0784     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0785 X10( S const & a )
0786     {
0787     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0788     }
0789 template <class V>
0790 BOOST_QVM_INLINE_TRIVIAL
0791 typename enable_if_c<
0792     is_vec<V>::value && vec_traits<V>::dim>=1,
0793     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
0794 X10( V & a )
0795     {
0796     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0797     }
0798 template <class S>
0799 BOOST_QVM_INLINE_TRIVIAL
0800 typename enable_if_c<
0801     is_scalar<S>::value,
0802     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
0803 X10( S & a )
0804     {
0805     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0806     }
0807 BOOST_QVM_INLINE_TRIVIAL
0808 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &
0809 _100()
0810     {
0811     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());
0812     }
0813 BOOST_QVM_INLINE_TRIVIAL
0814 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &
0815 _000()
0816     {
0817     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());
0818     }
0819 template <class V>
0820 BOOST_QVM_INLINE_TRIVIAL
0821 typename enable_if_c<
0822     is_vec<V>::value && vec_traits<V>::dim>=4,
0823     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0824 W00( V const & a )
0825     {
0826     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0827     }
0828 template <class V>
0829 BOOST_QVM_INLINE_TRIVIAL
0830 typename enable_if_c<
0831     is_vec<V>::value && vec_traits<V>::dim>=4,
0832     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
0833 W00( V & a )
0834     {
0835     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0836     }
0837 template <class V>
0838 BOOST_QVM_INLINE_TRIVIAL
0839 typename enable_if_c<
0840     is_vec<V>::value && vec_traits<V>::dim>=3,
0841     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0842 Z00( V const & a )
0843     {
0844     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0845     }
0846 template <class V>
0847 BOOST_QVM_INLINE_TRIVIAL
0848 typename enable_if_c<
0849     is_vec<V>::value && vec_traits<V>::dim>=3,
0850     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
0851 Z00( V & a )
0852     {
0853     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0854     }
0855 template <class V>
0856 BOOST_QVM_INLINE_TRIVIAL
0857 typename enable_if_c<
0858     is_vec<V>::value && vec_traits<V>::dim>=2,
0859     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0860 Y00( V const & a )
0861     {
0862     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0863     }
0864 template <class V>
0865 BOOST_QVM_INLINE_TRIVIAL
0866 typename enable_if_c<
0867     is_vec<V>::value && vec_traits<V>::dim>=2,
0868     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
0869 Y00( V & a )
0870     {
0871     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0872     }
0873 template <class V>
0874 BOOST_QVM_INLINE_TRIVIAL
0875 typename enable_if_c<
0876     is_vec<V>::value && vec_traits<V>::dim>=1,
0877     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0878 X00( V const & a )
0879     {
0880     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0881     }
0882 template <class S>
0883 BOOST_QVM_INLINE_TRIVIAL
0884 typename enable_if_c<
0885     is_scalar<S>::value,
0886     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0887 X00( S const & a )
0888     {
0889     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0890     }
0891 template <class V>
0892 BOOST_QVM_INLINE_TRIVIAL
0893 typename enable_if_c<
0894     is_vec<V>::value && vec_traits<V>::dim>=1,
0895     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
0896 X00( V & a )
0897     {
0898     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0899     }
0900 template <class S>
0901 BOOST_QVM_INLINE_TRIVIAL
0902 typename enable_if_c<
0903     is_scalar<S>::value,
0904     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
0905 X00( S & a )
0906     {
0907     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0908     }
0909 template <class V>
0910 BOOST_QVM_INLINE_TRIVIAL
0911 typename enable_if_c<
0912     is_vec<V>::value && vec_traits<V>::dim>=4,
0913     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0914 _1W0( V const & a )
0915     {
0916     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0917     }
0918 template <class V>
0919 BOOST_QVM_INLINE_TRIVIAL
0920 typename enable_if_c<
0921     is_vec<V>::value && vec_traits<V>::dim>=4,
0922     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
0923 _1W0( V & a )
0924     {
0925     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0926     }
0927 template <class V>
0928 BOOST_QVM_INLINE_TRIVIAL
0929 typename enable_if_c<
0930     is_vec<V>::value && vec_traits<V>::dim>=4,
0931     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0932 _0W0( V const & a )
0933     {
0934     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0935     }
0936 template <class V>
0937 BOOST_QVM_INLINE_TRIVIAL
0938 typename enable_if_c<
0939     is_vec<V>::value && vec_traits<V>::dim>=4,
0940     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
0941 _0W0( V & a )
0942     {
0943     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0944     }
0945 template <class V>
0946 BOOST_QVM_INLINE_TRIVIAL
0947 typename enable_if_c<
0948     is_vec<V>::value && vec_traits<V>::dim>=4,
0949     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0950 WW0( V const & a )
0951     {
0952     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0953     }
0954 template <class V>
0955 BOOST_QVM_INLINE_TRIVIAL
0956 typename enable_if_c<
0957     is_vec<V>::value && vec_traits<V>::dim>=4,
0958     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
0959 WW0( V & a )
0960     {
0961     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0962     }
0963 template <class V>
0964 BOOST_QVM_INLINE_TRIVIAL
0965 typename enable_if_c<
0966     is_vec<V>::value && vec_traits<V>::dim>=4,
0967     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0968 ZW0( V const & a )
0969     {
0970     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0971     }
0972 template <class V>
0973 BOOST_QVM_INLINE_TRIVIAL
0974 typename enable_if_c<
0975     is_vec<V>::value && vec_traits<V>::dim>=4,
0976     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
0977 ZW0( V & a )
0978     {
0979     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0980     }
0981 template <class V>
0982 BOOST_QVM_INLINE_TRIVIAL
0983 typename enable_if_c<
0984     is_vec<V>::value && vec_traits<V>::dim>=4,
0985     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
0986 YW0( V const & a )
0987     {
0988     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
0989     }
0990 template <class V>
0991 BOOST_QVM_INLINE_TRIVIAL
0992 typename enable_if_c<
0993     is_vec<V>::value && vec_traits<V>::dim>=4,
0994     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
0995 YW0( V & a )
0996     {
0997     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
0998     }
0999 template <class V>
1000 BOOST_QVM_INLINE_TRIVIAL
1001 typename enable_if_c<
1002     is_vec<V>::value && vec_traits<V>::dim>=4,
1003     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1004 XW0( V const & a )
1005     {
1006     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1007     }
1008 template <class V>
1009 BOOST_QVM_INLINE_TRIVIAL
1010 typename enable_if_c<
1011     is_vec<V>::value && vec_traits<V>::dim>=4,
1012     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
1013 XW0( V & a )
1014     {
1015     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1016     }
1017 template <class V>
1018 BOOST_QVM_INLINE_TRIVIAL
1019 typename enable_if_c<
1020     is_vec<V>::value && vec_traits<V>::dim>=3,
1021     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1022 _1Z0( V const & a )
1023     {
1024     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1025     }
1026 template <class V>
1027 BOOST_QVM_INLINE_TRIVIAL
1028 typename enable_if_c<
1029     is_vec<V>::value && vec_traits<V>::dim>=3,
1030     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1031 _1Z0( V & a )
1032     {
1033     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1034     }
1035 template <class V>
1036 BOOST_QVM_INLINE_TRIVIAL
1037 typename enable_if_c<
1038     is_vec<V>::value && vec_traits<V>::dim>=3,
1039     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1040 _0Z0( V const & a )
1041     {
1042     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1043     }
1044 template <class V>
1045 BOOST_QVM_INLINE_TRIVIAL
1046 typename enable_if_c<
1047     is_vec<V>::value && vec_traits<V>::dim>=3,
1048     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1049 _0Z0( V & a )
1050     {
1051     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1052     }
1053 template <class V>
1054 BOOST_QVM_INLINE_TRIVIAL
1055 typename enable_if_c<
1056     is_vec<V>::value && vec_traits<V>::dim>=4,
1057     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1058 WZ0( V const & a )
1059     {
1060     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1061     }
1062 template <class V>
1063 BOOST_QVM_INLINE_TRIVIAL
1064 typename enable_if_c<
1065     is_vec<V>::value && vec_traits<V>::dim>=4,
1066     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1067 WZ0( V & a )
1068     {
1069     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1070     }
1071 template <class V>
1072 BOOST_QVM_INLINE_TRIVIAL
1073 typename enable_if_c<
1074     is_vec<V>::value && vec_traits<V>::dim>=3,
1075     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1076 ZZ0( V const & a )
1077     {
1078     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1079     }
1080 template <class V>
1081 BOOST_QVM_INLINE_TRIVIAL
1082 typename enable_if_c<
1083     is_vec<V>::value && vec_traits<V>::dim>=3,
1084     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1085 ZZ0( V & a )
1086     {
1087     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1088     }
1089 template <class V>
1090 BOOST_QVM_INLINE_TRIVIAL
1091 typename enable_if_c<
1092     is_vec<V>::value && vec_traits<V>::dim>=3,
1093     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1094 YZ0( V const & a )
1095     {
1096     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1097     }
1098 template <class V>
1099 BOOST_QVM_INLINE_TRIVIAL
1100 typename enable_if_c<
1101     is_vec<V>::value && vec_traits<V>::dim>=3,
1102     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1103 YZ0( V & a )
1104     {
1105     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1106     }
1107 template <class V>
1108 BOOST_QVM_INLINE_TRIVIAL
1109 typename enable_if_c<
1110     is_vec<V>::value && vec_traits<V>::dim>=3,
1111     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1112 XZ0( V const & a )
1113     {
1114     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1115     }
1116 template <class V>
1117 BOOST_QVM_INLINE_TRIVIAL
1118 typename enable_if_c<
1119     is_vec<V>::value && vec_traits<V>::dim>=3,
1120     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1121 XZ0( V & a )
1122     {
1123     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1124     }
1125 template <class V>
1126 BOOST_QVM_INLINE_TRIVIAL
1127 typename enable_if_c<
1128     is_vec<V>::value && vec_traits<V>::dim>=2,
1129     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1130 _1Y0( V const & a )
1131     {
1132     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1133     }
1134 template <class V>
1135 BOOST_QVM_INLINE_TRIVIAL
1136 typename enable_if_c<
1137     is_vec<V>::value && vec_traits<V>::dim>=2,
1138     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1139 _1Y0( V & a )
1140     {
1141     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1142     }
1143 template <class V>
1144 BOOST_QVM_INLINE_TRIVIAL
1145 typename enable_if_c<
1146     is_vec<V>::value && vec_traits<V>::dim>=2,
1147     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1148 _0Y0( V const & a )
1149     {
1150     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1151     }
1152 template <class V>
1153 BOOST_QVM_INLINE_TRIVIAL
1154 typename enable_if_c<
1155     is_vec<V>::value && vec_traits<V>::dim>=2,
1156     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1157 _0Y0( V & a )
1158     {
1159     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1160     }
1161 template <class V>
1162 BOOST_QVM_INLINE_TRIVIAL
1163 typename enable_if_c<
1164     is_vec<V>::value && vec_traits<V>::dim>=4,
1165     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1166 WY0( V const & a )
1167     {
1168     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1169     }
1170 template <class V>
1171 BOOST_QVM_INLINE_TRIVIAL
1172 typename enable_if_c<
1173     is_vec<V>::value && vec_traits<V>::dim>=4,
1174     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1175 WY0( V & a )
1176     {
1177     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1178     }
1179 template <class V>
1180 BOOST_QVM_INLINE_TRIVIAL
1181 typename enable_if_c<
1182     is_vec<V>::value && vec_traits<V>::dim>=3,
1183     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1184 ZY0( V const & a )
1185     {
1186     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1187     }
1188 template <class V>
1189 BOOST_QVM_INLINE_TRIVIAL
1190 typename enable_if_c<
1191     is_vec<V>::value && vec_traits<V>::dim>=3,
1192     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1193 ZY0( V & a )
1194     {
1195     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1196     }
1197 template <class V>
1198 BOOST_QVM_INLINE_TRIVIAL
1199 typename enable_if_c<
1200     is_vec<V>::value && vec_traits<V>::dim>=2,
1201     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1202 YY0( V const & a )
1203     {
1204     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1205     }
1206 template <class V>
1207 BOOST_QVM_INLINE_TRIVIAL
1208 typename enable_if_c<
1209     is_vec<V>::value && vec_traits<V>::dim>=2,
1210     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1211 YY0( V & a )
1212     {
1213     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1214     }
1215 template <class V>
1216 BOOST_QVM_INLINE_TRIVIAL
1217 typename enable_if_c<
1218     is_vec<V>::value && vec_traits<V>::dim>=2,
1219     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1220 XY0( V const & a )
1221     {
1222     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1223     }
1224 template <class V>
1225 BOOST_QVM_INLINE_TRIVIAL
1226 typename enable_if_c<
1227     is_vec<V>::value && vec_traits<V>::dim>=2,
1228     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1229 XY0( V & a )
1230     {
1231     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1232     }
1233 template <class V>
1234 BOOST_QVM_INLINE_TRIVIAL
1235 typename enable_if_c<
1236     is_vec<V>::value && vec_traits<V>::dim>=1,
1237     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1238 _1X0( V const & a )
1239     {
1240     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1241     }
1242 template <class S>
1243 BOOST_QVM_INLINE_TRIVIAL
1244 typename enable_if_c<
1245     is_scalar<S>::value,
1246     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1247 _1X0( S const & a )
1248     {
1249     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1250     }
1251 template <class V>
1252 BOOST_QVM_INLINE_TRIVIAL
1253 typename enable_if_c<
1254     is_vec<V>::value && vec_traits<V>::dim>=1,
1255     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1256 _1X0( V & a )
1257     {
1258     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1259     }
1260 template <class S>
1261 BOOST_QVM_INLINE_TRIVIAL
1262 typename enable_if_c<
1263     is_scalar<S>::value,
1264     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1265 _1X0( S & a )
1266     {
1267     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1268     }
1269 template <class V>
1270 BOOST_QVM_INLINE_TRIVIAL
1271 typename enable_if_c<
1272     is_vec<V>::value && vec_traits<V>::dim>=1,
1273     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1274 _0X0( V const & a )
1275     {
1276     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1277     }
1278 template <class S>
1279 BOOST_QVM_INLINE_TRIVIAL
1280 typename enable_if_c<
1281     is_scalar<S>::value,
1282     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1283 _0X0( S const & a )
1284     {
1285     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1286     }
1287 template <class V>
1288 BOOST_QVM_INLINE_TRIVIAL
1289 typename enable_if_c<
1290     is_vec<V>::value && vec_traits<V>::dim>=1,
1291     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1292 _0X0( V & a )
1293     {
1294     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1295     }
1296 template <class S>
1297 BOOST_QVM_INLINE_TRIVIAL
1298 typename enable_if_c<
1299     is_scalar<S>::value,
1300     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1301 _0X0( S & a )
1302     {
1303     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1304     }
1305 template <class V>
1306 BOOST_QVM_INLINE_TRIVIAL
1307 typename enable_if_c<
1308     is_vec<V>::value && vec_traits<V>::dim>=4,
1309     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1310 WX0( V const & a )
1311     {
1312     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1313     }
1314 template <class V>
1315 BOOST_QVM_INLINE_TRIVIAL
1316 typename enable_if_c<
1317     is_vec<V>::value && vec_traits<V>::dim>=4,
1318     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1319 WX0( V & a )
1320     {
1321     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1322     }
1323 template <class V>
1324 BOOST_QVM_INLINE_TRIVIAL
1325 typename enable_if_c<
1326     is_vec<V>::value && vec_traits<V>::dim>=3,
1327     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1328 ZX0( V const & a )
1329     {
1330     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1331     }
1332 template <class V>
1333 BOOST_QVM_INLINE_TRIVIAL
1334 typename enable_if_c<
1335     is_vec<V>::value && vec_traits<V>::dim>=3,
1336     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1337 ZX0( V & a )
1338     {
1339     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1340     }
1341 template <class V>
1342 BOOST_QVM_INLINE_TRIVIAL
1343 typename enable_if_c<
1344     is_vec<V>::value && vec_traits<V>::dim>=2,
1345     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1346 YX0( V const & a )
1347     {
1348     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1349     }
1350 template <class V>
1351 BOOST_QVM_INLINE_TRIVIAL
1352 typename enable_if_c<
1353     is_vec<V>::value && vec_traits<V>::dim>=2,
1354     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1355 YX0( V & a )
1356     {
1357     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1358     }
1359 template <class V>
1360 BOOST_QVM_INLINE_TRIVIAL
1361 typename enable_if_c<
1362     is_vec<V>::value && vec_traits<V>::dim>=1,
1363     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1364 XX0( V const & a )
1365     {
1366     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1367     }
1368 template <class S>
1369 BOOST_QVM_INLINE_TRIVIAL
1370 typename enable_if_c<
1371     is_scalar<S>::value,
1372     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1373 XX0( S const & a )
1374     {
1375     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1376     }
1377 template <class V>
1378 BOOST_QVM_INLINE_TRIVIAL
1379 typename enable_if_c<
1380     is_vec<V>::value && vec_traits<V>::dim>=1,
1381     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1382 XX0( V & a )
1383     {
1384     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1385     }
1386 template <class S>
1387 BOOST_QVM_INLINE_TRIVIAL
1388 typename enable_if_c<
1389     is_scalar<S>::value,
1390     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1391 XX0( S & a )
1392     {
1393     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1394     }
1395 template <class V>
1396 BOOST_QVM_INLINE_TRIVIAL
1397 typename enable_if_c<
1398     is_vec<V>::value && vec_traits<V>::dim>=4,
1399     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1400 _11W( V const & a )
1401     {
1402     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1403     }
1404 template <class V>
1405 BOOST_QVM_INLINE_TRIVIAL
1406 typename enable_if_c<
1407     is_vec<V>::value && vec_traits<V>::dim>=4,
1408     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1409 _11W( V & a )
1410     {
1411     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1412     }
1413 template <class V>
1414 BOOST_QVM_INLINE_TRIVIAL
1415 typename enable_if_c<
1416     is_vec<V>::value && vec_traits<V>::dim>=4,
1417     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1418 _01W( V const & a )
1419     {
1420     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1421     }
1422 template <class V>
1423 BOOST_QVM_INLINE_TRIVIAL
1424 typename enable_if_c<
1425     is_vec<V>::value && vec_traits<V>::dim>=4,
1426     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1427 _01W( V & a )
1428     {
1429     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1430     }
1431 template <class V>
1432 BOOST_QVM_INLINE_TRIVIAL
1433 typename enable_if_c<
1434     is_vec<V>::value && vec_traits<V>::dim>=4,
1435     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1436 W1W( V const & a )
1437     {
1438     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1439     }
1440 template <class V>
1441 BOOST_QVM_INLINE_TRIVIAL
1442 typename enable_if_c<
1443     is_vec<V>::value && vec_traits<V>::dim>=4,
1444     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1445 W1W( V & a )
1446     {
1447     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1448     }
1449 template <class V>
1450 BOOST_QVM_INLINE_TRIVIAL
1451 typename enable_if_c<
1452     is_vec<V>::value && vec_traits<V>::dim>=4,
1453     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1454 Z1W( V const & a )
1455     {
1456     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1457     }
1458 template <class V>
1459 BOOST_QVM_INLINE_TRIVIAL
1460 typename enable_if_c<
1461     is_vec<V>::value && vec_traits<V>::dim>=4,
1462     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1463 Z1W( V & a )
1464     {
1465     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1466     }
1467 template <class V>
1468 BOOST_QVM_INLINE_TRIVIAL
1469 typename enable_if_c<
1470     is_vec<V>::value && vec_traits<V>::dim>=4,
1471     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1472 Y1W( V const & a )
1473     {
1474     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1475     }
1476 template <class V>
1477 BOOST_QVM_INLINE_TRIVIAL
1478 typename enable_if_c<
1479     is_vec<V>::value && vec_traits<V>::dim>=4,
1480     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1481 Y1W( V & a )
1482     {
1483     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1484     }
1485 template <class V>
1486 BOOST_QVM_INLINE_TRIVIAL
1487 typename enable_if_c<
1488     is_vec<V>::value && vec_traits<V>::dim>=4,
1489     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1490 X1W( V const & a )
1491     {
1492     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1493     }
1494 template <class V>
1495 BOOST_QVM_INLINE_TRIVIAL
1496 typename enable_if_c<
1497     is_vec<V>::value && vec_traits<V>::dim>=4,
1498     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1499 X1W( V & a )
1500     {
1501     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1502     }
1503 template <class V>
1504 BOOST_QVM_INLINE_TRIVIAL
1505 typename enable_if_c<
1506     is_vec<V>::value && vec_traits<V>::dim>=4,
1507     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1508 _10W( V const & a )
1509     {
1510     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1511     }
1512 template <class V>
1513 BOOST_QVM_INLINE_TRIVIAL
1514 typename enable_if_c<
1515     is_vec<V>::value && vec_traits<V>::dim>=4,
1516     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1517 _10W( V & a )
1518     {
1519     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1520     }
1521 template <class V>
1522 BOOST_QVM_INLINE_TRIVIAL
1523 typename enable_if_c<
1524     is_vec<V>::value && vec_traits<V>::dim>=4,
1525     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1526 _00W( V const & a )
1527     {
1528     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1529     }
1530 template <class V>
1531 BOOST_QVM_INLINE_TRIVIAL
1532 typename enable_if_c<
1533     is_vec<V>::value && vec_traits<V>::dim>=4,
1534     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1535 _00W( V & a )
1536     {
1537     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1538     }
1539 template <class V>
1540 BOOST_QVM_INLINE_TRIVIAL
1541 typename enable_if_c<
1542     is_vec<V>::value && vec_traits<V>::dim>=4,
1543     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1544 W0W( V const & a )
1545     {
1546     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1547     }
1548 template <class V>
1549 BOOST_QVM_INLINE_TRIVIAL
1550 typename enable_if_c<
1551     is_vec<V>::value && vec_traits<V>::dim>=4,
1552     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1553 W0W( V & a )
1554     {
1555     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1556     }
1557 template <class V>
1558 BOOST_QVM_INLINE_TRIVIAL
1559 typename enable_if_c<
1560     is_vec<V>::value && vec_traits<V>::dim>=4,
1561     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1562 Z0W( V const & a )
1563     {
1564     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1565     }
1566 template <class V>
1567 BOOST_QVM_INLINE_TRIVIAL
1568 typename enable_if_c<
1569     is_vec<V>::value && vec_traits<V>::dim>=4,
1570     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1571 Z0W( V & a )
1572     {
1573     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1574     }
1575 template <class V>
1576 BOOST_QVM_INLINE_TRIVIAL
1577 typename enable_if_c<
1578     is_vec<V>::value && vec_traits<V>::dim>=4,
1579     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1580 Y0W( V const & a )
1581     {
1582     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1583     }
1584 template <class V>
1585 BOOST_QVM_INLINE_TRIVIAL
1586 typename enable_if_c<
1587     is_vec<V>::value && vec_traits<V>::dim>=4,
1588     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1589 Y0W( V & a )
1590     {
1591     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1592     }
1593 template <class V>
1594 BOOST_QVM_INLINE_TRIVIAL
1595 typename enable_if_c<
1596     is_vec<V>::value && vec_traits<V>::dim>=4,
1597     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1598 X0W( V const & a )
1599     {
1600     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1601     }
1602 template <class V>
1603 BOOST_QVM_INLINE_TRIVIAL
1604 typename enable_if_c<
1605     is_vec<V>::value && vec_traits<V>::dim>=4,
1606     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1607 X0W( V & a )
1608     {
1609     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1610     }
1611 template <class V>
1612 BOOST_QVM_INLINE_TRIVIAL
1613 typename enable_if_c<
1614     is_vec<V>::value && vec_traits<V>::dim>=4,
1615     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1616 _1WW( V const & a )
1617     {
1618     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1619     }
1620 template <class V>
1621 BOOST_QVM_INLINE_TRIVIAL
1622 typename enable_if_c<
1623     is_vec<V>::value && vec_traits<V>::dim>=4,
1624     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1625 _1WW( V & a )
1626     {
1627     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1628     }
1629 template <class V>
1630 BOOST_QVM_INLINE_TRIVIAL
1631 typename enable_if_c<
1632     is_vec<V>::value && vec_traits<V>::dim>=4,
1633     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1634 _0WW( V const & a )
1635     {
1636     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1637     }
1638 template <class V>
1639 BOOST_QVM_INLINE_TRIVIAL
1640 typename enable_if_c<
1641     is_vec<V>::value && vec_traits<V>::dim>=4,
1642     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1643 _0WW( V & a )
1644     {
1645     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1646     }
1647 template <class V>
1648 BOOST_QVM_INLINE_TRIVIAL
1649 typename enable_if_c<
1650     is_vec<V>::value && vec_traits<V>::dim>=4,
1651     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1652 WWW( V const & a )
1653     {
1654     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1655     }
1656 template <class V>
1657 BOOST_QVM_INLINE_TRIVIAL
1658 typename enable_if_c<
1659     is_vec<V>::value && vec_traits<V>::dim>=4,
1660     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1661 WWW( V & a )
1662     {
1663     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1664     }
1665 template <class V>
1666 BOOST_QVM_INLINE_TRIVIAL
1667 typename enable_if_c<
1668     is_vec<V>::value && vec_traits<V>::dim>=4,
1669     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1670 ZWW( V const & a )
1671     {
1672     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1673     }
1674 template <class V>
1675 BOOST_QVM_INLINE_TRIVIAL
1676 typename enable_if_c<
1677     is_vec<V>::value && vec_traits<V>::dim>=4,
1678     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1679 ZWW( V & a )
1680     {
1681     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1682     }
1683 template <class V>
1684 BOOST_QVM_INLINE_TRIVIAL
1685 typename enable_if_c<
1686     is_vec<V>::value && vec_traits<V>::dim>=4,
1687     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1688 YWW( V const & a )
1689     {
1690     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1691     }
1692 template <class V>
1693 BOOST_QVM_INLINE_TRIVIAL
1694 typename enable_if_c<
1695     is_vec<V>::value && vec_traits<V>::dim>=4,
1696     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1697 YWW( V & a )
1698     {
1699     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1700     }
1701 template <class V>
1702 BOOST_QVM_INLINE_TRIVIAL
1703 typename enable_if_c<
1704     is_vec<V>::value && vec_traits<V>::dim>=4,
1705     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1706 XWW( V const & a )
1707     {
1708     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1709     }
1710 template <class V>
1711 BOOST_QVM_INLINE_TRIVIAL
1712 typename enable_if_c<
1713     is_vec<V>::value && vec_traits<V>::dim>=4,
1714     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1715 XWW( V & a )
1716     {
1717     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1718     }
1719 template <class V>
1720 BOOST_QVM_INLINE_TRIVIAL
1721 typename enable_if_c<
1722     is_vec<V>::value && vec_traits<V>::dim>=4,
1723     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1724 _1ZW( V const & a )
1725     {
1726     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1727     }
1728 template <class V>
1729 BOOST_QVM_INLINE_TRIVIAL
1730 typename enable_if_c<
1731     is_vec<V>::value && vec_traits<V>::dim>=4,
1732     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1733 _1ZW( V & a )
1734     {
1735     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1736     }
1737 template <class V>
1738 BOOST_QVM_INLINE_TRIVIAL
1739 typename enable_if_c<
1740     is_vec<V>::value && vec_traits<V>::dim>=4,
1741     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1742 _0ZW( V const & a )
1743     {
1744     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1745     }
1746 template <class V>
1747 BOOST_QVM_INLINE_TRIVIAL
1748 typename enable_if_c<
1749     is_vec<V>::value && vec_traits<V>::dim>=4,
1750     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1751 _0ZW( V & a )
1752     {
1753     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1754     }
1755 template <class V>
1756 BOOST_QVM_INLINE_TRIVIAL
1757 typename enable_if_c<
1758     is_vec<V>::value && vec_traits<V>::dim>=4,
1759     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1760 WZW( V const & a )
1761     {
1762     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1763     }
1764 template <class V>
1765 BOOST_QVM_INLINE_TRIVIAL
1766 typename enable_if_c<
1767     is_vec<V>::value && vec_traits<V>::dim>=4,
1768     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1769 WZW( V & a )
1770     {
1771     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1772     }
1773 template <class V>
1774 BOOST_QVM_INLINE_TRIVIAL
1775 typename enable_if_c<
1776     is_vec<V>::value && vec_traits<V>::dim>=4,
1777     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1778 ZZW( V const & a )
1779     {
1780     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1781     }
1782 template <class V>
1783 BOOST_QVM_INLINE_TRIVIAL
1784 typename enable_if_c<
1785     is_vec<V>::value && vec_traits<V>::dim>=4,
1786     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1787 ZZW( V & a )
1788     {
1789     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1790     }
1791 template <class V>
1792 BOOST_QVM_INLINE_TRIVIAL
1793 typename enable_if_c<
1794     is_vec<V>::value && vec_traits<V>::dim>=4,
1795     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1796 YZW( V const & a )
1797     {
1798     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1799     }
1800 template <class V>
1801 BOOST_QVM_INLINE_TRIVIAL
1802 typename enable_if_c<
1803     is_vec<V>::value && vec_traits<V>::dim>=4,
1804     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1805 YZW( V & a )
1806     {
1807     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1808     }
1809 template <class V>
1810 BOOST_QVM_INLINE_TRIVIAL
1811 typename enable_if_c<
1812     is_vec<V>::value && vec_traits<V>::dim>=4,
1813     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1814 XZW( V const & a )
1815     {
1816     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1817     }
1818 template <class V>
1819 BOOST_QVM_INLINE_TRIVIAL
1820 typename enable_if_c<
1821     is_vec<V>::value && vec_traits<V>::dim>=4,
1822     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1823 XZW( V & a )
1824     {
1825     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1826     }
1827 template <class V>
1828 BOOST_QVM_INLINE_TRIVIAL
1829 typename enable_if_c<
1830     is_vec<V>::value && vec_traits<V>::dim>=4,
1831     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1832 _1YW( V const & a )
1833     {
1834     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1835     }
1836 template <class V>
1837 BOOST_QVM_INLINE_TRIVIAL
1838 typename enable_if_c<
1839     is_vec<V>::value && vec_traits<V>::dim>=4,
1840     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1841 _1YW( V & a )
1842     {
1843     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1844     }
1845 template <class V>
1846 BOOST_QVM_INLINE_TRIVIAL
1847 typename enable_if_c<
1848     is_vec<V>::value && vec_traits<V>::dim>=4,
1849     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1850 _0YW( V const & a )
1851     {
1852     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1853     }
1854 template <class V>
1855 BOOST_QVM_INLINE_TRIVIAL
1856 typename enable_if_c<
1857     is_vec<V>::value && vec_traits<V>::dim>=4,
1858     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1859 _0YW( V & a )
1860     {
1861     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1862     }
1863 template <class V>
1864 BOOST_QVM_INLINE_TRIVIAL
1865 typename enable_if_c<
1866     is_vec<V>::value && vec_traits<V>::dim>=4,
1867     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1868 WYW( V const & a )
1869     {
1870     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1871     }
1872 template <class V>
1873 BOOST_QVM_INLINE_TRIVIAL
1874 typename enable_if_c<
1875     is_vec<V>::value && vec_traits<V>::dim>=4,
1876     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1877 WYW( V & a )
1878     {
1879     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1880     }
1881 template <class V>
1882 BOOST_QVM_INLINE_TRIVIAL
1883 typename enable_if_c<
1884     is_vec<V>::value && vec_traits<V>::dim>=4,
1885     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1886 ZYW( V const & a )
1887     {
1888     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1889     }
1890 template <class V>
1891 BOOST_QVM_INLINE_TRIVIAL
1892 typename enable_if_c<
1893     is_vec<V>::value && vec_traits<V>::dim>=4,
1894     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1895 ZYW( V & a )
1896     {
1897     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1898     }
1899 template <class V>
1900 BOOST_QVM_INLINE_TRIVIAL
1901 typename enable_if_c<
1902     is_vec<V>::value && vec_traits<V>::dim>=4,
1903     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1904 YYW( V const & a )
1905     {
1906     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1907     }
1908 template <class V>
1909 BOOST_QVM_INLINE_TRIVIAL
1910 typename enable_if_c<
1911     is_vec<V>::value && vec_traits<V>::dim>=4,
1912     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1913 YYW( V & a )
1914     {
1915     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1916     }
1917 template <class V>
1918 BOOST_QVM_INLINE_TRIVIAL
1919 typename enable_if_c<
1920     is_vec<V>::value && vec_traits<V>::dim>=4,
1921     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1922 XYW( V const & a )
1923     {
1924     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1925     }
1926 template <class V>
1927 BOOST_QVM_INLINE_TRIVIAL
1928 typename enable_if_c<
1929     is_vec<V>::value && vec_traits<V>::dim>=4,
1930     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1931 XYW( V & a )
1932     {
1933     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1934     }
1935 template <class V>
1936 BOOST_QVM_INLINE_TRIVIAL
1937 typename enable_if_c<
1938     is_vec<V>::value && vec_traits<V>::dim>=4,
1939     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1940 _1XW( V const & a )
1941     {
1942     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1943     }
1944 template <class V>
1945 BOOST_QVM_INLINE_TRIVIAL
1946 typename enable_if_c<
1947     is_vec<V>::value && vec_traits<V>::dim>=4,
1948     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
1949 _1XW( V & a )
1950     {
1951     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
1952     }
1953 template <class V>
1954 BOOST_QVM_INLINE_TRIVIAL
1955 typename enable_if_c<
1956     is_vec<V>::value && vec_traits<V>::dim>=4,
1957     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1958 _0XW( V const & a )
1959     {
1960     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1961     }
1962 template <class V>
1963 BOOST_QVM_INLINE_TRIVIAL
1964 typename enable_if_c<
1965     is_vec<V>::value && vec_traits<V>::dim>=4,
1966     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
1967 _0XW( V & a )
1968     {
1969     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
1970     }
1971 template <class V>
1972 BOOST_QVM_INLINE_TRIVIAL
1973 typename enable_if_c<
1974     is_vec<V>::value && vec_traits<V>::dim>=4,
1975     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1976 WXW( V const & a )
1977     {
1978     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1979     }
1980 template <class V>
1981 BOOST_QVM_INLINE_TRIVIAL
1982 typename enable_if_c<
1983     is_vec<V>::value && vec_traits<V>::dim>=4,
1984     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
1985 WXW( V & a )
1986     {
1987     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
1988     }
1989 template <class V>
1990 BOOST_QVM_INLINE_TRIVIAL
1991 typename enable_if_c<
1992     is_vec<V>::value && vec_traits<V>::dim>=4,
1993     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1994 ZXW( V const & a )
1995     {
1996     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1997     }
1998 template <class V>
1999 BOOST_QVM_INLINE_TRIVIAL
2000 typename enable_if_c<
2001     is_vec<V>::value && vec_traits<V>::dim>=4,
2002     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
2003 ZXW( V & a )
2004     {
2005     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
2006     }
2007 template <class V>
2008 BOOST_QVM_INLINE_TRIVIAL
2009 typename enable_if_c<
2010     is_vec<V>::value && vec_traits<V>::dim>=4,
2011     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
2012 YXW( V const & a )
2013     {
2014     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
2015     }
2016 template <class V>
2017 BOOST_QVM_INLINE_TRIVIAL
2018 typename enable_if_c<
2019     is_vec<V>::value && vec_traits<V>::dim>=4,
2020     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
2021 YXW( V & a )
2022     {
2023     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
2024     }
2025 template <class V>
2026 BOOST_QVM_INLINE_TRIVIAL
2027 typename enable_if_c<
2028     is_vec<V>::value && vec_traits<V>::dim>=4,
2029     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
2030 XXW( V const & a )
2031     {
2032     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
2033     }
2034 template <class V>
2035 BOOST_QVM_INLINE_TRIVIAL
2036 typename enable_if_c<
2037     is_vec<V>::value && vec_traits<V>::dim>=4,
2038     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
2039 XXW( V & a )
2040     {
2041     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
2042     }
2043 template <class V>
2044 BOOST_QVM_INLINE_TRIVIAL
2045 typename enable_if_c<
2046     is_vec<V>::value && vec_traits<V>::dim>=3,
2047     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2048 _11Z( V const & a )
2049     {
2050     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2051     }
2052 template <class V>
2053 BOOST_QVM_INLINE_TRIVIAL
2054 typename enable_if_c<
2055     is_vec<V>::value && vec_traits<V>::dim>=3,
2056     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2057 _11Z( V & a )
2058     {
2059     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2060     }
2061 template <class V>
2062 BOOST_QVM_INLINE_TRIVIAL
2063 typename enable_if_c<
2064     is_vec<V>::value && vec_traits<V>::dim>=3,
2065     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2066 _01Z( V const & a )
2067     {
2068     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2069     }
2070 template <class V>
2071 BOOST_QVM_INLINE_TRIVIAL
2072 typename enable_if_c<
2073     is_vec<V>::value && vec_traits<V>::dim>=3,
2074     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2075 _01Z( V & a )
2076     {
2077     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2078     }
2079 template <class V>
2080 BOOST_QVM_INLINE_TRIVIAL
2081 typename enable_if_c<
2082     is_vec<V>::value && vec_traits<V>::dim>=4,
2083     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2084 W1Z( V const & a )
2085     {
2086     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2087     }
2088 template <class V>
2089 BOOST_QVM_INLINE_TRIVIAL
2090 typename enable_if_c<
2091     is_vec<V>::value && vec_traits<V>::dim>=4,
2092     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2093 W1Z( V & a )
2094     {
2095     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2096     }
2097 template <class V>
2098 BOOST_QVM_INLINE_TRIVIAL
2099 typename enable_if_c<
2100     is_vec<V>::value && vec_traits<V>::dim>=3,
2101     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2102 Z1Z( V const & a )
2103     {
2104     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2105     }
2106 template <class V>
2107 BOOST_QVM_INLINE_TRIVIAL
2108 typename enable_if_c<
2109     is_vec<V>::value && vec_traits<V>::dim>=3,
2110     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2111 Z1Z( V & a )
2112     {
2113     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2114     }
2115 template <class V>
2116 BOOST_QVM_INLINE_TRIVIAL
2117 typename enable_if_c<
2118     is_vec<V>::value && vec_traits<V>::dim>=3,
2119     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2120 Y1Z( V const & a )
2121     {
2122     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2123     }
2124 template <class V>
2125 BOOST_QVM_INLINE_TRIVIAL
2126 typename enable_if_c<
2127     is_vec<V>::value && vec_traits<V>::dim>=3,
2128     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2129 Y1Z( V & a )
2130     {
2131     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2132     }
2133 template <class V>
2134 BOOST_QVM_INLINE_TRIVIAL
2135 typename enable_if_c<
2136     is_vec<V>::value && vec_traits<V>::dim>=3,
2137     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2138 X1Z( V const & a )
2139     {
2140     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2141     }
2142 template <class V>
2143 BOOST_QVM_INLINE_TRIVIAL
2144 typename enable_if_c<
2145     is_vec<V>::value && vec_traits<V>::dim>=3,
2146     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2147 X1Z( V & a )
2148     {
2149     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2150     }
2151 template <class V>
2152 BOOST_QVM_INLINE_TRIVIAL
2153 typename enable_if_c<
2154     is_vec<V>::value && vec_traits<V>::dim>=3,
2155     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2156 _10Z( V const & a )
2157     {
2158     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2159     }
2160 template <class V>
2161 BOOST_QVM_INLINE_TRIVIAL
2162 typename enable_if_c<
2163     is_vec<V>::value && vec_traits<V>::dim>=3,
2164     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2165 _10Z( V & a )
2166     {
2167     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2168     }
2169 template <class V>
2170 BOOST_QVM_INLINE_TRIVIAL
2171 typename enable_if_c<
2172     is_vec<V>::value && vec_traits<V>::dim>=3,
2173     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2174 _00Z( V const & a )
2175     {
2176     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2177     }
2178 template <class V>
2179 BOOST_QVM_INLINE_TRIVIAL
2180 typename enable_if_c<
2181     is_vec<V>::value && vec_traits<V>::dim>=3,
2182     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2183 _00Z( V & a )
2184     {
2185     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2186     }
2187 template <class V>
2188 BOOST_QVM_INLINE_TRIVIAL
2189 typename enable_if_c<
2190     is_vec<V>::value && vec_traits<V>::dim>=4,
2191     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2192 W0Z( V const & a )
2193     {
2194     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2195     }
2196 template <class V>
2197 BOOST_QVM_INLINE_TRIVIAL
2198 typename enable_if_c<
2199     is_vec<V>::value && vec_traits<V>::dim>=4,
2200     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2201 W0Z( V & a )
2202     {
2203     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2204     }
2205 template <class V>
2206 BOOST_QVM_INLINE_TRIVIAL
2207 typename enable_if_c<
2208     is_vec<V>::value && vec_traits<V>::dim>=3,
2209     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2210 Z0Z( V const & a )
2211     {
2212     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2213     }
2214 template <class V>
2215 BOOST_QVM_INLINE_TRIVIAL
2216 typename enable_if_c<
2217     is_vec<V>::value && vec_traits<V>::dim>=3,
2218     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2219 Z0Z( V & a )
2220     {
2221     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2222     }
2223 template <class V>
2224 BOOST_QVM_INLINE_TRIVIAL
2225 typename enable_if_c<
2226     is_vec<V>::value && vec_traits<V>::dim>=3,
2227     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2228 Y0Z( V const & a )
2229     {
2230     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2231     }
2232 template <class V>
2233 BOOST_QVM_INLINE_TRIVIAL
2234 typename enable_if_c<
2235     is_vec<V>::value && vec_traits<V>::dim>=3,
2236     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2237 Y0Z( V & a )
2238     {
2239     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2240     }
2241 template <class V>
2242 BOOST_QVM_INLINE_TRIVIAL
2243 typename enable_if_c<
2244     is_vec<V>::value && vec_traits<V>::dim>=3,
2245     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2246 X0Z( V const & a )
2247     {
2248     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2249     }
2250 template <class V>
2251 BOOST_QVM_INLINE_TRIVIAL
2252 typename enable_if_c<
2253     is_vec<V>::value && vec_traits<V>::dim>=3,
2254     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2255 X0Z( V & a )
2256     {
2257     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2258     }
2259 template <class V>
2260 BOOST_QVM_INLINE_TRIVIAL
2261 typename enable_if_c<
2262     is_vec<V>::value && vec_traits<V>::dim>=4,
2263     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2264 _1WZ( V const & a )
2265     {
2266     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2267     }
2268 template <class V>
2269 BOOST_QVM_INLINE_TRIVIAL
2270 typename enable_if_c<
2271     is_vec<V>::value && vec_traits<V>::dim>=4,
2272     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2273 _1WZ( V & a )
2274     {
2275     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2276     }
2277 template <class V>
2278 BOOST_QVM_INLINE_TRIVIAL
2279 typename enable_if_c<
2280     is_vec<V>::value && vec_traits<V>::dim>=4,
2281     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2282 _0WZ( V const & a )
2283     {
2284     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2285     }
2286 template <class V>
2287 BOOST_QVM_INLINE_TRIVIAL
2288 typename enable_if_c<
2289     is_vec<V>::value && vec_traits<V>::dim>=4,
2290     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2291 _0WZ( V & a )
2292     {
2293     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2294     }
2295 template <class V>
2296 BOOST_QVM_INLINE_TRIVIAL
2297 typename enable_if_c<
2298     is_vec<V>::value && vec_traits<V>::dim>=4,
2299     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2300 WWZ( V const & a )
2301     {
2302     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2303     }
2304 template <class V>
2305 BOOST_QVM_INLINE_TRIVIAL
2306 typename enable_if_c<
2307     is_vec<V>::value && vec_traits<V>::dim>=4,
2308     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2309 WWZ( V & a )
2310     {
2311     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2312     }
2313 template <class V>
2314 BOOST_QVM_INLINE_TRIVIAL
2315 typename enable_if_c<
2316     is_vec<V>::value && vec_traits<V>::dim>=4,
2317     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2318 ZWZ( V const & a )
2319     {
2320     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2321     }
2322 template <class V>
2323 BOOST_QVM_INLINE_TRIVIAL
2324 typename enable_if_c<
2325     is_vec<V>::value && vec_traits<V>::dim>=4,
2326     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2327 ZWZ( V & a )
2328     {
2329     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2330     }
2331 template <class V>
2332 BOOST_QVM_INLINE_TRIVIAL
2333 typename enable_if_c<
2334     is_vec<V>::value && vec_traits<V>::dim>=4,
2335     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2336 YWZ( V const & a )
2337     {
2338     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2339     }
2340 template <class V>
2341 BOOST_QVM_INLINE_TRIVIAL
2342 typename enable_if_c<
2343     is_vec<V>::value && vec_traits<V>::dim>=4,
2344     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2345 YWZ( V & a )
2346     {
2347     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2348     }
2349 template <class V>
2350 BOOST_QVM_INLINE_TRIVIAL
2351 typename enable_if_c<
2352     is_vec<V>::value && vec_traits<V>::dim>=4,
2353     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2354 XWZ( V const & a )
2355     {
2356     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2357     }
2358 template <class V>
2359 BOOST_QVM_INLINE_TRIVIAL
2360 typename enable_if_c<
2361     is_vec<V>::value && vec_traits<V>::dim>=4,
2362     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2363 XWZ( V & a )
2364     {
2365     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2366     }
2367 template <class V>
2368 BOOST_QVM_INLINE_TRIVIAL
2369 typename enable_if_c<
2370     is_vec<V>::value && vec_traits<V>::dim>=3,
2371     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2372 _1ZZ( V const & a )
2373     {
2374     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2375     }
2376 template <class V>
2377 BOOST_QVM_INLINE_TRIVIAL
2378 typename enable_if_c<
2379     is_vec<V>::value && vec_traits<V>::dim>=3,
2380     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2381 _1ZZ( V & a )
2382     {
2383     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2384     }
2385 template <class V>
2386 BOOST_QVM_INLINE_TRIVIAL
2387 typename enable_if_c<
2388     is_vec<V>::value && vec_traits<V>::dim>=3,
2389     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2390 _0ZZ( V const & a )
2391     {
2392     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2393     }
2394 template <class V>
2395 BOOST_QVM_INLINE_TRIVIAL
2396 typename enable_if_c<
2397     is_vec<V>::value && vec_traits<V>::dim>=3,
2398     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2399 _0ZZ( V & a )
2400     {
2401     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2402     }
2403 template <class V>
2404 BOOST_QVM_INLINE_TRIVIAL
2405 typename enable_if_c<
2406     is_vec<V>::value && vec_traits<V>::dim>=4,
2407     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2408 WZZ( V const & a )
2409     {
2410     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2411     }
2412 template <class V>
2413 BOOST_QVM_INLINE_TRIVIAL
2414 typename enable_if_c<
2415     is_vec<V>::value && vec_traits<V>::dim>=4,
2416     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2417 WZZ( V & a )
2418     {
2419     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2420     }
2421 template <class V>
2422 BOOST_QVM_INLINE_TRIVIAL
2423 typename enable_if_c<
2424     is_vec<V>::value && vec_traits<V>::dim>=3,
2425     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2426 ZZZ( V const & a )
2427     {
2428     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2429     }
2430 template <class V>
2431 BOOST_QVM_INLINE_TRIVIAL
2432 typename enable_if_c<
2433     is_vec<V>::value && vec_traits<V>::dim>=3,
2434     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2435 ZZZ( V & a )
2436     {
2437     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2438     }
2439 template <class V>
2440 BOOST_QVM_INLINE_TRIVIAL
2441 typename enable_if_c<
2442     is_vec<V>::value && vec_traits<V>::dim>=3,
2443     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2444 YZZ( V const & a )
2445     {
2446     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2447     }
2448 template <class V>
2449 BOOST_QVM_INLINE_TRIVIAL
2450 typename enable_if_c<
2451     is_vec<V>::value && vec_traits<V>::dim>=3,
2452     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2453 YZZ( V & a )
2454     {
2455     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2456     }
2457 template <class V>
2458 BOOST_QVM_INLINE_TRIVIAL
2459 typename enable_if_c<
2460     is_vec<V>::value && vec_traits<V>::dim>=3,
2461     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2462 XZZ( V const & a )
2463     {
2464     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2465     }
2466 template <class V>
2467 BOOST_QVM_INLINE_TRIVIAL
2468 typename enable_if_c<
2469     is_vec<V>::value && vec_traits<V>::dim>=3,
2470     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2471 XZZ( V & a )
2472     {
2473     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2474     }
2475 template <class V>
2476 BOOST_QVM_INLINE_TRIVIAL
2477 typename enable_if_c<
2478     is_vec<V>::value && vec_traits<V>::dim>=3,
2479     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2480 _1YZ( V const & a )
2481     {
2482     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2483     }
2484 template <class V>
2485 BOOST_QVM_INLINE_TRIVIAL
2486 typename enable_if_c<
2487     is_vec<V>::value && vec_traits<V>::dim>=3,
2488     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2489 _1YZ( V & a )
2490     {
2491     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2492     }
2493 template <class V>
2494 BOOST_QVM_INLINE_TRIVIAL
2495 typename enable_if_c<
2496     is_vec<V>::value && vec_traits<V>::dim>=3,
2497     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2498 _0YZ( V const & a )
2499     {
2500     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2501     }
2502 template <class V>
2503 BOOST_QVM_INLINE_TRIVIAL
2504 typename enable_if_c<
2505     is_vec<V>::value && vec_traits<V>::dim>=3,
2506     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2507 _0YZ( V & a )
2508     {
2509     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2510     }
2511 template <class V>
2512 BOOST_QVM_INLINE_TRIVIAL
2513 typename enable_if_c<
2514     is_vec<V>::value && vec_traits<V>::dim>=4,
2515     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2516 WYZ( V const & a )
2517     {
2518     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2519     }
2520 template <class V>
2521 BOOST_QVM_INLINE_TRIVIAL
2522 typename enable_if_c<
2523     is_vec<V>::value && vec_traits<V>::dim>=4,
2524     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2525 WYZ( V & a )
2526     {
2527     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2528     }
2529 template <class V>
2530 BOOST_QVM_INLINE_TRIVIAL
2531 typename enable_if_c<
2532     is_vec<V>::value && vec_traits<V>::dim>=3,
2533     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2534 ZYZ( V const & a )
2535     {
2536     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2537     }
2538 template <class V>
2539 BOOST_QVM_INLINE_TRIVIAL
2540 typename enable_if_c<
2541     is_vec<V>::value && vec_traits<V>::dim>=3,
2542     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2543 ZYZ( V & a )
2544     {
2545     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2546     }
2547 template <class V>
2548 BOOST_QVM_INLINE_TRIVIAL
2549 typename enable_if_c<
2550     is_vec<V>::value && vec_traits<V>::dim>=3,
2551     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2552 YYZ( V const & a )
2553     {
2554     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2555     }
2556 template <class V>
2557 BOOST_QVM_INLINE_TRIVIAL
2558 typename enable_if_c<
2559     is_vec<V>::value && vec_traits<V>::dim>=3,
2560     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2561 YYZ( V & a )
2562     {
2563     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2564     }
2565 template <class V>
2566 BOOST_QVM_INLINE_TRIVIAL
2567 typename enable_if_c<
2568     is_vec<V>::value && vec_traits<V>::dim>=3,
2569     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2570 XYZ( V const & a )
2571     {
2572     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2573     }
2574 template <class V>
2575 BOOST_QVM_INLINE_TRIVIAL
2576 typename enable_if_c<
2577     is_vec<V>::value && vec_traits<V>::dim>=3,
2578     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2579 XYZ( V & a )
2580     {
2581     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2582     }
2583 template <class V>
2584 BOOST_QVM_INLINE_TRIVIAL
2585 typename enable_if_c<
2586     is_vec<V>::value && vec_traits<V>::dim>=3,
2587     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2588 _1XZ( V const & a )
2589     {
2590     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2591     }
2592 template <class V>
2593 BOOST_QVM_INLINE_TRIVIAL
2594 typename enable_if_c<
2595     is_vec<V>::value && vec_traits<V>::dim>=3,
2596     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2597 _1XZ( V & a )
2598     {
2599     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2600     }
2601 template <class V>
2602 BOOST_QVM_INLINE_TRIVIAL
2603 typename enable_if_c<
2604     is_vec<V>::value && vec_traits<V>::dim>=3,
2605     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2606 _0XZ( V const & a )
2607     {
2608     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2609     }
2610 template <class V>
2611 BOOST_QVM_INLINE_TRIVIAL
2612 typename enable_if_c<
2613     is_vec<V>::value && vec_traits<V>::dim>=3,
2614     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2615 _0XZ( V & a )
2616     {
2617     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2618     }
2619 template <class V>
2620 BOOST_QVM_INLINE_TRIVIAL
2621 typename enable_if_c<
2622     is_vec<V>::value && vec_traits<V>::dim>=4,
2623     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2624 WXZ( V const & a )
2625     {
2626     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2627     }
2628 template <class V>
2629 BOOST_QVM_INLINE_TRIVIAL
2630 typename enable_if_c<
2631     is_vec<V>::value && vec_traits<V>::dim>=4,
2632     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2633 WXZ( V & a )
2634     {
2635     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2636     }
2637 template <class V>
2638 BOOST_QVM_INLINE_TRIVIAL
2639 typename enable_if_c<
2640     is_vec<V>::value && vec_traits<V>::dim>=3,
2641     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2642 ZXZ( V const & a )
2643     {
2644     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2645     }
2646 template <class V>
2647 BOOST_QVM_INLINE_TRIVIAL
2648 typename enable_if_c<
2649     is_vec<V>::value && vec_traits<V>::dim>=3,
2650     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2651 ZXZ( V & a )
2652     {
2653     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2654     }
2655 template <class V>
2656 BOOST_QVM_INLINE_TRIVIAL
2657 typename enable_if_c<
2658     is_vec<V>::value && vec_traits<V>::dim>=3,
2659     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2660 YXZ( V const & a )
2661     {
2662     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2663     }
2664 template <class V>
2665 BOOST_QVM_INLINE_TRIVIAL
2666 typename enable_if_c<
2667     is_vec<V>::value && vec_traits<V>::dim>=3,
2668     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2669 YXZ( V & a )
2670     {
2671     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2672     }
2673 template <class V>
2674 BOOST_QVM_INLINE_TRIVIAL
2675 typename enable_if_c<
2676     is_vec<V>::value && vec_traits<V>::dim>=3,
2677     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2678 XXZ( V const & a )
2679     {
2680     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2681     }
2682 template <class V>
2683 BOOST_QVM_INLINE_TRIVIAL
2684 typename enable_if_c<
2685     is_vec<V>::value && vec_traits<V>::dim>=3,
2686     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2687 XXZ( V & a )
2688     {
2689     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2690     }
2691 template <class V>
2692 BOOST_QVM_INLINE_TRIVIAL
2693 typename enable_if_c<
2694     is_vec<V>::value && vec_traits<V>::dim>=2,
2695     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2696 _11Y( V const & a )
2697     {
2698     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2699     }
2700 template <class V>
2701 BOOST_QVM_INLINE_TRIVIAL
2702 typename enable_if_c<
2703     is_vec<V>::value && vec_traits<V>::dim>=2,
2704     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2705 _11Y( V & a )
2706     {
2707     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2708     }
2709 template <class V>
2710 BOOST_QVM_INLINE_TRIVIAL
2711 typename enable_if_c<
2712     is_vec<V>::value && vec_traits<V>::dim>=2,
2713     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2714 _01Y( V const & a )
2715     {
2716     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2717     }
2718 template <class V>
2719 BOOST_QVM_INLINE_TRIVIAL
2720 typename enable_if_c<
2721     is_vec<V>::value && vec_traits<V>::dim>=2,
2722     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2723 _01Y( V & a )
2724     {
2725     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2726     }
2727 template <class V>
2728 BOOST_QVM_INLINE_TRIVIAL
2729 typename enable_if_c<
2730     is_vec<V>::value && vec_traits<V>::dim>=4,
2731     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2732 W1Y( V const & a )
2733     {
2734     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2735     }
2736 template <class V>
2737 BOOST_QVM_INLINE_TRIVIAL
2738 typename enable_if_c<
2739     is_vec<V>::value && vec_traits<V>::dim>=4,
2740     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2741 W1Y( V & a )
2742     {
2743     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2744     }
2745 template <class V>
2746 BOOST_QVM_INLINE_TRIVIAL
2747 typename enable_if_c<
2748     is_vec<V>::value && vec_traits<V>::dim>=3,
2749     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2750 Z1Y( V const & a )
2751     {
2752     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2753     }
2754 template <class V>
2755 BOOST_QVM_INLINE_TRIVIAL
2756 typename enable_if_c<
2757     is_vec<V>::value && vec_traits<V>::dim>=3,
2758     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2759 Z1Y( V & a )
2760     {
2761     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2762     }
2763 template <class V>
2764 BOOST_QVM_INLINE_TRIVIAL
2765 typename enable_if_c<
2766     is_vec<V>::value && vec_traits<V>::dim>=2,
2767     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2768 Y1Y( V const & a )
2769     {
2770     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2771     }
2772 template <class V>
2773 BOOST_QVM_INLINE_TRIVIAL
2774 typename enable_if_c<
2775     is_vec<V>::value && vec_traits<V>::dim>=2,
2776     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2777 Y1Y( V & a )
2778     {
2779     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2780     }
2781 template <class V>
2782 BOOST_QVM_INLINE_TRIVIAL
2783 typename enable_if_c<
2784     is_vec<V>::value && vec_traits<V>::dim>=2,
2785     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2786 X1Y( V const & a )
2787     {
2788     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2789     }
2790 template <class V>
2791 BOOST_QVM_INLINE_TRIVIAL
2792 typename enable_if_c<
2793     is_vec<V>::value && vec_traits<V>::dim>=2,
2794     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2795 X1Y( V & a )
2796     {
2797     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2798     }
2799 template <class V>
2800 BOOST_QVM_INLINE_TRIVIAL
2801 typename enable_if_c<
2802     is_vec<V>::value && vec_traits<V>::dim>=2,
2803     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2804 _10Y( V const & a )
2805     {
2806     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2807     }
2808 template <class V>
2809 BOOST_QVM_INLINE_TRIVIAL
2810 typename enable_if_c<
2811     is_vec<V>::value && vec_traits<V>::dim>=2,
2812     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2813 _10Y( V & a )
2814     {
2815     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2816     }
2817 template <class V>
2818 BOOST_QVM_INLINE_TRIVIAL
2819 typename enable_if_c<
2820     is_vec<V>::value && vec_traits<V>::dim>=2,
2821     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2822 _00Y( V const & a )
2823     {
2824     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2825     }
2826 template <class V>
2827 BOOST_QVM_INLINE_TRIVIAL
2828 typename enable_if_c<
2829     is_vec<V>::value && vec_traits<V>::dim>=2,
2830     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2831 _00Y( V & a )
2832     {
2833     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2834     }
2835 template <class V>
2836 BOOST_QVM_INLINE_TRIVIAL
2837 typename enable_if_c<
2838     is_vec<V>::value && vec_traits<V>::dim>=4,
2839     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2840 W0Y( V const & a )
2841     {
2842     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2843     }
2844 template <class V>
2845 BOOST_QVM_INLINE_TRIVIAL
2846 typename enable_if_c<
2847     is_vec<V>::value && vec_traits<V>::dim>=4,
2848     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2849 W0Y( V & a )
2850     {
2851     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2852     }
2853 template <class V>
2854 BOOST_QVM_INLINE_TRIVIAL
2855 typename enable_if_c<
2856     is_vec<V>::value && vec_traits<V>::dim>=3,
2857     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2858 Z0Y( V const & a )
2859     {
2860     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2861     }
2862 template <class V>
2863 BOOST_QVM_INLINE_TRIVIAL
2864 typename enable_if_c<
2865     is_vec<V>::value && vec_traits<V>::dim>=3,
2866     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2867 Z0Y( V & a )
2868     {
2869     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2870     }
2871 template <class V>
2872 BOOST_QVM_INLINE_TRIVIAL
2873 typename enable_if_c<
2874     is_vec<V>::value && vec_traits<V>::dim>=2,
2875     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2876 Y0Y( V const & a )
2877     {
2878     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2879     }
2880 template <class V>
2881 BOOST_QVM_INLINE_TRIVIAL
2882 typename enable_if_c<
2883     is_vec<V>::value && vec_traits<V>::dim>=2,
2884     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2885 Y0Y( V & a )
2886     {
2887     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2888     }
2889 template <class V>
2890 BOOST_QVM_INLINE_TRIVIAL
2891 typename enable_if_c<
2892     is_vec<V>::value && vec_traits<V>::dim>=2,
2893     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2894 X0Y( V const & a )
2895     {
2896     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2897     }
2898 template <class V>
2899 BOOST_QVM_INLINE_TRIVIAL
2900 typename enable_if_c<
2901     is_vec<V>::value && vec_traits<V>::dim>=2,
2902     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2903 X0Y( V & a )
2904     {
2905     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2906     }
2907 template <class V>
2908 BOOST_QVM_INLINE_TRIVIAL
2909 typename enable_if_c<
2910     is_vec<V>::value && vec_traits<V>::dim>=4,
2911     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2912 _1WY( V const & a )
2913     {
2914     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2915     }
2916 template <class V>
2917 BOOST_QVM_INLINE_TRIVIAL
2918 typename enable_if_c<
2919     is_vec<V>::value && vec_traits<V>::dim>=4,
2920     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2921 _1WY( V & a )
2922     {
2923     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2924     }
2925 template <class V>
2926 BOOST_QVM_INLINE_TRIVIAL
2927 typename enable_if_c<
2928     is_vec<V>::value && vec_traits<V>::dim>=4,
2929     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2930 _0WY( V const & a )
2931     {
2932     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2933     }
2934 template <class V>
2935 BOOST_QVM_INLINE_TRIVIAL
2936 typename enable_if_c<
2937     is_vec<V>::value && vec_traits<V>::dim>=4,
2938     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2939 _0WY( V & a )
2940     {
2941     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2942     }
2943 template <class V>
2944 BOOST_QVM_INLINE_TRIVIAL
2945 typename enable_if_c<
2946     is_vec<V>::value && vec_traits<V>::dim>=4,
2947     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2948 WWY( V const & a )
2949     {
2950     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2951     }
2952 template <class V>
2953 BOOST_QVM_INLINE_TRIVIAL
2954 typename enable_if_c<
2955     is_vec<V>::value && vec_traits<V>::dim>=4,
2956     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2957 WWY( V & a )
2958     {
2959     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2960     }
2961 template <class V>
2962 BOOST_QVM_INLINE_TRIVIAL
2963 typename enable_if_c<
2964     is_vec<V>::value && vec_traits<V>::dim>=4,
2965     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2966 ZWY( V const & a )
2967     {
2968     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2969     }
2970 template <class V>
2971 BOOST_QVM_INLINE_TRIVIAL
2972 typename enable_if_c<
2973     is_vec<V>::value && vec_traits<V>::dim>=4,
2974     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2975 ZWY( V & a )
2976     {
2977     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2978     }
2979 template <class V>
2980 BOOST_QVM_INLINE_TRIVIAL
2981 typename enable_if_c<
2982     is_vec<V>::value && vec_traits<V>::dim>=4,
2983     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2984 YWY( V const & a )
2985     {
2986     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2987     }
2988 template <class V>
2989 BOOST_QVM_INLINE_TRIVIAL
2990 typename enable_if_c<
2991     is_vec<V>::value && vec_traits<V>::dim>=4,
2992     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2993 YWY( V & a )
2994     {
2995     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2996     }
2997 template <class V>
2998 BOOST_QVM_INLINE_TRIVIAL
2999 typename enable_if_c<
3000     is_vec<V>::value && vec_traits<V>::dim>=4,
3001     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
3002 XWY( V const & a )
3003     {
3004     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3005     }
3006 template <class V>
3007 BOOST_QVM_INLINE_TRIVIAL
3008 typename enable_if_c<
3009     is_vec<V>::value && vec_traits<V>::dim>=4,
3010     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
3011 XWY( V & a )
3012     {
3013     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
3014     }
3015 template <class V>
3016 BOOST_QVM_INLINE_TRIVIAL
3017 typename enable_if_c<
3018     is_vec<V>::value && vec_traits<V>::dim>=3,
3019     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3020 _1ZY( V const & a )
3021     {
3022     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3023     }
3024 template <class V>
3025 BOOST_QVM_INLINE_TRIVIAL
3026 typename enable_if_c<
3027     is_vec<V>::value && vec_traits<V>::dim>=3,
3028     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3029 _1ZY( V & a )
3030     {
3031     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3032     }
3033 template <class V>
3034 BOOST_QVM_INLINE_TRIVIAL
3035 typename enable_if_c<
3036     is_vec<V>::value && vec_traits<V>::dim>=3,
3037     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3038 _0ZY( V const & a )
3039     {
3040     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3041     }
3042 template <class V>
3043 BOOST_QVM_INLINE_TRIVIAL
3044 typename enable_if_c<
3045     is_vec<V>::value && vec_traits<V>::dim>=3,
3046     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3047 _0ZY( V & a )
3048     {
3049     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3050     }
3051 template <class V>
3052 BOOST_QVM_INLINE_TRIVIAL
3053 typename enable_if_c<
3054     is_vec<V>::value && vec_traits<V>::dim>=4,
3055     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3056 WZY( V const & a )
3057     {
3058     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3059     }
3060 template <class V>
3061 BOOST_QVM_INLINE_TRIVIAL
3062 typename enable_if_c<
3063     is_vec<V>::value && vec_traits<V>::dim>=4,
3064     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3065 WZY( V & a )
3066     {
3067     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3068     }
3069 template <class V>
3070 BOOST_QVM_INLINE_TRIVIAL
3071 typename enable_if_c<
3072     is_vec<V>::value && vec_traits<V>::dim>=3,
3073     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3074 ZZY( V const & a )
3075     {
3076     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3077     }
3078 template <class V>
3079 BOOST_QVM_INLINE_TRIVIAL
3080 typename enable_if_c<
3081     is_vec<V>::value && vec_traits<V>::dim>=3,
3082     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3083 ZZY( V & a )
3084     {
3085     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3086     }
3087 template <class V>
3088 BOOST_QVM_INLINE_TRIVIAL
3089 typename enable_if_c<
3090     is_vec<V>::value && vec_traits<V>::dim>=3,
3091     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3092 YZY( V const & a )
3093     {
3094     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3095     }
3096 template <class V>
3097 BOOST_QVM_INLINE_TRIVIAL
3098 typename enable_if_c<
3099     is_vec<V>::value && vec_traits<V>::dim>=3,
3100     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3101 YZY( V & a )
3102     {
3103     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3104     }
3105 template <class V>
3106 BOOST_QVM_INLINE_TRIVIAL
3107 typename enable_if_c<
3108     is_vec<V>::value && vec_traits<V>::dim>=3,
3109     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3110 XZY( V const & a )
3111     {
3112     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3113     }
3114 template <class V>
3115 BOOST_QVM_INLINE_TRIVIAL
3116 typename enable_if_c<
3117     is_vec<V>::value && vec_traits<V>::dim>=3,
3118     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3119 XZY( V & a )
3120     {
3121     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3122     }
3123 template <class V>
3124 BOOST_QVM_INLINE_TRIVIAL
3125 typename enable_if_c<
3126     is_vec<V>::value && vec_traits<V>::dim>=2,
3127     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3128 _1YY( V const & a )
3129     {
3130     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3131     }
3132 template <class V>
3133 BOOST_QVM_INLINE_TRIVIAL
3134 typename enable_if_c<
3135     is_vec<V>::value && vec_traits<V>::dim>=2,
3136     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3137 _1YY( V & a )
3138     {
3139     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3140     }
3141 template <class V>
3142 BOOST_QVM_INLINE_TRIVIAL
3143 typename enable_if_c<
3144     is_vec<V>::value && vec_traits<V>::dim>=2,
3145     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3146 _0YY( V const & a )
3147     {
3148     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3149     }
3150 template <class V>
3151 BOOST_QVM_INLINE_TRIVIAL
3152 typename enable_if_c<
3153     is_vec<V>::value && vec_traits<V>::dim>=2,
3154     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3155 _0YY( V & a )
3156     {
3157     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3158     }
3159 template <class V>
3160 BOOST_QVM_INLINE_TRIVIAL
3161 typename enable_if_c<
3162     is_vec<V>::value && vec_traits<V>::dim>=4,
3163     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3164 WYY( V const & a )
3165     {
3166     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3167     }
3168 template <class V>
3169 BOOST_QVM_INLINE_TRIVIAL
3170 typename enable_if_c<
3171     is_vec<V>::value && vec_traits<V>::dim>=4,
3172     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3173 WYY( V & a )
3174     {
3175     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3176     }
3177 template <class V>
3178 BOOST_QVM_INLINE_TRIVIAL
3179 typename enable_if_c<
3180     is_vec<V>::value && vec_traits<V>::dim>=3,
3181     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3182 ZYY( V const & a )
3183     {
3184     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3185     }
3186 template <class V>
3187 BOOST_QVM_INLINE_TRIVIAL
3188 typename enable_if_c<
3189     is_vec<V>::value && vec_traits<V>::dim>=3,
3190     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3191 ZYY( V & a )
3192     {
3193     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3194     }
3195 template <class V>
3196 BOOST_QVM_INLINE_TRIVIAL
3197 typename enable_if_c<
3198     is_vec<V>::value && vec_traits<V>::dim>=2,
3199     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3200 YYY( V const & a )
3201     {
3202     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3203     }
3204 template <class V>
3205 BOOST_QVM_INLINE_TRIVIAL
3206 typename enable_if_c<
3207     is_vec<V>::value && vec_traits<V>::dim>=2,
3208     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3209 YYY( V & a )
3210     {
3211     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3212     }
3213 template <class V>
3214 BOOST_QVM_INLINE_TRIVIAL
3215 typename enable_if_c<
3216     is_vec<V>::value && vec_traits<V>::dim>=2,
3217     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3218 XYY( V const & a )
3219     {
3220     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3221     }
3222 template <class V>
3223 BOOST_QVM_INLINE_TRIVIAL
3224 typename enable_if_c<
3225     is_vec<V>::value && vec_traits<V>::dim>=2,
3226     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3227 XYY( V & a )
3228     {
3229     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3230     }
3231 template <class V>
3232 BOOST_QVM_INLINE_TRIVIAL
3233 typename enable_if_c<
3234     is_vec<V>::value && vec_traits<V>::dim>=2,
3235     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3236 _1XY( V const & a )
3237     {
3238     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3239     }
3240 template <class V>
3241 BOOST_QVM_INLINE_TRIVIAL
3242 typename enable_if_c<
3243     is_vec<V>::value && vec_traits<V>::dim>=2,
3244     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3245 _1XY( V & a )
3246     {
3247     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3248     }
3249 template <class V>
3250 BOOST_QVM_INLINE_TRIVIAL
3251 typename enable_if_c<
3252     is_vec<V>::value && vec_traits<V>::dim>=2,
3253     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3254 _0XY( V const & a )
3255     {
3256     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3257     }
3258 template <class V>
3259 BOOST_QVM_INLINE_TRIVIAL
3260 typename enable_if_c<
3261     is_vec<V>::value && vec_traits<V>::dim>=2,
3262     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3263 _0XY( V & a )
3264     {
3265     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3266     }
3267 template <class V>
3268 BOOST_QVM_INLINE_TRIVIAL
3269 typename enable_if_c<
3270     is_vec<V>::value && vec_traits<V>::dim>=4,
3271     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3272 WXY( V const & a )
3273     {
3274     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3275     }
3276 template <class V>
3277 BOOST_QVM_INLINE_TRIVIAL
3278 typename enable_if_c<
3279     is_vec<V>::value && vec_traits<V>::dim>=4,
3280     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3281 WXY( V & a )
3282     {
3283     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3284     }
3285 template <class V>
3286 BOOST_QVM_INLINE_TRIVIAL
3287 typename enable_if_c<
3288     is_vec<V>::value && vec_traits<V>::dim>=3,
3289     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3290 ZXY( V const & a )
3291     {
3292     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3293     }
3294 template <class V>
3295 BOOST_QVM_INLINE_TRIVIAL
3296 typename enable_if_c<
3297     is_vec<V>::value && vec_traits<V>::dim>=3,
3298     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3299 ZXY( V & a )
3300     {
3301     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3302     }
3303 template <class V>
3304 BOOST_QVM_INLINE_TRIVIAL
3305 typename enable_if_c<
3306     is_vec<V>::value && vec_traits<V>::dim>=2,
3307     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3308 YXY( V const & a )
3309     {
3310     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3311     }
3312 template <class V>
3313 BOOST_QVM_INLINE_TRIVIAL
3314 typename enable_if_c<
3315     is_vec<V>::value && vec_traits<V>::dim>=2,
3316     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3317 YXY( V & a )
3318     {
3319     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3320     }
3321 template <class V>
3322 BOOST_QVM_INLINE_TRIVIAL
3323 typename enable_if_c<
3324     is_vec<V>::value && vec_traits<V>::dim>=2,
3325     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3326 XXY( V const & a )
3327     {
3328     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3329     }
3330 template <class V>
3331 BOOST_QVM_INLINE_TRIVIAL
3332 typename enable_if_c<
3333     is_vec<V>::value && vec_traits<V>::dim>=2,
3334     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3335 XXY( V & a )
3336     {
3337     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3338     }
3339 template <class V>
3340 BOOST_QVM_INLINE_TRIVIAL
3341 typename enable_if_c<
3342     is_vec<V>::value && vec_traits<V>::dim>=1,
3343     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3344 _11X( V const & a )
3345     {
3346     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3347     }
3348 template <class S>
3349 BOOST_QVM_INLINE_TRIVIAL
3350 typename enable_if_c<
3351     is_scalar<S>::value,
3352     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3353 _11X( S const & a )
3354     {
3355     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3356     }
3357 template <class V>
3358 BOOST_QVM_INLINE_TRIVIAL
3359 typename enable_if_c<
3360     is_vec<V>::value && vec_traits<V>::dim>=1,
3361     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3362 _11X( V & a )
3363     {
3364     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3365     }
3366 template <class S>
3367 BOOST_QVM_INLINE_TRIVIAL
3368 typename enable_if_c<
3369     is_scalar<S>::value,
3370     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3371 _11X( S & a )
3372     {
3373     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3374     }
3375 template <class V>
3376 BOOST_QVM_INLINE_TRIVIAL
3377 typename enable_if_c<
3378     is_vec<V>::value && vec_traits<V>::dim>=1,
3379     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3380 _01X( V const & a )
3381     {
3382     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3383     }
3384 template <class S>
3385 BOOST_QVM_INLINE_TRIVIAL
3386 typename enable_if_c<
3387     is_scalar<S>::value,
3388     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3389 _01X( S const & a )
3390     {
3391     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3392     }
3393 template <class V>
3394 BOOST_QVM_INLINE_TRIVIAL
3395 typename enable_if_c<
3396     is_vec<V>::value && vec_traits<V>::dim>=1,
3397     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3398 _01X( V & a )
3399     {
3400     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3401     }
3402 template <class S>
3403 BOOST_QVM_INLINE_TRIVIAL
3404 typename enable_if_c<
3405     is_scalar<S>::value,
3406     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3407 _01X( S & a )
3408     {
3409     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3410     }
3411 template <class V>
3412 BOOST_QVM_INLINE_TRIVIAL
3413 typename enable_if_c<
3414     is_vec<V>::value && vec_traits<V>::dim>=4,
3415     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3416 W1X( V const & a )
3417     {
3418     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3419     }
3420 template <class V>
3421 BOOST_QVM_INLINE_TRIVIAL
3422 typename enable_if_c<
3423     is_vec<V>::value && vec_traits<V>::dim>=4,
3424     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3425 W1X( V & a )
3426     {
3427     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3428     }
3429 template <class V>
3430 BOOST_QVM_INLINE_TRIVIAL
3431 typename enable_if_c<
3432     is_vec<V>::value && vec_traits<V>::dim>=3,
3433     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3434 Z1X( V const & a )
3435     {
3436     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3437     }
3438 template <class V>
3439 BOOST_QVM_INLINE_TRIVIAL
3440 typename enable_if_c<
3441     is_vec<V>::value && vec_traits<V>::dim>=3,
3442     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3443 Z1X( V & a )
3444     {
3445     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3446     }
3447 template <class V>
3448 BOOST_QVM_INLINE_TRIVIAL
3449 typename enable_if_c<
3450     is_vec<V>::value && vec_traits<V>::dim>=2,
3451     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3452 Y1X( V const & a )
3453     {
3454     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3455     }
3456 template <class V>
3457 BOOST_QVM_INLINE_TRIVIAL
3458 typename enable_if_c<
3459     is_vec<V>::value && vec_traits<V>::dim>=2,
3460     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3461 Y1X( V & a )
3462     {
3463     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3464     }
3465 template <class V>
3466 BOOST_QVM_INLINE_TRIVIAL
3467 typename enable_if_c<
3468     is_vec<V>::value && vec_traits<V>::dim>=1,
3469     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3470 X1X( V const & a )
3471     {
3472     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3473     }
3474 template <class S>
3475 BOOST_QVM_INLINE_TRIVIAL
3476 typename enable_if_c<
3477     is_scalar<S>::value,
3478     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3479 X1X( S const & a )
3480     {
3481     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3482     }
3483 template <class V>
3484 BOOST_QVM_INLINE_TRIVIAL
3485 typename enable_if_c<
3486     is_vec<V>::value && vec_traits<V>::dim>=1,
3487     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3488 X1X( V & a )
3489     {
3490     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3491     }
3492 template <class S>
3493 BOOST_QVM_INLINE_TRIVIAL
3494 typename enable_if_c<
3495     is_scalar<S>::value,
3496     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3497 X1X( S & a )
3498     {
3499     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3500     }
3501 template <class V>
3502 BOOST_QVM_INLINE_TRIVIAL
3503 typename enable_if_c<
3504     is_vec<V>::value && vec_traits<V>::dim>=1,
3505     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3506 _10X( V const & a )
3507     {
3508     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3509     }
3510 template <class S>
3511 BOOST_QVM_INLINE_TRIVIAL
3512 typename enable_if_c<
3513     is_scalar<S>::value,
3514     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3515 _10X( S const & a )
3516     {
3517     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3518     }
3519 template <class V>
3520 BOOST_QVM_INLINE_TRIVIAL
3521 typename enable_if_c<
3522     is_vec<V>::value && vec_traits<V>::dim>=1,
3523     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3524 _10X( V & a )
3525     {
3526     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3527     }
3528 template <class S>
3529 BOOST_QVM_INLINE_TRIVIAL
3530 typename enable_if_c<
3531     is_scalar<S>::value,
3532     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3533 _10X( S & a )
3534     {
3535     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3536     }
3537 template <class V>
3538 BOOST_QVM_INLINE_TRIVIAL
3539 typename enable_if_c<
3540     is_vec<V>::value && vec_traits<V>::dim>=1,
3541     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3542 _00X( V const & a )
3543     {
3544     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3545     }
3546 template <class S>
3547 BOOST_QVM_INLINE_TRIVIAL
3548 typename enable_if_c<
3549     is_scalar<S>::value,
3550     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3551 _00X( S const & a )
3552     {
3553     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3554     }
3555 template <class V>
3556 BOOST_QVM_INLINE_TRIVIAL
3557 typename enable_if_c<
3558     is_vec<V>::value && vec_traits<V>::dim>=1,
3559     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3560 _00X( V & a )
3561     {
3562     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3563     }
3564 template <class S>
3565 BOOST_QVM_INLINE_TRIVIAL
3566 typename enable_if_c<
3567     is_scalar<S>::value,
3568     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3569 _00X( S & a )
3570     {
3571     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3572     }
3573 template <class V>
3574 BOOST_QVM_INLINE_TRIVIAL
3575 typename enable_if_c<
3576     is_vec<V>::value && vec_traits<V>::dim>=4,
3577     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3578 W0X( V const & a )
3579     {
3580     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3581     }
3582 template <class V>
3583 BOOST_QVM_INLINE_TRIVIAL
3584 typename enable_if_c<
3585     is_vec<V>::value && vec_traits<V>::dim>=4,
3586     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3587 W0X( V & a )
3588     {
3589     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3590     }
3591 template <class V>
3592 BOOST_QVM_INLINE_TRIVIAL
3593 typename enable_if_c<
3594     is_vec<V>::value && vec_traits<V>::dim>=3,
3595     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3596 Z0X( V const & a )
3597     {
3598     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3599     }
3600 template <class V>
3601 BOOST_QVM_INLINE_TRIVIAL
3602 typename enable_if_c<
3603     is_vec<V>::value && vec_traits<V>::dim>=3,
3604     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3605 Z0X( V & a )
3606     {
3607     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3608     }
3609 template <class V>
3610 BOOST_QVM_INLINE_TRIVIAL
3611 typename enable_if_c<
3612     is_vec<V>::value && vec_traits<V>::dim>=2,
3613     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3614 Y0X( V const & a )
3615     {
3616     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3617     }
3618 template <class V>
3619 BOOST_QVM_INLINE_TRIVIAL
3620 typename enable_if_c<
3621     is_vec<V>::value && vec_traits<V>::dim>=2,
3622     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3623 Y0X( V & a )
3624     {
3625     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3626     }
3627 template <class V>
3628 BOOST_QVM_INLINE_TRIVIAL
3629 typename enable_if_c<
3630     is_vec<V>::value && vec_traits<V>::dim>=1,
3631     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3632 X0X( V const & a )
3633     {
3634     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3635     }
3636 template <class S>
3637 BOOST_QVM_INLINE_TRIVIAL
3638 typename enable_if_c<
3639     is_scalar<S>::value,
3640     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3641 X0X( S const & a )
3642     {
3643     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3644     }
3645 template <class V>
3646 BOOST_QVM_INLINE_TRIVIAL
3647 typename enable_if_c<
3648     is_vec<V>::value && vec_traits<V>::dim>=1,
3649     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3650 X0X( V & a )
3651     {
3652     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3653     }
3654 template <class S>
3655 BOOST_QVM_INLINE_TRIVIAL
3656 typename enable_if_c<
3657     is_scalar<S>::value,
3658     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3659 X0X( S & a )
3660     {
3661     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3662     }
3663 template <class V>
3664 BOOST_QVM_INLINE_TRIVIAL
3665 typename enable_if_c<
3666     is_vec<V>::value && vec_traits<V>::dim>=4,
3667     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3668 _1WX( V const & a )
3669     {
3670     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3671     }
3672 template <class V>
3673 BOOST_QVM_INLINE_TRIVIAL
3674 typename enable_if_c<
3675     is_vec<V>::value && vec_traits<V>::dim>=4,
3676     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3677 _1WX( V & a )
3678     {
3679     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3680     }
3681 template <class V>
3682 BOOST_QVM_INLINE_TRIVIAL
3683 typename enable_if_c<
3684     is_vec<V>::value && vec_traits<V>::dim>=4,
3685     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3686 _0WX( V const & a )
3687     {
3688     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3689     }
3690 template <class V>
3691 BOOST_QVM_INLINE_TRIVIAL
3692 typename enable_if_c<
3693     is_vec<V>::value && vec_traits<V>::dim>=4,
3694     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3695 _0WX( V & a )
3696     {
3697     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3698     }
3699 template <class V>
3700 BOOST_QVM_INLINE_TRIVIAL
3701 typename enable_if_c<
3702     is_vec<V>::value && vec_traits<V>::dim>=4,
3703     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3704 WWX( V const & a )
3705     {
3706     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3707     }
3708 template <class V>
3709 BOOST_QVM_INLINE_TRIVIAL
3710 typename enable_if_c<
3711     is_vec<V>::value && vec_traits<V>::dim>=4,
3712     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3713 WWX( V & a )
3714     {
3715     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3716     }
3717 template <class V>
3718 BOOST_QVM_INLINE_TRIVIAL
3719 typename enable_if_c<
3720     is_vec<V>::value && vec_traits<V>::dim>=4,
3721     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3722 ZWX( V const & a )
3723     {
3724     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3725     }
3726 template <class V>
3727 BOOST_QVM_INLINE_TRIVIAL
3728 typename enable_if_c<
3729     is_vec<V>::value && vec_traits<V>::dim>=4,
3730     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3731 ZWX( V & a )
3732     {
3733     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3734     }
3735 template <class V>
3736 BOOST_QVM_INLINE_TRIVIAL
3737 typename enable_if_c<
3738     is_vec<V>::value && vec_traits<V>::dim>=4,
3739     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3740 YWX( V const & a )
3741     {
3742     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3743     }
3744 template <class V>
3745 BOOST_QVM_INLINE_TRIVIAL
3746 typename enable_if_c<
3747     is_vec<V>::value && vec_traits<V>::dim>=4,
3748     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3749 YWX( V & a )
3750     {
3751     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3752     }
3753 template <class V>
3754 BOOST_QVM_INLINE_TRIVIAL
3755 typename enable_if_c<
3756     is_vec<V>::value && vec_traits<V>::dim>=4,
3757     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3758 XWX( V const & a )
3759     {
3760     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3761     }
3762 template <class V>
3763 BOOST_QVM_INLINE_TRIVIAL
3764 typename enable_if_c<
3765     is_vec<V>::value && vec_traits<V>::dim>=4,
3766     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3767 XWX( V & a )
3768     {
3769     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3770     }
3771 template <class V>
3772 BOOST_QVM_INLINE_TRIVIAL
3773 typename enable_if_c<
3774     is_vec<V>::value && vec_traits<V>::dim>=3,
3775     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3776 _1ZX( V const & a )
3777     {
3778     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3779     }
3780 template <class V>
3781 BOOST_QVM_INLINE_TRIVIAL
3782 typename enable_if_c<
3783     is_vec<V>::value && vec_traits<V>::dim>=3,
3784     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3785 _1ZX( V & a )
3786     {
3787     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3788     }
3789 template <class V>
3790 BOOST_QVM_INLINE_TRIVIAL
3791 typename enable_if_c<
3792     is_vec<V>::value && vec_traits<V>::dim>=3,
3793     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3794 _0ZX( V const & a )
3795     {
3796     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3797     }
3798 template <class V>
3799 BOOST_QVM_INLINE_TRIVIAL
3800 typename enable_if_c<
3801     is_vec<V>::value && vec_traits<V>::dim>=3,
3802     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3803 _0ZX( V & a )
3804     {
3805     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3806     }
3807 template <class V>
3808 BOOST_QVM_INLINE_TRIVIAL
3809 typename enable_if_c<
3810     is_vec<V>::value && vec_traits<V>::dim>=4,
3811     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3812 WZX( V const & a )
3813     {
3814     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3815     }
3816 template <class V>
3817 BOOST_QVM_INLINE_TRIVIAL
3818 typename enable_if_c<
3819     is_vec<V>::value && vec_traits<V>::dim>=4,
3820     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3821 WZX( V & a )
3822     {
3823     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3824     }
3825 template <class V>
3826 BOOST_QVM_INLINE_TRIVIAL
3827 typename enable_if_c<
3828     is_vec<V>::value && vec_traits<V>::dim>=3,
3829     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3830 ZZX( V const & a )
3831     {
3832     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3833     }
3834 template <class V>
3835 BOOST_QVM_INLINE_TRIVIAL
3836 typename enable_if_c<
3837     is_vec<V>::value && vec_traits<V>::dim>=3,
3838     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3839 ZZX( V & a )
3840     {
3841     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3842     }
3843 template <class V>
3844 BOOST_QVM_INLINE_TRIVIAL
3845 typename enable_if_c<
3846     is_vec<V>::value && vec_traits<V>::dim>=3,
3847     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3848 YZX( V const & a )
3849     {
3850     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3851     }
3852 template <class V>
3853 BOOST_QVM_INLINE_TRIVIAL
3854 typename enable_if_c<
3855     is_vec<V>::value && vec_traits<V>::dim>=3,
3856     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3857 YZX( V & a )
3858     {
3859     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3860     }
3861 template <class V>
3862 BOOST_QVM_INLINE_TRIVIAL
3863 typename enable_if_c<
3864     is_vec<V>::value && vec_traits<V>::dim>=3,
3865     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3866 XZX( V const & a )
3867     {
3868     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3869     }
3870 template <class V>
3871 BOOST_QVM_INLINE_TRIVIAL
3872 typename enable_if_c<
3873     is_vec<V>::value && vec_traits<V>::dim>=3,
3874     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3875 XZX( V & a )
3876     {
3877     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3878     }
3879 template <class V>
3880 BOOST_QVM_INLINE_TRIVIAL
3881 typename enable_if_c<
3882     is_vec<V>::value && vec_traits<V>::dim>=2,
3883     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3884 _1YX( V const & a )
3885     {
3886     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3887     }
3888 template <class V>
3889 BOOST_QVM_INLINE_TRIVIAL
3890 typename enable_if_c<
3891     is_vec<V>::value && vec_traits<V>::dim>=2,
3892     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3893 _1YX( V & a )
3894     {
3895     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3896     }
3897 template <class V>
3898 BOOST_QVM_INLINE_TRIVIAL
3899 typename enable_if_c<
3900     is_vec<V>::value && vec_traits<V>::dim>=2,
3901     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3902 _0YX( V const & a )
3903     {
3904     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3905     }
3906 template <class V>
3907 BOOST_QVM_INLINE_TRIVIAL
3908 typename enable_if_c<
3909     is_vec<V>::value && vec_traits<V>::dim>=2,
3910     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3911 _0YX( V & a )
3912     {
3913     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3914     }
3915 template <class V>
3916 BOOST_QVM_INLINE_TRIVIAL
3917 typename enable_if_c<
3918     is_vec<V>::value && vec_traits<V>::dim>=4,
3919     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3920 WYX( V const & a )
3921     {
3922     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3923     }
3924 template <class V>
3925 BOOST_QVM_INLINE_TRIVIAL
3926 typename enable_if_c<
3927     is_vec<V>::value && vec_traits<V>::dim>=4,
3928     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3929 WYX( V & a )
3930     {
3931     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3932     }
3933 template <class V>
3934 BOOST_QVM_INLINE_TRIVIAL
3935 typename enable_if_c<
3936     is_vec<V>::value && vec_traits<V>::dim>=3,
3937     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3938 ZYX( V const & a )
3939     {
3940     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3941     }
3942 template <class V>
3943 BOOST_QVM_INLINE_TRIVIAL
3944 typename enable_if_c<
3945     is_vec<V>::value && vec_traits<V>::dim>=3,
3946     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3947 ZYX( V & a )
3948     {
3949     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3950     }
3951 template <class V>
3952 BOOST_QVM_INLINE_TRIVIAL
3953 typename enable_if_c<
3954     is_vec<V>::value && vec_traits<V>::dim>=2,
3955     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3956 YYX( V const & a )
3957     {
3958     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3959     }
3960 template <class V>
3961 BOOST_QVM_INLINE_TRIVIAL
3962 typename enable_if_c<
3963     is_vec<V>::value && vec_traits<V>::dim>=2,
3964     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3965 YYX( V & a )
3966     {
3967     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3968     }
3969 template <class V>
3970 BOOST_QVM_INLINE_TRIVIAL
3971 typename enable_if_c<
3972     is_vec<V>::value && vec_traits<V>::dim>=2,
3973     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3974 XYX( V const & a )
3975     {
3976     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3977     }
3978 template <class V>
3979 BOOST_QVM_INLINE_TRIVIAL
3980 typename enable_if_c<
3981     is_vec<V>::value && vec_traits<V>::dim>=2,
3982     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3983 XYX( V & a )
3984     {
3985     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3986     }
3987 template <class V>
3988 BOOST_QVM_INLINE_TRIVIAL
3989 typename enable_if_c<
3990     is_vec<V>::value && vec_traits<V>::dim>=1,
3991     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
3992 _1XX( V const & a )
3993     {
3994     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3995     }
3996 template <class S>
3997 BOOST_QVM_INLINE_TRIVIAL
3998 typename enable_if_c<
3999     is_scalar<S>::value,
4000     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4001 _1XX( S const & a )
4002     {
4003     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4004     }
4005 template <class V>
4006 BOOST_QVM_INLINE_TRIVIAL
4007 typename enable_if_c<
4008     is_vec<V>::value && vec_traits<V>::dim>=1,
4009     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4010 _1XX( V & a )
4011     {
4012     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4013     }
4014 template <class S>
4015 BOOST_QVM_INLINE_TRIVIAL
4016 typename enable_if_c<
4017     is_scalar<S>::value,
4018     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4019 _1XX( S & a )
4020     {
4021     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4022     }
4023 template <class V>
4024 BOOST_QVM_INLINE_TRIVIAL
4025 typename enable_if_c<
4026     is_vec<V>::value && vec_traits<V>::dim>=1,
4027     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4028 _0XX( V const & a )
4029     {
4030     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4031     }
4032 template <class S>
4033 BOOST_QVM_INLINE_TRIVIAL
4034 typename enable_if_c<
4035     is_scalar<S>::value,
4036     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4037 _0XX( S const & a )
4038     {
4039     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4040     }
4041 template <class V>
4042 BOOST_QVM_INLINE_TRIVIAL
4043 typename enable_if_c<
4044     is_vec<V>::value && vec_traits<V>::dim>=1,
4045     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4046 _0XX( V & a )
4047     {
4048     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4049     }
4050 template <class S>
4051 BOOST_QVM_INLINE_TRIVIAL
4052 typename enable_if_c<
4053     is_scalar<S>::value,
4054     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4055 _0XX( S & a )
4056     {
4057     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4058     }
4059 template <class V>
4060 BOOST_QVM_INLINE_TRIVIAL
4061 typename enable_if_c<
4062     is_vec<V>::value && vec_traits<V>::dim>=4,
4063     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4064 WXX( V const & a )
4065     {
4066     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4067     }
4068 template <class V>
4069 BOOST_QVM_INLINE_TRIVIAL
4070 typename enable_if_c<
4071     is_vec<V>::value && vec_traits<V>::dim>=4,
4072     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4073 WXX( V & a )
4074     {
4075     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4076     }
4077 template <class V>
4078 BOOST_QVM_INLINE_TRIVIAL
4079 typename enable_if_c<
4080     is_vec<V>::value && vec_traits<V>::dim>=3,
4081     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4082 ZXX( V const & a )
4083     {
4084     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4085     }
4086 template <class V>
4087 BOOST_QVM_INLINE_TRIVIAL
4088 typename enable_if_c<
4089     is_vec<V>::value && vec_traits<V>::dim>=3,
4090     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4091 ZXX( V & a )
4092     {
4093     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4094     }
4095 template <class V>
4096 BOOST_QVM_INLINE_TRIVIAL
4097 typename enable_if_c<
4098     is_vec<V>::value && vec_traits<V>::dim>=2,
4099     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4100 YXX( V const & a )
4101     {
4102     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4103     }
4104 template <class V>
4105 BOOST_QVM_INLINE_TRIVIAL
4106 typename enable_if_c<
4107     is_vec<V>::value && vec_traits<V>::dim>=2,
4108     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4109 YXX( V & a )
4110     {
4111     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4112     }
4113 template <class V>
4114 BOOST_QVM_INLINE_TRIVIAL
4115 typename enable_if_c<
4116     is_vec<V>::value && vec_traits<V>::dim>=1,
4117     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4118 XXX( V const & a )
4119     {
4120     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4121     }
4122 template <class S>
4123 BOOST_QVM_INLINE_TRIVIAL
4124 typename enable_if_c<
4125     is_scalar<S>::value,
4126     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4127 XXX( S const & a )
4128     {
4129     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4130     }
4131 template <class V>
4132 BOOST_QVM_INLINE_TRIVIAL
4133 typename enable_if_c<
4134     is_vec<V>::value && vec_traits<V>::dim>=1,
4135     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4136 XXX( V & a )
4137     {
4138     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4139     }
4140 template <class S>
4141 BOOST_QVM_INLINE_TRIVIAL
4142 typename enable_if_c<
4143     is_scalar<S>::value,
4144     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4145 XXX( S & a )
4146     {
4147     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4148     }
4149 } }
4150 
4151 #endif