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
0005
0006
0007
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