]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/qvm/gen/swizzle2.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / qvm / gen / swizzle2.hpp
CommitLineData
92f5a8d4
TL
1//Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.
2
3//Distributed under the Boost Software License, Version 1.0. (See accompanying
4//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6#ifndef BOOST_QVM_9673ED9162F6768D4F74A4AD0576876
7#define BOOST_QVM_9673ED9162F6768D4F74A4AD0576876
8
9//This file was generated by a program. Do not edit manually.
10
11#include <boost/qvm/detail/swizzle_traits.hpp>
12#include <boost/qvm/enable_if.hpp>
13#include <boost/qvm/inline.hpp>
14
15namespace
16boost
17 {
18 namespace
19 qvm
20 {
21 BOOST_QVM_INLINE_TRIVIAL
22 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > const &
23 _11()
24 {
25 return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > const *>(qvm_detail::get_null());
26 }
27 BOOST_QVM_INLINE_TRIVIAL
28 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > const &
29 _01()
30 {
31 return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > const *>(qvm_detail::get_null());
32 }
33 template <class V>
34 BOOST_QVM_INLINE_TRIVIAL
35 typename enable_if_c<
36 is_vec<V>::value && vec_traits<V>::dim>=4,
37 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > const &>::type
38 W1( V const & a )
39 {
40 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > const &>(a);
41 }
42 template <class V>
43 BOOST_QVM_INLINE_TRIVIAL
44 typename enable_if_c<
45 is_vec<V>::value && vec_traits<V>::dim>=4,
46 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > &>::type
47 W1( V & a )
48 {
49 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > &>(a);
50 }
51 template <class V>
52 BOOST_QVM_INLINE_TRIVIAL
53 typename enable_if_c<
54 is_vec<V>::value && vec_traits<V>::dim>=3,
55 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > const &>::type
56 Z1( V const & a )
57 {
58 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > const &>(a);
59 }
60 template <class V>
61 BOOST_QVM_INLINE_TRIVIAL
62 typename enable_if_c<
63 is_vec<V>::value && vec_traits<V>::dim>=3,
64 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > &>::type
65 Z1( V & a )
66 {
67 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > &>(a);
68 }
69 template <class V>
70 BOOST_QVM_INLINE_TRIVIAL
71 typename enable_if_c<
72 is_vec<V>::value && vec_traits<V>::dim>=2,
73 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > const &>::type
74 Y1( V const & a )
75 {
76 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > const &>(a);
77 }
78 template <class V>
79 BOOST_QVM_INLINE_TRIVIAL
80 typename enable_if_c<
81 is_vec<V>::value && vec_traits<V>::dim>=2,
82 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > &>::type
83 Y1( V & a )
84 {
85 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > &>(a);
86 }
87 template <class V>
88 BOOST_QVM_INLINE_TRIVIAL
89 typename enable_if_c<
90 is_vec<V>::value && vec_traits<V>::dim>=1,
91 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>::type
92 X1( V const & a )
93 {
94 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>(a);
95 }
96 template <class S>
97 BOOST_QVM_INLINE_TRIVIAL
98 typename enable_if_c<
99 is_scalar<S>::value,
100 qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>::type
101 X1( S const & a )
102 {
103 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > const &>(a);
104 }
105 template <class V>
106 BOOST_QVM_INLINE_TRIVIAL
107 typename enable_if_c<
108 is_vec<V>::value && vec_traits<V>::dim>=1,
109 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>::type
110 X1( V & a )
111 {
112 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>(a);
113 }
114 template <class S>
115 BOOST_QVM_INLINE_TRIVIAL
116 typename enable_if_c<
117 is_scalar<S>::value,
118 qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>::type
119 X1( S & a )
120 {
121 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>(a);
122 }
123 BOOST_QVM_INLINE_TRIVIAL
124 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const &
125 _10()
126 {
127 return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
128 }
129 BOOST_QVM_INLINE_TRIVIAL
130 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const &
131 _00()
132 {
133 return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
134 }
135 template <class V>
136 BOOST_QVM_INLINE_TRIVIAL
137 typename enable_if_c<
138 is_vec<V>::value && vec_traits<V>::dim>=4,
139 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>::type
140 W0( V const & a )
141 {
142 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>(a);
143 }
144 template <class V>
145 BOOST_QVM_INLINE_TRIVIAL
146 typename enable_if_c<
147 is_vec<V>::value && vec_traits<V>::dim>=4,
148 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>::type
149 W0( V & a )
150 {
151 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>(a);
152 }
153 template <class V>
154 BOOST_QVM_INLINE_TRIVIAL
155 typename enable_if_c<
156 is_vec<V>::value && vec_traits<V>::dim>=3,
157 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>::type
158 Z0( V const & a )
159 {
160 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>(a);
161 }
162 template <class V>
163 BOOST_QVM_INLINE_TRIVIAL
164 typename enable_if_c<
165 is_vec<V>::value && vec_traits<V>::dim>=3,
166 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>::type
167 Z0( V & a )
168 {
169 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>(a);
170 }
171 template <class V>
172 BOOST_QVM_INLINE_TRIVIAL
173 typename enable_if_c<
174 is_vec<V>::value && vec_traits<V>::dim>=2,
175 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>::type
176 Y0( V const & a )
177 {
178 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>(a);
179 }
180 template <class V>
181 BOOST_QVM_INLINE_TRIVIAL
182 typename enable_if_c<
183 is_vec<V>::value && vec_traits<V>::dim>=2,
184 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>::type
185 Y0( V & a )
186 {
187 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>(a);
188 }
189 template <class V>
190 BOOST_QVM_INLINE_TRIVIAL
191 typename enable_if_c<
192 is_vec<V>::value && vec_traits<V>::dim>=1,
193 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>::type
194 X0( V const & a )
195 {
196 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>(a);
197 }
198 template <class S>
199 BOOST_QVM_INLINE_TRIVIAL
200 typename enable_if_c<
201 is_scalar<S>::value,
202 qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>::type
203 X0( S const & a )
204 {
205 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>(a);
206 }
207 template <class V>
208 BOOST_QVM_INLINE_TRIVIAL
209 typename enable_if_c<
210 is_vec<V>::value && vec_traits<V>::dim>=1,
211 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>::type
212 X0( V & a )
213 {
214 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(a);
215 }
216 template <class S>
217 BOOST_QVM_INLINE_TRIVIAL
218 typename enable_if_c<
219 is_scalar<S>::value,
220 qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>::type
221 X0( S & a )
222 {
223 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>(a);
224 }
225 template <class V>
226 BOOST_QVM_INLINE_TRIVIAL
227 typename enable_if_c<
228 is_vec<V>::value && vec_traits<V>::dim>=4,
229 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>::type
230 _1W( V const & a )
231 {
232 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>(a);
233 }
234 template <class V>
235 BOOST_QVM_INLINE_TRIVIAL
236 typename enable_if_c<
237 is_vec<V>::value && vec_traits<V>::dim>=4,
238 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>::type
239 _1W( V & a )
240 {
241 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>(a);
242 }
243 template <class V>
244 BOOST_QVM_INLINE_TRIVIAL
245 typename enable_if_c<
246 is_vec<V>::value && vec_traits<V>::dim>=4,
247 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>::type
248 _0W( V const & a )
249 {
250 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>(a);
251 }
252 template <class V>
253 BOOST_QVM_INLINE_TRIVIAL
254 typename enable_if_c<
255 is_vec<V>::value && vec_traits<V>::dim>=4,
256 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>::type
257 _0W( V & a )
258 {
259 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>(a);
260 }
261 template <class V>
262 BOOST_QVM_INLINE_TRIVIAL
263 typename enable_if_c<
264 is_vec<V>::value && vec_traits<V>::dim>=4,
265 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > const &>::type
266 WW( V const & a )
267 {
268 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > const &>(a);
269 }
270 template <class V>
271 BOOST_QVM_INLINE_TRIVIAL
272 typename enable_if_c<
273 is_vec<V>::value && vec_traits<V>::dim>=4,
274 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>::type
275 WW( V & a )
276 {
277 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > &>(a);
278 }
279 template <class V>
280 BOOST_QVM_INLINE_TRIVIAL
281 typename enable_if_c<
282 is_vec<V>::value && vec_traits<V>::dim>=4,
283 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > const &>::type
284 ZW( V const & a )
285 {
286 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > const &>(a);
287 }
288 template <class V>
289 BOOST_QVM_INLINE_TRIVIAL
290 typename enable_if_c<
291 is_vec<V>::value && vec_traits<V>::dim>=4,
292 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>::type
293 ZW( V & a )
294 {
295 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > &>(a);
296 }
297 template <class V>
298 BOOST_QVM_INLINE_TRIVIAL
299 typename enable_if_c<
300 is_vec<V>::value && vec_traits<V>::dim>=4,
301 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > const &>::type
302 YW( V const & a )
303 {
304 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > const &>(a);
305 }
306 template <class V>
307 BOOST_QVM_INLINE_TRIVIAL
308 typename enable_if_c<
309 is_vec<V>::value && vec_traits<V>::dim>=4,
310 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>::type
311 YW( V & a )
312 {
313 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > &>(a);
314 }
315 template <class V>
316 BOOST_QVM_INLINE_TRIVIAL
317 typename enable_if_c<
318 is_vec<V>::value && vec_traits<V>::dim>=4,
319 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > const &>::type
320 XW( V const & a )
321 {
322 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > const &>(a);
323 }
324 template <class V>
325 BOOST_QVM_INLINE_TRIVIAL
326 typename enable_if_c<
327 is_vec<V>::value && vec_traits<V>::dim>=4,
328 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>::type
329 XW( V & a )
330 {
331 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > &>(a);
332 }
333 template <class V>
334 BOOST_QVM_INLINE_TRIVIAL
335 typename enable_if_c<
336 is_vec<V>::value && vec_traits<V>::dim>=3,
337 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>::type
338 _1Z( V const & a )
339 {
340 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>(a);
341 }
342 template <class V>
343 BOOST_QVM_INLINE_TRIVIAL
344 typename enable_if_c<
345 is_vec<V>::value && vec_traits<V>::dim>=3,
346 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>::type
347 _1Z( V & a )
348 {
349 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>(a);
350 }
351 template <class V>
352 BOOST_QVM_INLINE_TRIVIAL
353 typename enable_if_c<
354 is_vec<V>::value && vec_traits<V>::dim>=3,
355 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>::type
356 _0Z( V const & a )
357 {
358 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>(a);
359 }
360 template <class V>
361 BOOST_QVM_INLINE_TRIVIAL
362 typename enable_if_c<
363 is_vec<V>::value && vec_traits<V>::dim>=3,
364 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>::type
365 _0Z( V & a )
366 {
367 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>(a);
368 }
369 template <class V>
370 BOOST_QVM_INLINE_TRIVIAL
371 typename enable_if_c<
372 is_vec<V>::value && vec_traits<V>::dim>=4,
373 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>::type
374 WZ( V const & a )
375 {
376 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>(a);
377 }
378 template <class V>
379 BOOST_QVM_INLINE_TRIVIAL
380 typename enable_if_c<
381 is_vec<V>::value && vec_traits<V>::dim>=4,
382 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>::type
383 WZ( V & a )
384 {
385 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>(a);
386 }
387 template <class V>
388 BOOST_QVM_INLINE_TRIVIAL
389 typename enable_if_c<
390 is_vec<V>::value && vec_traits<V>::dim>=3,
391 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > const &>::type
392 ZZ( V const & a )
393 {
394 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > const &>(a);
395 }
396 template <class V>
397 BOOST_QVM_INLINE_TRIVIAL
398 typename enable_if_c<
399 is_vec<V>::value && vec_traits<V>::dim>=3,
400 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > &>::type
401 ZZ( V & a )
402 {
403 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > &>(a);
404 }
405 template <class V>
406 BOOST_QVM_INLINE_TRIVIAL
407 typename enable_if_c<
408 is_vec<V>::value && vec_traits<V>::dim>=3,
409 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>::type
410 YZ( V const & a )
411 {
412 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>(a);
413 }
414 template <class V>
415 BOOST_QVM_INLINE_TRIVIAL
416 typename enable_if_c<
417 is_vec<V>::value && vec_traits<V>::dim>=3,
418 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>::type
419 YZ( V & a )
420 {
421 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>(a);
422 }
423 template <class V>
424 BOOST_QVM_INLINE_TRIVIAL
425 typename enable_if_c<
426 is_vec<V>::value && vec_traits<V>::dim>=3,
427 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > const &>::type
428 XZ( V const & a )
429 {
430 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > const &>(a);
431 }
432 template <class V>
433 BOOST_QVM_INLINE_TRIVIAL
434 typename enable_if_c<
435 is_vec<V>::value && vec_traits<V>::dim>=3,
436 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > &>::type
437 XZ( V & a )
438 {
439 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > &>(a);
440 }
441 template <class V>
442 BOOST_QVM_INLINE_TRIVIAL
443 typename enable_if_c<
444 is_vec<V>::value && vec_traits<V>::dim>=2,
445 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>::type
446 _1Y( V const & a )
447 {
448 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>(a);
449 }
450 template <class V>
451 BOOST_QVM_INLINE_TRIVIAL
452 typename enable_if_c<
453 is_vec<V>::value && vec_traits<V>::dim>=2,
454 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>::type
455 _1Y( V & a )
456 {
457 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>(a);
458 }
459 template <class V>
460 BOOST_QVM_INLINE_TRIVIAL
461 typename enable_if_c<
462 is_vec<V>::value && vec_traits<V>::dim>=2,
463 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>::type
464 _0Y( V const & a )
465 {
466 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>(a);
467 }
468 template <class V>
469 BOOST_QVM_INLINE_TRIVIAL
470 typename enable_if_c<
471 is_vec<V>::value && vec_traits<V>::dim>=2,
472 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>::type
473 _0Y( V & a )
474 {
475 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>(a);
476 }
477 template <class V>
478 BOOST_QVM_INLINE_TRIVIAL
479 typename enable_if_c<
480 is_vec<V>::value && vec_traits<V>::dim>=4,
481 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>::type
482 WY( V const & a )
483 {
484 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>(a);
485 }
486 template <class V>
487 BOOST_QVM_INLINE_TRIVIAL
488 typename enable_if_c<
489 is_vec<V>::value && vec_traits<V>::dim>=4,
490 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>::type
491 WY( V & a )
492 {
493 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>(a);
494 }
495 template <class V>
496 BOOST_QVM_INLINE_TRIVIAL
497 typename enable_if_c<
498 is_vec<V>::value && vec_traits<V>::dim>=3,
499 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>::type
500 ZY( V const & a )
501 {
502 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>(a);
503 }
504 template <class V>
505 BOOST_QVM_INLINE_TRIVIAL
506 typename enable_if_c<
507 is_vec<V>::value && vec_traits<V>::dim>=3,
508 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>::type
509 ZY( V & a )
510 {
511 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>(a);
512 }
513 template <class V>
514 BOOST_QVM_INLINE_TRIVIAL
515 typename enable_if_c<
516 is_vec<V>::value && vec_traits<V>::dim>=2,
517 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>::type
518 YY( V const & a )
519 {
520 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>(a);
521 }
522 template <class V>
523 BOOST_QVM_INLINE_TRIVIAL
524 typename enable_if_c<
525 is_vec<V>::value && vec_traits<V>::dim>=2,
526 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>::type
527 YY( V & a )
528 {
529 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>(a);
530 }
531 template <class V>
532 BOOST_QVM_INLINE_TRIVIAL
533 typename enable_if_c<
534 is_vec<V>::value && vec_traits<V>::dim>=2,
535 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>::type
536 XY( V const & a )
537 {
538 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>(a);
539 }
540 template <class V>
541 BOOST_QVM_INLINE_TRIVIAL
542 typename enable_if_c<
543 is_vec<V>::value && vec_traits<V>::dim>=2,
544 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>::type
545 XY( V & a )
546 {
547 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>(a);
548 }
549 template <class V>
550 BOOST_QVM_INLINE_TRIVIAL
551 typename enable_if_c<
552 is_vec<V>::value && vec_traits<V>::dim>=1,
553 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>::type
554 _1X( V const & a )
555 {
556 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>(a);
557 }
558 template <class S>
559 BOOST_QVM_INLINE_TRIVIAL
560 typename enable_if_c<
561 is_scalar<S>::value,
562 qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>::type
563 _1X( S const & a )
564 {
565 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>(a);
566 }
567 template <class V>
568 BOOST_QVM_INLINE_TRIVIAL
569 typename enable_if_c<
570 is_vec<V>::value && vec_traits<V>::dim>=1,
571 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>::type
572 _1X( V & a )
573 {
574 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(a);
575 }
576 template <class S>
577 BOOST_QVM_INLINE_TRIVIAL
578 typename enable_if_c<
579 is_scalar<S>::value,
580 qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>::type
581 _1X( S & a )
582 {
583 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(a);
584 }
585 template <class V>
586 BOOST_QVM_INLINE_TRIVIAL
587 typename enable_if_c<
588 is_vec<V>::value && vec_traits<V>::dim>=1,
589 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>::type
590 _0X( V const & a )
591 {
592 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>(a);
593 }
594 template <class S>
595 BOOST_QVM_INLINE_TRIVIAL
596 typename enable_if_c<
597 is_scalar<S>::value,
598 qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>::type
599 _0X( S const & a )
600 {
601 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>(a);
602 }
603 template <class V>
604 BOOST_QVM_INLINE_TRIVIAL
605 typename enable_if_c<
606 is_vec<V>::value && vec_traits<V>::dim>=1,
607 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>::type
608 _0X( V & a )
609 {
610 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(a);
611 }
612 template <class S>
613 BOOST_QVM_INLINE_TRIVIAL
614 typename enable_if_c<
615 is_scalar<S>::value,
616 qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>::type
617 _0X( S & a )
618 {
619 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(a);
620 }
621 template <class V>
622 BOOST_QVM_INLINE_TRIVIAL
623 typename enable_if_c<
624 is_vec<V>::value && vec_traits<V>::dim>=4,
625 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>::type
626 WX( V const & a )
627 {
628 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>(a);
629 }
630 template <class V>
631 BOOST_QVM_INLINE_TRIVIAL
632 typename enable_if_c<
633 is_vec<V>::value && vec_traits<V>::dim>=4,
634 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>::type
635 WX( V & a )
636 {
637 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>(a);
638 }
639 template <class V>
640 BOOST_QVM_INLINE_TRIVIAL
641 typename enable_if_c<
642 is_vec<V>::value && vec_traits<V>::dim>=3,
643 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>::type
644 ZX( V const & a )
645 {
646 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>(a);
647 }
648 template <class V>
649 BOOST_QVM_INLINE_TRIVIAL
650 typename enable_if_c<
651 is_vec<V>::value && vec_traits<V>::dim>=3,
652 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>::type
653 ZX( V & a )
654 {
655 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>(a);
656 }
657 template <class V>
658 BOOST_QVM_INLINE_TRIVIAL
659 typename enable_if_c<
660 is_vec<V>::value && vec_traits<V>::dim>=2,
661 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>::type
662 YX( V const & a )
663 {
664 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>(a);
665 }
666 template <class V>
667 BOOST_QVM_INLINE_TRIVIAL
668 typename enable_if_c<
669 is_vec<V>::value && vec_traits<V>::dim>=2,
670 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>::type
671 YX( V & a )
672 {
673 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>(a);
674 }
675 template <class V>
676 BOOST_QVM_INLINE_TRIVIAL
677 typename enable_if_c<
678 is_vec<V>::value && vec_traits<V>::dim>=1,
679 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>::type
680 XX( V const & a )
681 {
682 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>(a);
683 }
684 template <class S>
685 BOOST_QVM_INLINE_TRIVIAL
686 typename enable_if_c<
687 is_scalar<S>::value,
688 qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>::type
689 XX( S const & a )
690 {
691 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>(a);
692 }
693 template <class V>
694 BOOST_QVM_INLINE_TRIVIAL
695 typename enable_if_c<
696 is_vec<V>::value && vec_traits<V>::dim>=1,
697 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>::type
698 XX( V & a )
699 {
700 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
701 }
702 template <class S>
703 BOOST_QVM_INLINE_TRIVIAL
704 typename enable_if_c<
705 is_scalar<S>::value,
706 qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>::type
707 XX( S & a )
708 {
709 return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
710 }
711 }
712 }
713
714#endif