Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:45

0001 #ifndef BOOST_QVM_GEN_SWIZZLE2_HPP_INCLUDED
0002 #define BOOST_QVM_GEN_SWIZZLE2_HPP_INCLUDED
0003 
0004 // Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
0005 
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 // This file was generated by a program. Do not edit manually.
0010 
0011 #include <boost/qvm/config.hpp>
0012 #include <boost/qvm/detail/swizzle_traits.hpp>
0013 #include <boost/qvm/enable_if.hpp>
0014 
0015 namespace boost { namespace qvm {
0016 
0017 BOOST_QVM_INLINE_TRIVIAL
0018 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > const &
0019 _11()
0020     {
0021     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > const *>(qvm_detail::get_null());
0022     }
0023 BOOST_QVM_INLINE_TRIVIAL
0024 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > const &
0025 _01()
0026     {
0027     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > const *>(qvm_detail::get_null());
0028     }
0029 template <class V>
0030 BOOST_QVM_INLINE_TRIVIAL
0031 typename enable_if_c<
0032     is_vec<V>::value && vec_traits<V>::dim>=4,
0033     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > const &>::type
0034 W1( V const & a )
0035     {
0036     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > const &>(a);
0037     }
0038 template <class V>
0039 BOOST_QVM_INLINE_TRIVIAL
0040 typename enable_if_c<
0041     is_vec<V>::value && vec_traits<V>::dim>=4,
0042     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > &>::type
0043 W1( V & a )
0044     {
0045     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > &>(a);
0046     }
0047 template <class V>
0048 BOOST_QVM_INLINE_TRIVIAL
0049 typename enable_if_c<
0050     is_vec<V>::value && vec_traits<V>::dim>=3,
0051     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > const &>::type
0052 Z1( V const & a )
0053     {
0054     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > const &>(a);
0055     }
0056 template <class V>
0057 BOOST_QVM_INLINE_TRIVIAL
0058 typename enable_if_c<
0059     is_vec<V>::value && vec_traits<V>::dim>=3,
0060     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > &>::type
0061 Z1( V & a )
0062     {
0063     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > &>(a);
0064     }
0065 template <class V>
0066 BOOST_QVM_INLINE_TRIVIAL
0067 typename enable_if_c<
0068     is_vec<V>::value && vec_traits<V>::dim>=2,
0069     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > const &>::type
0070 Y1( V const & a )
0071     {
0072     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > const &>(a);
0073     }
0074 template <class V>
0075 BOOST_QVM_INLINE_TRIVIAL
0076 typename enable_if_c<
0077     is_vec<V>::value && vec_traits<V>::dim>=2,
0078     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > &>::type
0079 Y1( V & a )
0080     {
0081     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > &>(a);
0082     }
0083 template <class V>
0084 BOOST_QVM_INLINE_TRIVIAL
0085 typename enable_if_c<
0086     is_vec<V>::value && vec_traits<V>::dim>=1,
0087     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>::type
0088 X1( V const & a )
0089     {
0090     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>(a);
0091     }
0092 template <class S>
0093 BOOST_QVM_INLINE_TRIVIAL
0094 typename enable_if_c<
0095     is_scalar<S>::value,
0096     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>::type
0097 X1( S const & a )
0098     {
0099     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>(a);
0100     }
0101 template <class V>
0102 BOOST_QVM_INLINE_TRIVIAL
0103 typename enable_if_c<
0104     is_vec<V>::value && vec_traits<V>::dim>=1,
0105     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>::type
0106 X1( V & a )
0107     {
0108     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>(a);
0109     }
0110 template <class S>
0111 BOOST_QVM_INLINE_TRIVIAL
0112 typename enable_if_c<
0113     is_scalar<S>::value,
0114     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>::type
0115 X1( S & a )
0116     {
0117     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>(a);
0118     }
0119 BOOST_QVM_INLINE_TRIVIAL
0120 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const &
0121 _10()
0122     {
0123     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
0124     }
0125 BOOST_QVM_INLINE_TRIVIAL
0126 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const &
0127 _00()
0128     {
0129     return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
0130     }
0131 template <class V>
0132 BOOST_QVM_INLINE_TRIVIAL
0133 typename enable_if_c<
0134     is_vec<V>::value && vec_traits<V>::dim>=4,
0135     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>::type
0136 W0( V const & a )
0137     {
0138     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>(a);
0139     }
0140 template <class V>
0141 BOOST_QVM_INLINE_TRIVIAL
0142 typename enable_if_c<
0143     is_vec<V>::value && vec_traits<V>::dim>=4,
0144     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>::type
0145 W0( V & a )
0146     {
0147     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>(a);
0148     }
0149 template <class V>
0150 BOOST_QVM_INLINE_TRIVIAL
0151 typename enable_if_c<
0152     is_vec<V>::value && vec_traits<V>::dim>=3,
0153     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>::type
0154 Z0( V const & a )
0155     {
0156     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>(a);
0157     }
0158 template <class V>
0159 BOOST_QVM_INLINE_TRIVIAL
0160 typename enable_if_c<
0161     is_vec<V>::value && vec_traits<V>::dim>=3,
0162     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>::type
0163 Z0( V & a )
0164     {
0165     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>(a);
0166     }
0167 template <class V>
0168 BOOST_QVM_INLINE_TRIVIAL
0169 typename enable_if_c<
0170     is_vec<V>::value && vec_traits<V>::dim>=2,
0171     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>::type
0172 Y0( V const & a )
0173     {
0174     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>(a);
0175     }
0176 template <class V>
0177 BOOST_QVM_INLINE_TRIVIAL
0178 typename enable_if_c<
0179     is_vec<V>::value && vec_traits<V>::dim>=2,
0180     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>::type
0181 Y0( V & a )
0182     {
0183     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>(a);
0184     }
0185 template <class V>
0186 BOOST_QVM_INLINE_TRIVIAL
0187 typename enable_if_c<
0188     is_vec<V>::value && vec_traits<V>::dim>=1,
0189     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>::type
0190 X0( V const & a )
0191     {
0192     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>(a);
0193     }
0194 template <class S>
0195 BOOST_QVM_INLINE_TRIVIAL
0196 typename enable_if_c<
0197     is_scalar<S>::value,
0198     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>::type
0199 X0( S const & a )
0200     {
0201     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>(a);
0202     }
0203 template <class V>
0204 BOOST_QVM_INLINE_TRIVIAL
0205 typename enable_if_c<
0206     is_vec<V>::value && vec_traits<V>::dim>=1,
0207     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>::type
0208 X0( V & a )
0209     {
0210     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(a);
0211     }
0212 template <class S>
0213 BOOST_QVM_INLINE_TRIVIAL
0214 typename enable_if_c<
0215     is_scalar<S>::value,
0216     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>::type
0217 X0( S & a )
0218     {
0219     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(a);
0220     }
0221 template <class V>
0222 BOOST_QVM_INLINE_TRIVIAL
0223 typename enable_if_c<
0224     is_vec<V>::value && vec_traits<V>::dim>=4,
0225     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>::type
0226 _1W( V const & a )
0227     {
0228     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>(a);
0229     }
0230 template <class V>
0231 BOOST_QVM_INLINE_TRIVIAL
0232 typename enable_if_c<
0233     is_vec<V>::value && vec_traits<V>::dim>=4,
0234     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>::type
0235 _1W( V & a )
0236     {
0237     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>(a);
0238     }
0239 template <class V>
0240 BOOST_QVM_INLINE_TRIVIAL
0241 typename enable_if_c<
0242     is_vec<V>::value && vec_traits<V>::dim>=4,
0243     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>::type
0244 _0W( V const & a )
0245     {
0246     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>(a);
0247     }
0248 template <class V>
0249 BOOST_QVM_INLINE_TRIVIAL
0250 typename enable_if_c<
0251     is_vec<V>::value && vec_traits<V>::dim>=4,
0252     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>::type
0253 _0W( V & a )
0254     {
0255     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>(a);
0256     }
0257 template <class V>
0258 BOOST_QVM_INLINE_TRIVIAL
0259 typename enable_if_c<
0260     is_vec<V>::value && vec_traits<V>::dim>=4,
0261     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > const &>::type
0262 WW( V const & a )
0263     {
0264     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > const &>(a);
0265     }
0266 template <class V>
0267 BOOST_QVM_INLINE_TRIVIAL
0268 typename enable_if_c<
0269     is_vec<V>::value && vec_traits<V>::dim>=4,
0270     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>::type
0271 WW( V & a )
0272     {
0273     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>(a);
0274     }
0275 template <class V>
0276 BOOST_QVM_INLINE_TRIVIAL
0277 typename enable_if_c<
0278     is_vec<V>::value && vec_traits<V>::dim>=4,
0279     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > const &>::type
0280 ZW( V const & a )
0281     {
0282     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > const &>(a);
0283     }
0284 template <class V>
0285 BOOST_QVM_INLINE_TRIVIAL
0286 typename enable_if_c<
0287     is_vec<V>::value && vec_traits<V>::dim>=4,
0288     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>::type
0289 ZW( V & a )
0290     {
0291     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>(a);
0292     }
0293 template <class V>
0294 BOOST_QVM_INLINE_TRIVIAL
0295 typename enable_if_c<
0296     is_vec<V>::value && vec_traits<V>::dim>=4,
0297     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > const &>::type
0298 YW( V const & a )
0299     {
0300     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > const &>(a);
0301     }
0302 template <class V>
0303 BOOST_QVM_INLINE_TRIVIAL
0304 typename enable_if_c<
0305     is_vec<V>::value && vec_traits<V>::dim>=4,
0306     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>::type
0307 YW( V & a )
0308     {
0309     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>(a);
0310     }
0311 template <class V>
0312 BOOST_QVM_INLINE_TRIVIAL
0313 typename enable_if_c<
0314     is_vec<V>::value && vec_traits<V>::dim>=4,
0315     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > const &>::type
0316 XW( V const & a )
0317     {
0318     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > const &>(a);
0319     }
0320 template <class V>
0321 BOOST_QVM_INLINE_TRIVIAL
0322 typename enable_if_c<
0323     is_vec<V>::value && vec_traits<V>::dim>=4,
0324     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>::type
0325 XW( V & a )
0326     {
0327     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>(a);
0328     }
0329 template <class V>
0330 BOOST_QVM_INLINE_TRIVIAL
0331 typename enable_if_c<
0332     is_vec<V>::value && vec_traits<V>::dim>=3,
0333     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>::type
0334 _1Z( V const & a )
0335     {
0336     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>(a);
0337     }
0338 template <class V>
0339 BOOST_QVM_INLINE_TRIVIAL
0340 typename enable_if_c<
0341     is_vec<V>::value && vec_traits<V>::dim>=3,
0342     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>::type
0343 _1Z( V & a )
0344     {
0345     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>(a);
0346     }
0347 template <class V>
0348 BOOST_QVM_INLINE_TRIVIAL
0349 typename enable_if_c<
0350     is_vec<V>::value && vec_traits<V>::dim>=3,
0351     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>::type
0352 _0Z( V const & a )
0353     {
0354     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>(a);
0355     }
0356 template <class V>
0357 BOOST_QVM_INLINE_TRIVIAL
0358 typename enable_if_c<
0359     is_vec<V>::value && vec_traits<V>::dim>=3,
0360     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>::type
0361 _0Z( V & a )
0362     {
0363     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>(a);
0364     }
0365 template <class V>
0366 BOOST_QVM_INLINE_TRIVIAL
0367 typename enable_if_c<
0368     is_vec<V>::value && vec_traits<V>::dim>=4,
0369     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>::type
0370 WZ( V const & a )
0371     {
0372     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>(a);
0373     }
0374 template <class V>
0375 BOOST_QVM_INLINE_TRIVIAL
0376 typename enable_if_c<
0377     is_vec<V>::value && vec_traits<V>::dim>=4,
0378     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>::type
0379 WZ( V & a )
0380     {
0381     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>(a);
0382     }
0383 template <class V>
0384 BOOST_QVM_INLINE_TRIVIAL
0385 typename enable_if_c<
0386     is_vec<V>::value && vec_traits<V>::dim>=3,
0387     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > const &>::type
0388 ZZ( V const & a )
0389     {
0390     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > const &>(a);
0391     }
0392 template <class V>
0393 BOOST_QVM_INLINE_TRIVIAL
0394 typename enable_if_c<
0395     is_vec<V>::value && vec_traits<V>::dim>=3,
0396     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > &>::type
0397 ZZ( V & a )
0398     {
0399     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > &>(a);
0400     }
0401 template <class V>
0402 BOOST_QVM_INLINE_TRIVIAL
0403 typename enable_if_c<
0404     is_vec<V>::value && vec_traits<V>::dim>=3,
0405     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>::type
0406 YZ( V const & a )
0407     {
0408     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>(a);
0409     }
0410 template <class V>
0411 BOOST_QVM_INLINE_TRIVIAL
0412 typename enable_if_c<
0413     is_vec<V>::value && vec_traits<V>::dim>=3,
0414     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>::type
0415 YZ( V & a )
0416     {
0417     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>(a);
0418     }
0419 template <class V>
0420 BOOST_QVM_INLINE_TRIVIAL
0421 typename enable_if_c<
0422     is_vec<V>::value && vec_traits<V>::dim>=3,
0423     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > const &>::type
0424 XZ( V const & a )
0425     {
0426     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > const &>(a);
0427     }
0428 template <class V>
0429 BOOST_QVM_INLINE_TRIVIAL
0430 typename enable_if_c<
0431     is_vec<V>::value && vec_traits<V>::dim>=3,
0432     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > &>::type
0433 XZ( V & a )
0434     {
0435     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > &>(a);
0436     }
0437 template <class V>
0438 BOOST_QVM_INLINE_TRIVIAL
0439 typename enable_if_c<
0440     is_vec<V>::value && vec_traits<V>::dim>=2,
0441     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>::type
0442 _1Y( V const & a )
0443     {
0444     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>(a);
0445     }
0446 template <class V>
0447 BOOST_QVM_INLINE_TRIVIAL
0448 typename enable_if_c<
0449     is_vec<V>::value && vec_traits<V>::dim>=2,
0450     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>::type
0451 _1Y( V & a )
0452     {
0453     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>(a);
0454     }
0455 template <class V>
0456 BOOST_QVM_INLINE_TRIVIAL
0457 typename enable_if_c<
0458     is_vec<V>::value && vec_traits<V>::dim>=2,
0459     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>::type
0460 _0Y( V const & a )
0461     {
0462     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>(a);
0463     }
0464 template <class V>
0465 BOOST_QVM_INLINE_TRIVIAL
0466 typename enable_if_c<
0467     is_vec<V>::value && vec_traits<V>::dim>=2,
0468     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>::type
0469 _0Y( V & a )
0470     {
0471     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>(a);
0472     }
0473 template <class V>
0474 BOOST_QVM_INLINE_TRIVIAL
0475 typename enable_if_c<
0476     is_vec<V>::value && vec_traits<V>::dim>=4,
0477     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>::type
0478 WY( V const & a )
0479     {
0480     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>(a);
0481     }
0482 template <class V>
0483 BOOST_QVM_INLINE_TRIVIAL
0484 typename enable_if_c<
0485     is_vec<V>::value && vec_traits<V>::dim>=4,
0486     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>::type
0487 WY( V & a )
0488     {
0489     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>(a);
0490     }
0491 template <class V>
0492 BOOST_QVM_INLINE_TRIVIAL
0493 typename enable_if_c<
0494     is_vec<V>::value && vec_traits<V>::dim>=3,
0495     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>::type
0496 ZY( V const & a )
0497     {
0498     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>(a);
0499     }
0500 template <class V>
0501 BOOST_QVM_INLINE_TRIVIAL
0502 typename enable_if_c<
0503     is_vec<V>::value && vec_traits<V>::dim>=3,
0504     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>::type
0505 ZY( V & a )
0506     {
0507     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>(a);
0508     }
0509 template <class V>
0510 BOOST_QVM_INLINE_TRIVIAL
0511 typename enable_if_c<
0512     is_vec<V>::value && vec_traits<V>::dim>=2,
0513     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>::type
0514 YY( V const & a )
0515     {
0516     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>(a);
0517     }
0518 template <class V>
0519 BOOST_QVM_INLINE_TRIVIAL
0520 typename enable_if_c<
0521     is_vec<V>::value && vec_traits<V>::dim>=2,
0522     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>::type
0523 YY( V & a )
0524     {
0525     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>(a);
0526     }
0527 template <class V>
0528 BOOST_QVM_INLINE_TRIVIAL
0529 typename enable_if_c<
0530     is_vec<V>::value && vec_traits<V>::dim>=2,
0531     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>::type
0532 XY( V const & a )
0533     {
0534     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>(a);
0535     }
0536 template <class V>
0537 BOOST_QVM_INLINE_TRIVIAL
0538 typename enable_if_c<
0539     is_vec<V>::value && vec_traits<V>::dim>=2,
0540     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>::type
0541 XY( V & a )
0542     {
0543     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>(a);
0544     }
0545 template <class V>
0546 BOOST_QVM_INLINE_TRIVIAL
0547 typename enable_if_c<
0548     is_vec<V>::value && vec_traits<V>::dim>=1,
0549     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>::type
0550 _1X( V const & a )
0551     {
0552     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>(a);
0553     }
0554 template <class S>
0555 BOOST_QVM_INLINE_TRIVIAL
0556 typename enable_if_c<
0557     is_scalar<S>::value,
0558     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>::type
0559 _1X( S const & a )
0560     {
0561     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>(a);
0562     }
0563 template <class V>
0564 BOOST_QVM_INLINE_TRIVIAL
0565 typename enable_if_c<
0566     is_vec<V>::value && vec_traits<V>::dim>=1,
0567     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>::type
0568 _1X( V & a )
0569     {
0570     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(a);
0571     }
0572 template <class S>
0573 BOOST_QVM_INLINE_TRIVIAL
0574 typename enable_if_c<
0575     is_scalar<S>::value,
0576     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>::type
0577 _1X( S & a )
0578     {
0579     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(a);
0580     }
0581 template <class V>
0582 BOOST_QVM_INLINE_TRIVIAL
0583 typename enable_if_c<
0584     is_vec<V>::value && vec_traits<V>::dim>=1,
0585     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>::type
0586 _0X( V const & a )
0587     {
0588     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>(a);
0589     }
0590 template <class S>
0591 BOOST_QVM_INLINE_TRIVIAL
0592 typename enable_if_c<
0593     is_scalar<S>::value,
0594     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>::type
0595 _0X( S const & a )
0596     {
0597     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>(a);
0598     }
0599 template <class V>
0600 BOOST_QVM_INLINE_TRIVIAL
0601 typename enable_if_c<
0602     is_vec<V>::value && vec_traits<V>::dim>=1,
0603     qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>::type
0604 _0X( V & a )
0605     {
0606     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(a);
0607     }
0608 template <class S>
0609 BOOST_QVM_INLINE_TRIVIAL
0610 typename enable_if_c<
0611     is_scalar<S>::value,
0612     qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>::type
0613 _0X( S & a )
0614     {
0615     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(a);
0616     }
0617 template <class V>
0618 BOOST_QVM_INLINE_TRIVIAL
0619 typename enable_if_c<
0620     is_vec<V>::value && vec_traits<V>::dim>=4,
0621     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>::type
0622 WX( V const & a )
0623     {
0624     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>(a);
0625     }
0626 template <class V>
0627 BOOST_QVM_INLINE_TRIVIAL
0628 typename enable_if_c<
0629     is_vec<V>::value && vec_traits<V>::dim>=4,
0630     qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>::type
0631 WX( V & a )
0632     {
0633     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>(a);
0634     }
0635 template <class V>
0636 BOOST_QVM_INLINE_TRIVIAL
0637 typename enable_if_c<
0638     is_vec<V>::value && vec_traits<V>::dim>=3,
0639     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>::type
0640 ZX( V const & a )
0641     {
0642     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>(a);
0643     }
0644 template <class V>
0645 BOOST_QVM_INLINE_TRIVIAL
0646 typename enable_if_c<
0647     is_vec<V>::value && vec_traits<V>::dim>=3,
0648     qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>::type
0649 ZX( V & a )
0650     {
0651     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>(a);
0652     }
0653 template <class V>
0654 BOOST_QVM_INLINE_TRIVIAL
0655 typename enable_if_c<
0656     is_vec<V>::value && vec_traits<V>::dim>=2,
0657     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>::type
0658 YX( V const & a )
0659     {
0660     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>(a);
0661     }
0662 template <class V>
0663 BOOST_QVM_INLINE_TRIVIAL
0664 typename enable_if_c<
0665     is_vec<V>::value && vec_traits<V>::dim>=2,
0666     qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>::type
0667 YX( V & a )
0668     {
0669     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>(a);
0670     }
0671 template <class V>
0672 BOOST_QVM_INLINE_TRIVIAL
0673 typename enable_if_c<
0674     is_vec<V>::value && vec_traits<V>::dim>=1,
0675     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>::type
0676 XX( V const & a )
0677     {
0678     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>(a);
0679     }
0680 template <class S>
0681 BOOST_QVM_INLINE_TRIVIAL
0682 typename enable_if_c<
0683     is_scalar<S>::value,
0684     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>::type
0685 XX( S const & a )
0686     {
0687     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>(a);
0688     }
0689 template <class V>
0690 BOOST_QVM_INLINE_TRIVIAL
0691 typename enable_if_c<
0692     is_vec<V>::value && vec_traits<V>::dim>=1,
0693     qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>::type
0694 XX( V & a )
0695     {
0696     return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
0697     }
0698 template <class S>
0699 BOOST_QVM_INLINE_TRIVIAL
0700 typename enable_if_c<
0701     is_scalar<S>::value,
0702     qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>::type
0703 XX( S & a )
0704     {
0705     return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
0706     }
0707 } }
0708 
0709 #endif