Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 08:51:17

0001 #ifndef BOOST_QVM_GEN_SWIZZLE2_HPP_INCLUDED
0002 #define BOOST_QVM_GEN_SWIZZLE2_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 > > > const &
0017 _11()
0018     {
0019     return *reinterpret_cast<qvm_detail::sw01_<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 > > > const &
0023 _01()
0024     {
0025     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,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 > > > const &>::type
0032 W1( V const & a )
0033     {
0034     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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 > > > &>::type
0041 W1( V & a )
0042     {
0043     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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 > > > const &>::type
0050 Z1( V const & a )
0051     {
0052     return reinterpret_cast<qvm_detail::sw_<V,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 > > > &>::type
0059 Z1( V & a )
0060     {
0061     return reinterpret_cast<qvm_detail::sw_<V,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 > > > const &>::type
0068 Y1( V const & a )
0069     {
0070     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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 > > > &>::type
0077 Y1( V & a )
0078     {
0079     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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 > > > const &>::type
0086 X1( V const & a )
0087     {
0088     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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 > > > const &>::type
0095 X1( S const & a )
0096     {
0097     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,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 > > > &>::type
0104 X1( V & a )
0105     {
0106     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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 > > > &>::type
0113 X1( S & a )
0114     {
0115     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,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 > > > const &
0119 _10()
0120     {
0121     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > 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 > > > const &
0125 _00()
0126     {
0127     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > 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 > > > const &>::type
0134 W0( V const & a )
0135     {
0136     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > 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 > > > &>::type
0143 W0( V & a )
0144     {
0145     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>(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 > > > const &>::type
0152 Z0( V const & a )
0153     {
0154     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > 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 > > > &>::type
0161 Z0( V & a )
0162     {
0163     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>(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 > > > const &>::type
0170 Y0( V const & a )
0171     {
0172     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > 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 > > > &>::type
0179 Y0( V & a )
0180     {
0181     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>(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 > > > const &>::type
0188 X0( V const & a )
0189     {
0190     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > 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 > > > const &>::type
0197 X0( S const & a )
0198     {
0199     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > 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 > > > &>::type
0206 X0( V & a )
0207     {
0208     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(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 > > > &>::type
0215 X0( S & a )
0216     {
0217     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(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 > > > const &>::type
0224 _1W( V const & a )
0225     {
0226     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > 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 > > > &>::type
0233 _1W( V & a )
0234     {
0235     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>(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 > > > const &>::type
0242 _0W( V const & a )
0243     {
0244     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > 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 > > > &>::type
0251 _0W( V & a )
0252     {
0253     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>(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 > > > const &>::type
0260 WW( V const & a )
0261     {
0262     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > 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 > > > &>::type
0269 WW( V & a )
0270     {
0271     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>(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 > > > const &>::type
0278 ZW( V const & a )
0279     {
0280     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > 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 > > > &>::type
0287 ZW( V & a )
0288     {
0289     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>(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 > > > const &>::type
0296 YW( V const & a )
0297     {
0298     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > 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 > > > &>::type
0305 YW( V & a )
0306     {
0307     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>(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 > > > const &>::type
0314 XW( V const & a )
0315     {
0316     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > 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 > > > &>::type
0323 XW( V & a )
0324     {
0325     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>(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 > > > const &>::type
0332 _1Z( V const & a )
0333     {
0334     return reinterpret_cast<qvm_detail::sw_<V,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 > > > &>::type
0341 _1Z( V & a )
0342     {
0343     return reinterpret_cast<qvm_detail::sw_<V,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 > > > const &>::type
0350 _0Z( V const & a )
0351     {
0352     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,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 > > > &>::type
0359 _0Z( V & a )
0360     {
0361     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,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 > > > const &>::type
0368 WZ( V const & a )
0369     {
0370     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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 > > > &>::type
0377 WZ( V & a )
0378     {
0379     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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 > > > const &>::type
0386 ZZ( V const & a )
0387     {
0388     return reinterpret_cast<qvm_detail::sw_<V,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 > > > &>::type
0395 ZZ( V & a )
0396     {
0397     return reinterpret_cast<qvm_detail::sw_<V,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 > > > const &>::type
0404 YZ( V const & a )
0405     {
0406     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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 > > > &>::type
0413 YZ( V & a )
0414     {
0415     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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 > > > const &>::type
0422 XZ( V const & a )
0423     {
0424     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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 > > > &>::type
0431 XZ( V & a )
0432     {
0433     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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 > > > const &>::type
0440 _1Y( V const & a )
0441     {
0442     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > 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 > > > &>::type
0449 _1Y( V & a )
0450     {
0451     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>(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 > > > const &>::type
0458 _0Y( V const & a )
0459     {
0460     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > 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 > > > &>::type
0467 _0Y( V & a )
0468     {
0469     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>(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 > > > const &>::type
0476 WY( V const & a )
0477     {
0478     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > 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 > > > &>::type
0485 WY( V & a )
0486     {
0487     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>(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 > > > const &>::type
0494 ZY( V const & a )
0495     {
0496     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > 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 > > > &>::type
0503 ZY( V & a )
0504     {
0505     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>(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 > > > const &>::type
0512 YY( V const & a )
0513     {
0514     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > 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 > > > &>::type
0521 YY( V & a )
0522     {
0523     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>(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 > > > const &>::type
0530 XY( V const & a )
0531     {
0532     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > 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 > > > &>::type
0539 XY( V & a )
0540     {
0541     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>(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 > > > const &>::type
0548 _1X( V const & a )
0549     {
0550     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > 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 > > > const &>::type
0557 _1X( S const & a )
0558     {
0559     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > 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 > > > &>::type
0566 _1X( V & a )
0567     {
0568     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(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 > > > &>::type
0575 _1X( S & a )
0576     {
0577     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(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 > > > const &>::type
0584 _0X( V const & a )
0585     {
0586     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > 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 > > > const &>::type
0593 _0X( S const & a )
0594     {
0595     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > 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 > > > &>::type
0602 _0X( V & a )
0603     {
0604     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(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 > > > &>::type
0611 _0X( S & a )
0612     {
0613     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(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 > > > const &>::type
0620 WX( V const & a )
0621     {
0622     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > 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 > > > &>::type
0629 WX( V & a )
0630     {
0631     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>(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 > > > const &>::type
0638 ZX( V const & a )
0639     {
0640     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > 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 > > > &>::type
0647 ZX( V & a )
0648     {
0649     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>(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 > > > const &>::type
0656 YX( V const & a )
0657     {
0658     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > 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 > > > &>::type
0665 YX( V & a )
0666     {
0667     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>(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 > > > const &>::type
0674 XX( V const & a )
0675     {
0676     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > 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 > > > const &>::type
0683 XX( S const & a )
0684     {
0685     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > 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 > > > &>::type
0692 XX( V & a )
0693     {
0694     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(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 > > > &>::type
0701 XX( S & a )
0702     {
0703     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
0704     }
0705 } }
0706 
0707 #endif