]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/include/boost/qvm/gen/swizzle2.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / qvm / include / boost / qvm / gen / swizzle2.hpp
CommitLineData
7c673cae
FG
1//Copyright (c) 2008-2016 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_61CDD11E9D9C167272E61DF0844F4A77
7#define BOOST_QVM_61CDD11E9D9C167272E61DF0844F4A77
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 V>
97 BOOST_QVM_INLINE_TRIVIAL
98 typename enable_if_c<
99 is_vec<V>::value && vec_traits<V>::dim>=1,
100 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>::type
101 X1( V & a )
102 {
103 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > &>(a);
104 }
105 BOOST_QVM_INLINE_TRIVIAL
106 qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const &
107 _10()
108 {
109 return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
110 }
111 BOOST_QVM_INLINE_TRIVIAL
112 qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const &
113 _00()
114 {
115 return *reinterpret_cast<qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > const *>(qvm_detail::get_null());
116 }
117 template <class V>
118 BOOST_QVM_INLINE_TRIVIAL
119 typename enable_if_c<
120 is_vec<V>::value && vec_traits<V>::dim>=4,
121 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>::type
122 W0( V const & a )
123 {
124 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > const &>(a);
125 }
126 template <class V>
127 BOOST_QVM_INLINE_TRIVIAL
128 typename enable_if_c<
129 is_vec<V>::value && vec_traits<V>::dim>=4,
130 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>::type
131 W0( V & a )
132 {
133 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > &>(a);
134 }
135 template <class V>
136 BOOST_QVM_INLINE_TRIVIAL
137 typename enable_if_c<
138 is_vec<V>::value && vec_traits<V>::dim>=3,
139 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > const &>::type
140 Z0( V const & a )
141 {
142 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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>=3,
148 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > &>::type
149 Z0( V & a )
150 {
151 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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>=2,
157 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > const &>::type
158 Y0( V const & a )
159 {
160 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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>=2,
166 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > &>::type
167 Y0( V & a )
168 {
169 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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>=1,
175 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > const &>::type
176 X0( V const & a )
177 {
178 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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>=1,
184 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > &>::type
185 X0( V & a )
186 {
187 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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>=4,
193 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>::type
194 _1W( V const & a )
195 {
196 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > const &>(a);
197 }
198 template <class V>
199 BOOST_QVM_INLINE_TRIVIAL
200 typename enable_if_c<
201 is_vec<V>::value && vec_traits<V>::dim>=4,
202 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>::type
203 _1W( V & a )
204 {
205 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > &>(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>=4,
211 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>::type
212 _0W( V const & a )
213 {
214 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > const &>(a);
215 }
216 template <class V>
217 BOOST_QVM_INLINE_TRIVIAL
218 typename enable_if_c<
219 is_vec<V>::value && vec_traits<V>::dim>=4,
220 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>::type
221 _0W( V & a )
222 {
223 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > &>(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<3,qvm_detail::swizzle_idx<3 > > > const &>::type
230 WW( V const & a )
231 {
232 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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<3,qvm_detail::swizzle_idx<3 > > > &>::type
239 WW( V & a )
240 {
241 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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<2,qvm_detail::swizzle_idx<3 > > > const &>::type
248 ZW( V const & a )
249 {
250 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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<2,qvm_detail::swizzle_idx<3 > > > &>::type
257 ZW( V & a )
258 {
259 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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<1,qvm_detail::swizzle_idx<3 > > > const &>::type
266 YW( V const & a )
267 {
268 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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<1,qvm_detail::swizzle_idx<3 > > > &>::type
275 YW( V & a )
276 {
277 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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<0,qvm_detail::swizzle_idx<3 > > > const &>::type
284 XW( V const & a )
285 {
286 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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<0,qvm_detail::swizzle_idx<3 > > > &>::type
293 XW( V & a )
294 {
295 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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>=3,
301 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > const &>::type
302 _1Z( V const & a )
303 {
304 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > 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>=3,
310 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>::type
311 _1Z( V & a )
312 {
313 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > &>(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>=3,
319 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > const &>::type
320 _0Z( V const & a )
321 {
322 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > 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>=3,
328 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>::type
329 _0Z( V & a )
330 {
331 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > &>(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>=4,
337 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > const &>::type
338 WZ( V const & a )
339 {
340 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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>=4,
346 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > &>::type
347 WZ( V & a )
348 {
349 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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<2,qvm_detail::swizzle_idx<2 > > > const &>::type
356 ZZ( V const & a )
357 {
358 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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<2,qvm_detail::swizzle_idx<2 > > > &>::type
365 ZZ( V & a )
366 {
367 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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>=3,
373 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > const &>::type
374 YZ( V const & a )
375 {
376 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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>=3,
382 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > &>::type
383 YZ( V & a )
384 {
385 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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<0,qvm_detail::swizzle_idx<2 > > > const &>::type
392 XZ( V const & a )
393 {
394 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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<0,qvm_detail::swizzle_idx<2 > > > &>::type
401 XZ( V & a )
402 {
403 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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>=2,
409 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > const &>::type
410 _1Y( V const & a )
411 {
412 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > 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>=2,
418 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>::type
419 _1Y( V & a )
420 {
421 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > &>(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>=2,
427 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > const &>::type
428 _0Y( V const & a )
429 {
430 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > 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>=2,
436 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>::type
437 _0Y( V & a )
438 {
439 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > &>(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>=4,
445 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > const &>::type
446 WY( V const & a )
447 {
448 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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>=4,
454 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > &>::type
455 WY( V & a )
456 {
457 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,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>=3,
463 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > const &>::type
464 ZY( V const & a )
465 {
466 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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>=3,
472 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > &>::type
473 ZY( V & a )
474 {
475 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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>=2,
481 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > const &>::type
482 YY( V const & a )
483 {
484 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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>=2,
490 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > &>::type
491 YY( V & a )
492 {
493 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,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>=2,
499 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > const &>::type
500 XY( V const & a )
501 {
502 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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>=2,
508 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > &>::type
509 XY( V & a )
510 {
511 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,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>=1,
517 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > const &>::type
518 _1X( V const & a )
519 {
520 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > 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>=1,
526 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>::type
527 _1X( V & a )
528 {
529 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > &>(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>=1,
535 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > const &>::type
536 _0X( V const & a )
537 {
538 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > 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>=1,
544 qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>::type
545 _0X( V & a )
546 {
547 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > &>(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>=4,
553 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>::type
554 WX( V const & a )
555 {
556 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > const &>(a);
557 }
558 template <class V>
559 BOOST_QVM_INLINE_TRIVIAL
560 typename enable_if_c<
561 is_vec<V>::value && vec_traits<V>::dim>=4,
562 qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>::type
563 WX( V & a )
564 {
565 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > &>(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>=3,
571 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>::type
572 ZX( V const & a )
573 {
574 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > const &>(a);
575 }
576 template <class V>
577 BOOST_QVM_INLINE_TRIVIAL
578 typename enable_if_c<
579 is_vec<V>::value && vec_traits<V>::dim>=3,
580 qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > &>::type
581 ZX( V & a )
582 {
583 return reinterpret_cast<qvm_detail::sw_<V,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>=2,
589 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > const &>::type
590 YX( 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 V>
595 BOOST_QVM_INLINE_TRIVIAL
596 typename enable_if_c<
597 is_vec<V>::value && vec_traits<V>::dim>=2,
598 qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>::type
599 YX( V & a )
600 {
601 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > &>(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<0,qvm_detail::swizzle_idx<0 > > > const &>::type
608 XX( V const & a )
609 {
610 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > const &>(a);
611 }
612 template <class V>
613 BOOST_QVM_INLINE_TRIVIAL
614 typename enable_if_c<
615 is_vec<V>::value && vec_traits<V>::dim>=1,
616 qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>::type
617 XX( V & a )
618 {
619 return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > &>(a);
620 }
621 }
622 }
623
624#endif