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_FA16BB11ADAE248879FE52DB2543E53C
7 #define BOOST_QVM_FA16BB11ADAE248879FE52DB2543E53C
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 
15 namespace
16 boost
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,qvm_detail::swizzle_idx<-2 > > > > const &
_111()23         _111()
24             {
25             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());
26             }
27         BOOST_QVM_INLINE_TRIVIAL
28         qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2 > > > > const &
_011()29         _011()
30             {
31             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());
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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
38         W11( V const & a )
39             {
40             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
47         W11( V & a )
48             {
49             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
56         Z11( V const & a )
57             {
58             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
65         Z11( V & a )
66             {
67             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
74         Y11( V const & a )
75             {
76             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
83         Y11( V & a )
84             {
85             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
92         X11( V const & a )
93             {
94             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
X11(S const & a)101         X11( S const & a )
102             {
103             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
110         X11( V & a )
111             {
112             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
X11(S & a)119         X11( S & a )
120             {
121             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > const &
_101()125         _101()
126             {
127             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());
128             }
129         BOOST_QVM_INLINE_TRIVIAL
130         qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > const &
_001()131         _001()
132             {
133             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());
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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
140         W01( V const & a )
141             {
142             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
149         W01( V & a )
150             {
151             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
158         Z01( V const & a )
159             {
160             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
167         Z01( V & a )
168             {
169             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
176         Y01( V const & a )
177             {
178             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
185         Y01( V & a )
186             {
187             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
194         X01( V const & a )
195             {
196             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
X01(S const & a)203         X01( S const & a )
204             {
205             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
212         X01( V & a )
213             {
214             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > &>::type
X01(S & a)221         X01( S & a )
222             {
223             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
230         _1W1( V const & a )
231             {
232             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
239         _1W1( V & a )
240             {
241             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
248         _0W1( V const & a )
249             {
250             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
257         _0W1( V & a )
258             {
259             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
266         WW1( V const & a )
267             {
268             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
275         WW1( V & a )
276             {
277             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
284         ZW1( V const & a )
285             {
286             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
293         ZW1( V & a )
294             {
295             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
302         YW1( V const & a )
303             {
304             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,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>=4,
310             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
311         YW1( V & a )
312             {
313             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,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>=4,
319             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > const &>::type
320         XW1( V const & a )
321             {
322             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,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>=4,
328             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2 > > > > &>::type
329         XW1( V & a )
330             {
331             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,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>=3,
337             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
338         _1Z1( V const & a )
339             {
340             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
347         _1Z1( V & a )
348             {
349             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
356         _0Z1( V const & a )
357             {
358             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,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<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > &>::type
365         _0Z1( V & a )
366             {
367             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,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>=4,
373             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2 > > > > const &>::type
374         WZ1( V const & a )
375             {
376             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
383         WZ1( V & a )
384             {
385             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
392         ZZ1( V const & a )
393             {
394             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
401         ZZ1( V & a )
402             {
403             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
410         YZ1( V const & a )
411             {
412             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
419         YZ1( V & a )
420             {
421             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
428         XZ1( V const & a )
429             {
430             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > &>::type
437         XZ1( V & a )
438             {
439             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
446         _1Y1( V const & a )
447             {
448             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
455         _1Y1( V & a )
456             {
457             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
464         _0Y1( V const & a )
465             {
466             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
473         _0Y1( V & a )
474             {
475             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
482         WY1( V const & a )
483             {
484             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
491         WY1( V & a )
492             {
493             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
500         ZY1( V const & a )
501             {
502             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
509         ZY1( V & a )
510             {
511             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
518         YY1( V const & a )
519             {
520             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
527         YY1( V & a )
528             {
529             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
536         XY1( V const & a )
537             {
538             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
545         XY1( V & a )
546             {
547             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
554         _1X1( V const & a )
555             {
556             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
_1X1(S const & a)563         _1X1( S const & a )
564             {
565             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
572         _1X1( V & a )
573             {
574             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > &>::type
_1X1(S & a)581         _1X1( S & a )
582             {
583             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
590         _0X1( V const & a )
591             {
592             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
_0X1(S const & a)599         _0X1( S const & a )
600             {
601             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
608         _0X1( V & a )
609             {
610             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > &>::type
_0X1(S & a)617         _0X1( S & a )
618             {
619             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
626         WX1( V const & a )
627             {
628             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
635         WX1( V & a )
636             {
637             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
644         ZX1( V const & a )
645             {
646             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
653         ZX1( V & a )
654             {
655             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
662         YX1( V const & a )
663             {
664             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
671         YX1( V & a )
672             {
673             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
680         XX1( V const & a )
681             {
682             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > const &>::type
XX1(S const & a)689         XX1( S const & a )
690             {
691             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > 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,qvm_detail::swizzle_idx<-2 > > > > &>::type
698         XX1( V & a )
699             {
700             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(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,qvm_detail::swizzle_idx<-2 > > > > &>::type
XX1(S & a)707         XX1( S & a )
708             {
709             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2 > > > > &>(a);
710             }
711         BOOST_QVM_INLINE_TRIVIAL
712         qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &
_110()713         _110()
714             {
715             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());
716             }
717         BOOST_QVM_INLINE_TRIVIAL
718         qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &
_010()719         _010()
720             {
721             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());
722             }
723         template <class V>
724         BOOST_QVM_INLINE_TRIVIAL
725         typename enable_if_c<
726             is_vec<V>::value && vec_traits<V>::dim>=4,
727             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
728         W10( V const & a )
729             {
730             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
731             }
732         template <class V>
733         BOOST_QVM_INLINE_TRIVIAL
734         typename enable_if_c<
735             is_vec<V>::value && vec_traits<V>::dim>=4,
736             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
737         W10( V & a )
738             {
739             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
740             }
741         template <class V>
742         BOOST_QVM_INLINE_TRIVIAL
743         typename enable_if_c<
744             is_vec<V>::value && vec_traits<V>::dim>=3,
745             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
746         Z10( V const & a )
747             {
748             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
749             }
750         template <class V>
751         BOOST_QVM_INLINE_TRIVIAL
752         typename enable_if_c<
753             is_vec<V>::value && vec_traits<V>::dim>=3,
754             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
755         Z10( V & a )
756             {
757             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
758             }
759         template <class V>
760         BOOST_QVM_INLINE_TRIVIAL
761         typename enable_if_c<
762             is_vec<V>::value && vec_traits<V>::dim>=2,
763             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
764         Y10( V const & a )
765             {
766             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
767             }
768         template <class V>
769         BOOST_QVM_INLINE_TRIVIAL
770         typename enable_if_c<
771             is_vec<V>::value && vec_traits<V>::dim>=2,
772             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
773         Y10( V & a )
774             {
775             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
776             }
777         template <class V>
778         BOOST_QVM_INLINE_TRIVIAL
779         typename enable_if_c<
780             is_vec<V>::value && vec_traits<V>::dim>=1,
781             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
782         X10( V const & a )
783             {
784             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
785             }
786         template <class S>
787         BOOST_QVM_INLINE_TRIVIAL
788         typename enable_if_c<
789             is_scalar<S>::value,
790             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
X10(S const & a)791         X10( S const & a )
792             {
793             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
794             }
795         template <class V>
796         BOOST_QVM_INLINE_TRIVIAL
797         typename enable_if_c<
798             is_vec<V>::value && vec_traits<V>::dim>=1,
799             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
800         X10( V & a )
801             {
802             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
803             }
804         template <class S>
805         BOOST_QVM_INLINE_TRIVIAL
806         typename enable_if_c<
807             is_scalar<S>::value,
808             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>::type
X10(S & a)809         X10( S & a )
810             {
811             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
812             }
813         BOOST_QVM_INLINE_TRIVIAL
814         qvm_detail::sw01_<qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &
_100()815         _100()
816             {
817             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());
818             }
819         BOOST_QVM_INLINE_TRIVIAL
820         qvm_detail::sw01_<qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &
_000()821         _000()
822             {
823             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());
824             }
825         template <class V>
826         BOOST_QVM_INLINE_TRIVIAL
827         typename enable_if_c<
828             is_vec<V>::value && vec_traits<V>::dim>=4,
829             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
830         W00( V const & a )
831             {
832             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
833             }
834         template <class V>
835         BOOST_QVM_INLINE_TRIVIAL
836         typename enable_if_c<
837             is_vec<V>::value && vec_traits<V>::dim>=4,
838             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
839         W00( V & a )
840             {
841             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
842             }
843         template <class V>
844         BOOST_QVM_INLINE_TRIVIAL
845         typename enable_if_c<
846             is_vec<V>::value && vec_traits<V>::dim>=3,
847             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
848         Z00( V const & a )
849             {
850             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
851             }
852         template <class V>
853         BOOST_QVM_INLINE_TRIVIAL
854         typename enable_if_c<
855             is_vec<V>::value && vec_traits<V>::dim>=3,
856             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
857         Z00( V & a )
858             {
859             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
860             }
861         template <class V>
862         BOOST_QVM_INLINE_TRIVIAL
863         typename enable_if_c<
864             is_vec<V>::value && vec_traits<V>::dim>=2,
865             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
866         Y00( V const & a )
867             {
868             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
869             }
870         template <class V>
871         BOOST_QVM_INLINE_TRIVIAL
872         typename enable_if_c<
873             is_vec<V>::value && vec_traits<V>::dim>=2,
874             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
875         Y00( V & a )
876             {
877             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
878             }
879         template <class V>
880         BOOST_QVM_INLINE_TRIVIAL
881         typename enable_if_c<
882             is_vec<V>::value && vec_traits<V>::dim>=1,
883             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
884         X00( V const & a )
885             {
886             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
887             }
888         template <class S>
889         BOOST_QVM_INLINE_TRIVIAL
890         typename enable_if_c<
891             is_scalar<S>::value,
892             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
X00(S const & a)893         X00( S const & a )
894             {
895             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
896             }
897         template <class V>
898         BOOST_QVM_INLINE_TRIVIAL
899         typename enable_if_c<
900             is_vec<V>::value && vec_traits<V>::dim>=1,
901             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
902         X00( V & a )
903             {
904             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
905             }
906         template <class S>
907         BOOST_QVM_INLINE_TRIVIAL
908         typename enable_if_c<
909             is_scalar<S>::value,
910             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>::type
X00(S & a)911         X00( S & a )
912             {
913             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
914             }
915         template <class V>
916         BOOST_QVM_INLINE_TRIVIAL
917         typename enable_if_c<
918             is_vec<V>::value && vec_traits<V>::dim>=4,
919             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
920         _1W0( V const & a )
921             {
922             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
923             }
924         template <class V>
925         BOOST_QVM_INLINE_TRIVIAL
926         typename enable_if_c<
927             is_vec<V>::value && vec_traits<V>::dim>=4,
928             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
929         _1W0( V & a )
930             {
931             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
932             }
933         template <class V>
934         BOOST_QVM_INLINE_TRIVIAL
935         typename enable_if_c<
936             is_vec<V>::value && vec_traits<V>::dim>=4,
937             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
938         _0W0( V const & a )
939             {
940             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
941             }
942         template <class V>
943         BOOST_QVM_INLINE_TRIVIAL
944         typename enable_if_c<
945             is_vec<V>::value && vec_traits<V>::dim>=4,
946             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
947         _0W0( V & a )
948             {
949             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
950             }
951         template <class V>
952         BOOST_QVM_INLINE_TRIVIAL
953         typename enable_if_c<
954             is_vec<V>::value && vec_traits<V>::dim>=4,
955             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
956         WW0( V const & a )
957             {
958             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
959             }
960         template <class V>
961         BOOST_QVM_INLINE_TRIVIAL
962         typename enable_if_c<
963             is_vec<V>::value && vec_traits<V>::dim>=4,
964             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
965         WW0( V & a )
966             {
967             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
968             }
969         template <class V>
970         BOOST_QVM_INLINE_TRIVIAL
971         typename enable_if_c<
972             is_vec<V>::value && vec_traits<V>::dim>=4,
973             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
974         ZW0( V const & a )
975             {
976             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
977             }
978         template <class V>
979         BOOST_QVM_INLINE_TRIVIAL
980         typename enable_if_c<
981             is_vec<V>::value && vec_traits<V>::dim>=4,
982             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
983         ZW0( V & a )
984             {
985             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
986             }
987         template <class V>
988         BOOST_QVM_INLINE_TRIVIAL
989         typename enable_if_c<
990             is_vec<V>::value && vec_traits<V>::dim>=4,
991             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
992         YW0( V const & a )
993             {
994             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
995             }
996         template <class V>
997         BOOST_QVM_INLINE_TRIVIAL
998         typename enable_if_c<
999             is_vec<V>::value && vec_traits<V>::dim>=4,
1000             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
1001         YW0( V & a )
1002             {
1003             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1004             }
1005         template <class V>
1006         BOOST_QVM_INLINE_TRIVIAL
1007         typename enable_if_c<
1008             is_vec<V>::value && vec_traits<V>::dim>=4,
1009             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1010         XW0( V const & a )
1011             {
1012             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1013             }
1014         template <class V>
1015         BOOST_QVM_INLINE_TRIVIAL
1016         typename enable_if_c<
1017             is_vec<V>::value && vec_traits<V>::dim>=4,
1018             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>::type
1019         XW0( V & a )
1020             {
1021             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1022             }
1023         template <class V>
1024         BOOST_QVM_INLINE_TRIVIAL
1025         typename enable_if_c<
1026             is_vec<V>::value && vec_traits<V>::dim>=3,
1027             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1028         _1Z0( V const & a )
1029             {
1030             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1031             }
1032         template <class V>
1033         BOOST_QVM_INLINE_TRIVIAL
1034         typename enable_if_c<
1035             is_vec<V>::value && vec_traits<V>::dim>=3,
1036             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1037         _1Z0( V & a )
1038             {
1039             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1040             }
1041         template <class V>
1042         BOOST_QVM_INLINE_TRIVIAL
1043         typename enable_if_c<
1044             is_vec<V>::value && vec_traits<V>::dim>=3,
1045             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1046         _0Z0( V const & a )
1047             {
1048             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1049             }
1050         template <class V>
1051         BOOST_QVM_INLINE_TRIVIAL
1052         typename enable_if_c<
1053             is_vec<V>::value && vec_traits<V>::dim>=3,
1054             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1055         _0Z0( V & a )
1056             {
1057             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1058             }
1059         template <class V>
1060         BOOST_QVM_INLINE_TRIVIAL
1061         typename enable_if_c<
1062             is_vec<V>::value && vec_traits<V>::dim>=4,
1063             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1064         WZ0( V const & a )
1065             {
1066             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1067             }
1068         template <class V>
1069         BOOST_QVM_INLINE_TRIVIAL
1070         typename enable_if_c<
1071             is_vec<V>::value && vec_traits<V>::dim>=4,
1072             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1073         WZ0( V & a )
1074             {
1075             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1076             }
1077         template <class V>
1078         BOOST_QVM_INLINE_TRIVIAL
1079         typename enable_if_c<
1080             is_vec<V>::value && vec_traits<V>::dim>=3,
1081             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1082         ZZ0( V const & a )
1083             {
1084             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1085             }
1086         template <class V>
1087         BOOST_QVM_INLINE_TRIVIAL
1088         typename enable_if_c<
1089             is_vec<V>::value && vec_traits<V>::dim>=3,
1090             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1091         ZZ0( V & a )
1092             {
1093             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1094             }
1095         template <class V>
1096         BOOST_QVM_INLINE_TRIVIAL
1097         typename enable_if_c<
1098             is_vec<V>::value && vec_traits<V>::dim>=3,
1099             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1100         YZ0( V const & a )
1101             {
1102             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1103             }
1104         template <class V>
1105         BOOST_QVM_INLINE_TRIVIAL
1106         typename enable_if_c<
1107             is_vec<V>::value && vec_traits<V>::dim>=3,
1108             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1109         YZ0( V & a )
1110             {
1111             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1112             }
1113         template <class V>
1114         BOOST_QVM_INLINE_TRIVIAL
1115         typename enable_if_c<
1116             is_vec<V>::value && vec_traits<V>::dim>=3,
1117             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1118         XZ0( V const & a )
1119             {
1120             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1121             }
1122         template <class V>
1123         BOOST_QVM_INLINE_TRIVIAL
1124         typename enable_if_c<
1125             is_vec<V>::value && vec_traits<V>::dim>=3,
1126             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>::type
1127         XZ0( V & a )
1128             {
1129             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1130             }
1131         template <class V>
1132         BOOST_QVM_INLINE_TRIVIAL
1133         typename enable_if_c<
1134             is_vec<V>::value && vec_traits<V>::dim>=2,
1135             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1136         _1Y0( V const & a )
1137             {
1138             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1139             }
1140         template <class V>
1141         BOOST_QVM_INLINE_TRIVIAL
1142         typename enable_if_c<
1143             is_vec<V>::value && vec_traits<V>::dim>=2,
1144             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1145         _1Y0( V & a )
1146             {
1147             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1148             }
1149         template <class V>
1150         BOOST_QVM_INLINE_TRIVIAL
1151         typename enable_if_c<
1152             is_vec<V>::value && vec_traits<V>::dim>=2,
1153             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1154         _0Y0( V const & a )
1155             {
1156             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1157             }
1158         template <class V>
1159         BOOST_QVM_INLINE_TRIVIAL
1160         typename enable_if_c<
1161             is_vec<V>::value && vec_traits<V>::dim>=2,
1162             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1163         _0Y0( V & a )
1164             {
1165             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1166             }
1167         template <class V>
1168         BOOST_QVM_INLINE_TRIVIAL
1169         typename enable_if_c<
1170             is_vec<V>::value && vec_traits<V>::dim>=4,
1171             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1172         WY0( V const & a )
1173             {
1174             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1175             }
1176         template <class V>
1177         BOOST_QVM_INLINE_TRIVIAL
1178         typename enable_if_c<
1179             is_vec<V>::value && vec_traits<V>::dim>=4,
1180             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1181         WY0( V & a )
1182             {
1183             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1184             }
1185         template <class V>
1186         BOOST_QVM_INLINE_TRIVIAL
1187         typename enable_if_c<
1188             is_vec<V>::value && vec_traits<V>::dim>=3,
1189             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1190         ZY0( V const & a )
1191             {
1192             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1193             }
1194         template <class V>
1195         BOOST_QVM_INLINE_TRIVIAL
1196         typename enable_if_c<
1197             is_vec<V>::value && vec_traits<V>::dim>=3,
1198             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1199         ZY0( V & a )
1200             {
1201             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1202             }
1203         template <class V>
1204         BOOST_QVM_INLINE_TRIVIAL
1205         typename enable_if_c<
1206             is_vec<V>::value && vec_traits<V>::dim>=2,
1207             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1208         YY0( V const & a )
1209             {
1210             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1211             }
1212         template <class V>
1213         BOOST_QVM_INLINE_TRIVIAL
1214         typename enable_if_c<
1215             is_vec<V>::value && vec_traits<V>::dim>=2,
1216             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1217         YY0( V & a )
1218             {
1219             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1220             }
1221         template <class V>
1222         BOOST_QVM_INLINE_TRIVIAL
1223         typename enable_if_c<
1224             is_vec<V>::value && vec_traits<V>::dim>=2,
1225             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1226         XY0( V const & a )
1227             {
1228             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1229             }
1230         template <class V>
1231         BOOST_QVM_INLINE_TRIVIAL
1232         typename enable_if_c<
1233             is_vec<V>::value && vec_traits<V>::dim>=2,
1234             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>::type
1235         XY0( V & a )
1236             {
1237             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1238             }
1239         template <class V>
1240         BOOST_QVM_INLINE_TRIVIAL
1241         typename enable_if_c<
1242             is_vec<V>::value && vec_traits<V>::dim>=1,
1243             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1244         _1X0( V const & a )
1245             {
1246             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1247             }
1248         template <class S>
1249         BOOST_QVM_INLINE_TRIVIAL
1250         typename enable_if_c<
1251             is_scalar<S>::value,
1252             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
_1X0(S const & a)1253         _1X0( S const & a )
1254             {
1255             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1256             }
1257         template <class V>
1258         BOOST_QVM_INLINE_TRIVIAL
1259         typename enable_if_c<
1260             is_vec<V>::value && vec_traits<V>::dim>=1,
1261             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1262         _1X0( V & a )
1263             {
1264             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1265             }
1266         template <class S>
1267         BOOST_QVM_INLINE_TRIVIAL
1268         typename enable_if_c<
1269             is_scalar<S>::value,
1270             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
_1X0(S & a)1271         _1X0( S & a )
1272             {
1273             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1274             }
1275         template <class V>
1276         BOOST_QVM_INLINE_TRIVIAL
1277         typename enable_if_c<
1278             is_vec<V>::value && vec_traits<V>::dim>=1,
1279             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1280         _0X0( V const & a )
1281             {
1282             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1283             }
1284         template <class S>
1285         BOOST_QVM_INLINE_TRIVIAL
1286         typename enable_if_c<
1287             is_scalar<S>::value,
1288             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
_0X0(S const & a)1289         _0X0( S const & a )
1290             {
1291             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1292             }
1293         template <class V>
1294         BOOST_QVM_INLINE_TRIVIAL
1295         typename enable_if_c<
1296             is_vec<V>::value && vec_traits<V>::dim>=1,
1297             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1298         _0X0( V & a )
1299             {
1300             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1301             }
1302         template <class S>
1303         BOOST_QVM_INLINE_TRIVIAL
1304         typename enable_if_c<
1305             is_scalar<S>::value,
1306             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
_0X0(S & a)1307         _0X0( S & a )
1308             {
1309             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1310             }
1311         template <class V>
1312         BOOST_QVM_INLINE_TRIVIAL
1313         typename enable_if_c<
1314             is_vec<V>::value && vec_traits<V>::dim>=4,
1315             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1316         WX0( V const & a )
1317             {
1318             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1319             }
1320         template <class V>
1321         BOOST_QVM_INLINE_TRIVIAL
1322         typename enable_if_c<
1323             is_vec<V>::value && vec_traits<V>::dim>=4,
1324             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1325         WX0( V & a )
1326             {
1327             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1328             }
1329         template <class V>
1330         BOOST_QVM_INLINE_TRIVIAL
1331         typename enable_if_c<
1332             is_vec<V>::value && vec_traits<V>::dim>=3,
1333             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1334         ZX0( V const & a )
1335             {
1336             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1337             }
1338         template <class V>
1339         BOOST_QVM_INLINE_TRIVIAL
1340         typename enable_if_c<
1341             is_vec<V>::value && vec_traits<V>::dim>=3,
1342             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1343         ZX0( V & a )
1344             {
1345             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1346             }
1347         template <class V>
1348         BOOST_QVM_INLINE_TRIVIAL
1349         typename enable_if_c<
1350             is_vec<V>::value && vec_traits<V>::dim>=2,
1351             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1352         YX0( V const & a )
1353             {
1354             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1355             }
1356         template <class V>
1357         BOOST_QVM_INLINE_TRIVIAL
1358         typename enable_if_c<
1359             is_vec<V>::value && vec_traits<V>::dim>=2,
1360             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1361         YX0( V & a )
1362             {
1363             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1364             }
1365         template <class V>
1366         BOOST_QVM_INLINE_TRIVIAL
1367         typename enable_if_c<
1368             is_vec<V>::value && vec_traits<V>::dim>=1,
1369             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
1370         XX0( V const & a )
1371             {
1372             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1373             }
1374         template <class S>
1375         BOOST_QVM_INLINE_TRIVIAL
1376         typename enable_if_c<
1377             is_scalar<S>::value,
1378             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>::type
XX0(S const & a)1379         XX0( S const & a )
1380             {
1381             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > const &>(a);
1382             }
1383         template <class V>
1384         BOOST_QVM_INLINE_TRIVIAL
1385         typename enable_if_c<
1386             is_vec<V>::value && vec_traits<V>::dim>=1,
1387             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
1388         XX0( V & a )
1389             {
1390             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1391             }
1392         template <class S>
1393         BOOST_QVM_INLINE_TRIVIAL
1394         typename enable_if_c<
1395             is_scalar<S>::value,
1396             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>::type
XX0(S & a)1397         XX0( S & a )
1398             {
1399             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1 > > > > &>(a);
1400             }
1401         template <class V>
1402         BOOST_QVM_INLINE_TRIVIAL
1403         typename enable_if_c<
1404             is_vec<V>::value && vec_traits<V>::dim>=4,
1405             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1406         _11W( V const & a )
1407             {
1408             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1409             }
1410         template <class V>
1411         BOOST_QVM_INLINE_TRIVIAL
1412         typename enable_if_c<
1413             is_vec<V>::value && vec_traits<V>::dim>=4,
1414             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1415         _11W( V & a )
1416             {
1417             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1418             }
1419         template <class V>
1420         BOOST_QVM_INLINE_TRIVIAL
1421         typename enable_if_c<
1422             is_vec<V>::value && vec_traits<V>::dim>=4,
1423             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1424         _01W( V const & a )
1425             {
1426             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1427             }
1428         template <class V>
1429         BOOST_QVM_INLINE_TRIVIAL
1430         typename enable_if_c<
1431             is_vec<V>::value && vec_traits<V>::dim>=4,
1432             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1433         _01W( V & a )
1434             {
1435             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1436             }
1437         template <class V>
1438         BOOST_QVM_INLINE_TRIVIAL
1439         typename enable_if_c<
1440             is_vec<V>::value && vec_traits<V>::dim>=4,
1441             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1442         W1W( V const & a )
1443             {
1444             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1445             }
1446         template <class V>
1447         BOOST_QVM_INLINE_TRIVIAL
1448         typename enable_if_c<
1449             is_vec<V>::value && vec_traits<V>::dim>=4,
1450             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1451         W1W( V & a )
1452             {
1453             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1454             }
1455         template <class V>
1456         BOOST_QVM_INLINE_TRIVIAL
1457         typename enable_if_c<
1458             is_vec<V>::value && vec_traits<V>::dim>=4,
1459             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1460         Z1W( V const & a )
1461             {
1462             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1463             }
1464         template <class V>
1465         BOOST_QVM_INLINE_TRIVIAL
1466         typename enable_if_c<
1467             is_vec<V>::value && vec_traits<V>::dim>=4,
1468             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1469         Z1W( V & a )
1470             {
1471             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1472             }
1473         template <class V>
1474         BOOST_QVM_INLINE_TRIVIAL
1475         typename enable_if_c<
1476             is_vec<V>::value && vec_traits<V>::dim>=4,
1477             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1478         Y1W( V const & a )
1479             {
1480             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1481             }
1482         template <class V>
1483         BOOST_QVM_INLINE_TRIVIAL
1484         typename enable_if_c<
1485             is_vec<V>::value && vec_traits<V>::dim>=4,
1486             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1487         Y1W( V & a )
1488             {
1489             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1490             }
1491         template <class V>
1492         BOOST_QVM_INLINE_TRIVIAL
1493         typename enable_if_c<
1494             is_vec<V>::value && vec_traits<V>::dim>=4,
1495             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1496         X1W( V const & a )
1497             {
1498             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1499             }
1500         template <class V>
1501         BOOST_QVM_INLINE_TRIVIAL
1502         typename enable_if_c<
1503             is_vec<V>::value && vec_traits<V>::dim>=4,
1504             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>::type
1505         X1W( V & a )
1506             {
1507             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1508             }
1509         template <class V>
1510         BOOST_QVM_INLINE_TRIVIAL
1511         typename enable_if_c<
1512             is_vec<V>::value && vec_traits<V>::dim>=4,
1513             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1514         _10W( V const & a )
1515             {
1516             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1517             }
1518         template <class V>
1519         BOOST_QVM_INLINE_TRIVIAL
1520         typename enable_if_c<
1521             is_vec<V>::value && vec_traits<V>::dim>=4,
1522             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1523         _10W( V & a )
1524             {
1525             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1526             }
1527         template <class V>
1528         BOOST_QVM_INLINE_TRIVIAL
1529         typename enable_if_c<
1530             is_vec<V>::value && vec_traits<V>::dim>=4,
1531             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1532         _00W( V const & a )
1533             {
1534             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1535             }
1536         template <class V>
1537         BOOST_QVM_INLINE_TRIVIAL
1538         typename enable_if_c<
1539             is_vec<V>::value && vec_traits<V>::dim>=4,
1540             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1541         _00W( V & a )
1542             {
1543             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1544             }
1545         template <class V>
1546         BOOST_QVM_INLINE_TRIVIAL
1547         typename enable_if_c<
1548             is_vec<V>::value && vec_traits<V>::dim>=4,
1549             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1550         W0W( V const & a )
1551             {
1552             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1553             }
1554         template <class V>
1555         BOOST_QVM_INLINE_TRIVIAL
1556         typename enable_if_c<
1557             is_vec<V>::value && vec_traits<V>::dim>=4,
1558             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1559         W0W( V & a )
1560             {
1561             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1562             }
1563         template <class V>
1564         BOOST_QVM_INLINE_TRIVIAL
1565         typename enable_if_c<
1566             is_vec<V>::value && vec_traits<V>::dim>=4,
1567             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1568         Z0W( V const & a )
1569             {
1570             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1571             }
1572         template <class V>
1573         BOOST_QVM_INLINE_TRIVIAL
1574         typename enable_if_c<
1575             is_vec<V>::value && vec_traits<V>::dim>=4,
1576             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1577         Z0W( V & a )
1578             {
1579             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1580             }
1581         template <class V>
1582         BOOST_QVM_INLINE_TRIVIAL
1583         typename enable_if_c<
1584             is_vec<V>::value && vec_traits<V>::dim>=4,
1585             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1586         Y0W( V const & a )
1587             {
1588             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1589             }
1590         template <class V>
1591         BOOST_QVM_INLINE_TRIVIAL
1592         typename enable_if_c<
1593             is_vec<V>::value && vec_traits<V>::dim>=4,
1594             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1595         Y0W( V & a )
1596             {
1597             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1598             }
1599         template <class V>
1600         BOOST_QVM_INLINE_TRIVIAL
1601         typename enable_if_c<
1602             is_vec<V>::value && vec_traits<V>::dim>=4,
1603             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1604         X0W( V const & a )
1605             {
1606             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1607             }
1608         template <class V>
1609         BOOST_QVM_INLINE_TRIVIAL
1610         typename enable_if_c<
1611             is_vec<V>::value && vec_traits<V>::dim>=4,
1612             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>::type
1613         X0W( V & a )
1614             {
1615             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1616             }
1617         template <class V>
1618         BOOST_QVM_INLINE_TRIVIAL
1619         typename enable_if_c<
1620             is_vec<V>::value && vec_traits<V>::dim>=4,
1621             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1622         _1WW( V const & a )
1623             {
1624             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1625             }
1626         template <class V>
1627         BOOST_QVM_INLINE_TRIVIAL
1628         typename enable_if_c<
1629             is_vec<V>::value && vec_traits<V>::dim>=4,
1630             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1631         _1WW( V & a )
1632             {
1633             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1634             }
1635         template <class V>
1636         BOOST_QVM_INLINE_TRIVIAL
1637         typename enable_if_c<
1638             is_vec<V>::value && vec_traits<V>::dim>=4,
1639             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1640         _0WW( V const & a )
1641             {
1642             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1643             }
1644         template <class V>
1645         BOOST_QVM_INLINE_TRIVIAL
1646         typename enable_if_c<
1647             is_vec<V>::value && vec_traits<V>::dim>=4,
1648             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1649         _0WW( V & a )
1650             {
1651             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1652             }
1653         template <class V>
1654         BOOST_QVM_INLINE_TRIVIAL
1655         typename enable_if_c<
1656             is_vec<V>::value && vec_traits<V>::dim>=4,
1657             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1658         WWW( V const & a )
1659             {
1660             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1661             }
1662         template <class V>
1663         BOOST_QVM_INLINE_TRIVIAL
1664         typename enable_if_c<
1665             is_vec<V>::value && vec_traits<V>::dim>=4,
1666             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1667         WWW( V & a )
1668             {
1669             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1670             }
1671         template <class V>
1672         BOOST_QVM_INLINE_TRIVIAL
1673         typename enable_if_c<
1674             is_vec<V>::value && vec_traits<V>::dim>=4,
1675             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1676         ZWW( V const & a )
1677             {
1678             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1679             }
1680         template <class V>
1681         BOOST_QVM_INLINE_TRIVIAL
1682         typename enable_if_c<
1683             is_vec<V>::value && vec_traits<V>::dim>=4,
1684             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1685         ZWW( V & a )
1686             {
1687             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1688             }
1689         template <class V>
1690         BOOST_QVM_INLINE_TRIVIAL
1691         typename enable_if_c<
1692             is_vec<V>::value && vec_traits<V>::dim>=4,
1693             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1694         YWW( V const & a )
1695             {
1696             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1697             }
1698         template <class V>
1699         BOOST_QVM_INLINE_TRIVIAL
1700         typename enable_if_c<
1701             is_vec<V>::value && vec_traits<V>::dim>=4,
1702             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1703         YWW( V & a )
1704             {
1705             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1706             }
1707         template <class V>
1708         BOOST_QVM_INLINE_TRIVIAL
1709         typename enable_if_c<
1710             is_vec<V>::value && vec_traits<V>::dim>=4,
1711             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>::type
1712         XWW( V const & a )
1713             {
1714             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1715             }
1716         template <class V>
1717         BOOST_QVM_INLINE_TRIVIAL
1718         typename enable_if_c<
1719             is_vec<V>::value && vec_traits<V>::dim>=4,
1720             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>::type
1721         XWW( V & a )
1722             {
1723             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3 > > > > &>(a);
1724             }
1725         template <class V>
1726         BOOST_QVM_INLINE_TRIVIAL
1727         typename enable_if_c<
1728             is_vec<V>::value && vec_traits<V>::dim>=4,
1729             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1730         _1ZW( V const & a )
1731             {
1732             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1733             }
1734         template <class V>
1735         BOOST_QVM_INLINE_TRIVIAL
1736         typename enable_if_c<
1737             is_vec<V>::value && vec_traits<V>::dim>=4,
1738             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1739         _1ZW( V & a )
1740             {
1741             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1742             }
1743         template <class V>
1744         BOOST_QVM_INLINE_TRIVIAL
1745         typename enable_if_c<
1746             is_vec<V>::value && vec_traits<V>::dim>=4,
1747             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1748         _0ZW( V const & a )
1749             {
1750             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1751             }
1752         template <class V>
1753         BOOST_QVM_INLINE_TRIVIAL
1754         typename enable_if_c<
1755             is_vec<V>::value && vec_traits<V>::dim>=4,
1756             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1757         _0ZW( V & a )
1758             {
1759             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1760             }
1761         template <class V>
1762         BOOST_QVM_INLINE_TRIVIAL
1763         typename enable_if_c<
1764             is_vec<V>::value && vec_traits<V>::dim>=4,
1765             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1766         WZW( V const & a )
1767             {
1768             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1769             }
1770         template <class V>
1771         BOOST_QVM_INLINE_TRIVIAL
1772         typename enable_if_c<
1773             is_vec<V>::value && vec_traits<V>::dim>=4,
1774             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1775         WZW( V & a )
1776             {
1777             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1778             }
1779         template <class V>
1780         BOOST_QVM_INLINE_TRIVIAL
1781         typename enable_if_c<
1782             is_vec<V>::value && vec_traits<V>::dim>=4,
1783             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1784         ZZW( V const & a )
1785             {
1786             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1787             }
1788         template <class V>
1789         BOOST_QVM_INLINE_TRIVIAL
1790         typename enable_if_c<
1791             is_vec<V>::value && vec_traits<V>::dim>=4,
1792             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1793         ZZW( V & a )
1794             {
1795             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1796             }
1797         template <class V>
1798         BOOST_QVM_INLINE_TRIVIAL
1799         typename enable_if_c<
1800             is_vec<V>::value && vec_traits<V>::dim>=4,
1801             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1802         YZW( V const & a )
1803             {
1804             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1805             }
1806         template <class V>
1807         BOOST_QVM_INLINE_TRIVIAL
1808         typename enable_if_c<
1809             is_vec<V>::value && vec_traits<V>::dim>=4,
1810             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1811         YZW( V & a )
1812             {
1813             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1814             }
1815         template <class V>
1816         BOOST_QVM_INLINE_TRIVIAL
1817         typename enable_if_c<
1818             is_vec<V>::value && vec_traits<V>::dim>=4,
1819             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>::type
1820         XZW( V const & a )
1821             {
1822             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1823             }
1824         template <class V>
1825         BOOST_QVM_INLINE_TRIVIAL
1826         typename enable_if_c<
1827             is_vec<V>::value && vec_traits<V>::dim>=4,
1828             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>::type
1829         XZW( V & a )
1830             {
1831             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3 > > > > &>(a);
1832             }
1833         template <class V>
1834         BOOST_QVM_INLINE_TRIVIAL
1835         typename enable_if_c<
1836             is_vec<V>::value && vec_traits<V>::dim>=4,
1837             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1838         _1YW( V const & a )
1839             {
1840             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1841             }
1842         template <class V>
1843         BOOST_QVM_INLINE_TRIVIAL
1844         typename enable_if_c<
1845             is_vec<V>::value && vec_traits<V>::dim>=4,
1846             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1847         _1YW( V & a )
1848             {
1849             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1850             }
1851         template <class V>
1852         BOOST_QVM_INLINE_TRIVIAL
1853         typename enable_if_c<
1854             is_vec<V>::value && vec_traits<V>::dim>=4,
1855             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1856         _0YW( V const & a )
1857             {
1858             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1859             }
1860         template <class V>
1861         BOOST_QVM_INLINE_TRIVIAL
1862         typename enable_if_c<
1863             is_vec<V>::value && vec_traits<V>::dim>=4,
1864             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1865         _0YW( V & a )
1866             {
1867             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1868             }
1869         template <class V>
1870         BOOST_QVM_INLINE_TRIVIAL
1871         typename enable_if_c<
1872             is_vec<V>::value && vec_traits<V>::dim>=4,
1873             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1874         WYW( V const & a )
1875             {
1876             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1877             }
1878         template <class V>
1879         BOOST_QVM_INLINE_TRIVIAL
1880         typename enable_if_c<
1881             is_vec<V>::value && vec_traits<V>::dim>=4,
1882             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1883         WYW( V & a )
1884             {
1885             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1886             }
1887         template <class V>
1888         BOOST_QVM_INLINE_TRIVIAL
1889         typename enable_if_c<
1890             is_vec<V>::value && vec_traits<V>::dim>=4,
1891             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1892         ZYW( V const & a )
1893             {
1894             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1895             }
1896         template <class V>
1897         BOOST_QVM_INLINE_TRIVIAL
1898         typename enable_if_c<
1899             is_vec<V>::value && vec_traits<V>::dim>=4,
1900             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1901         ZYW( V & a )
1902             {
1903             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1904             }
1905         template <class V>
1906         BOOST_QVM_INLINE_TRIVIAL
1907         typename enable_if_c<
1908             is_vec<V>::value && vec_traits<V>::dim>=4,
1909             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1910         YYW( V const & a )
1911             {
1912             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1913             }
1914         template <class V>
1915         BOOST_QVM_INLINE_TRIVIAL
1916         typename enable_if_c<
1917             is_vec<V>::value && vec_traits<V>::dim>=4,
1918             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1919         YYW( V & a )
1920             {
1921             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1922             }
1923         template <class V>
1924         BOOST_QVM_INLINE_TRIVIAL
1925         typename enable_if_c<
1926             is_vec<V>::value && vec_traits<V>::dim>=4,
1927             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>::type
1928         XYW( V const & a )
1929             {
1930             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1931             }
1932         template <class V>
1933         BOOST_QVM_INLINE_TRIVIAL
1934         typename enable_if_c<
1935             is_vec<V>::value && vec_traits<V>::dim>=4,
1936             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>::type
1937         XYW( V & a )
1938             {
1939             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3 > > > > &>(a);
1940             }
1941         template <class V>
1942         BOOST_QVM_INLINE_TRIVIAL
1943         typename enable_if_c<
1944             is_vec<V>::value && vec_traits<V>::dim>=4,
1945             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1946         _1XW( V const & a )
1947             {
1948             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1949             }
1950         template <class V>
1951         BOOST_QVM_INLINE_TRIVIAL
1952         typename enable_if_c<
1953             is_vec<V>::value && vec_traits<V>::dim>=4,
1954             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
1955         _1XW( V & a )
1956             {
1957             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
1958             }
1959         template <class V>
1960         BOOST_QVM_INLINE_TRIVIAL
1961         typename enable_if_c<
1962             is_vec<V>::value && vec_traits<V>::dim>=4,
1963             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1964         _0XW( V const & a )
1965             {
1966             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1967             }
1968         template <class V>
1969         BOOST_QVM_INLINE_TRIVIAL
1970         typename enable_if_c<
1971             is_vec<V>::value && vec_traits<V>::dim>=4,
1972             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
1973         _0XW( V & a )
1974             {
1975             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
1976             }
1977         template <class V>
1978         BOOST_QVM_INLINE_TRIVIAL
1979         typename enable_if_c<
1980             is_vec<V>::value && vec_traits<V>::dim>=4,
1981             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
1982         WXW( V const & a )
1983             {
1984             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
1985             }
1986         template <class V>
1987         BOOST_QVM_INLINE_TRIVIAL
1988         typename enable_if_c<
1989             is_vec<V>::value && vec_traits<V>::dim>=4,
1990             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
1991         WXW( V & a )
1992             {
1993             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
1994             }
1995         template <class V>
1996         BOOST_QVM_INLINE_TRIVIAL
1997         typename enable_if_c<
1998             is_vec<V>::value && vec_traits<V>::dim>=4,
1999             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
2000         ZXW( V const & a )
2001             {
2002             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
2003             }
2004         template <class V>
2005         BOOST_QVM_INLINE_TRIVIAL
2006         typename enable_if_c<
2007             is_vec<V>::value && vec_traits<V>::dim>=4,
2008             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
2009         ZXW( V & a )
2010             {
2011             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
2012             }
2013         template <class V>
2014         BOOST_QVM_INLINE_TRIVIAL
2015         typename enable_if_c<
2016             is_vec<V>::value && vec_traits<V>::dim>=4,
2017             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
2018         YXW( V const & a )
2019             {
2020             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
2021             }
2022         template <class V>
2023         BOOST_QVM_INLINE_TRIVIAL
2024         typename enable_if_c<
2025             is_vec<V>::value && vec_traits<V>::dim>=4,
2026             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
2027         YXW( V & a )
2028             {
2029             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
2030             }
2031         template <class V>
2032         BOOST_QVM_INLINE_TRIVIAL
2033         typename enable_if_c<
2034             is_vec<V>::value && vec_traits<V>::dim>=4,
2035             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>::type
2036         XXW( V const & a )
2037             {
2038             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > const &>(a);
2039             }
2040         template <class V>
2041         BOOST_QVM_INLINE_TRIVIAL
2042         typename enable_if_c<
2043             is_vec<V>::value && vec_traits<V>::dim>=4,
2044             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>::type
2045         XXW( V & a )
2046             {
2047             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3 > > > > &>(a);
2048             }
2049         template <class V>
2050         BOOST_QVM_INLINE_TRIVIAL
2051         typename enable_if_c<
2052             is_vec<V>::value && vec_traits<V>::dim>=3,
2053             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2054         _11Z( V const & a )
2055             {
2056             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2057             }
2058         template <class V>
2059         BOOST_QVM_INLINE_TRIVIAL
2060         typename enable_if_c<
2061             is_vec<V>::value && vec_traits<V>::dim>=3,
2062             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2063         _11Z( V & a )
2064             {
2065             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2066             }
2067         template <class V>
2068         BOOST_QVM_INLINE_TRIVIAL
2069         typename enable_if_c<
2070             is_vec<V>::value && vec_traits<V>::dim>=3,
2071             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2072         _01Z( V const & a )
2073             {
2074             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2075             }
2076         template <class V>
2077         BOOST_QVM_INLINE_TRIVIAL
2078         typename enable_if_c<
2079             is_vec<V>::value && vec_traits<V>::dim>=3,
2080             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2081         _01Z( V & a )
2082             {
2083             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2084             }
2085         template <class V>
2086         BOOST_QVM_INLINE_TRIVIAL
2087         typename enable_if_c<
2088             is_vec<V>::value && vec_traits<V>::dim>=4,
2089             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2090         W1Z( V const & a )
2091             {
2092             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2093             }
2094         template <class V>
2095         BOOST_QVM_INLINE_TRIVIAL
2096         typename enable_if_c<
2097             is_vec<V>::value && vec_traits<V>::dim>=4,
2098             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2099         W1Z( V & a )
2100             {
2101             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2102             }
2103         template <class V>
2104         BOOST_QVM_INLINE_TRIVIAL
2105         typename enable_if_c<
2106             is_vec<V>::value && vec_traits<V>::dim>=3,
2107             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2108         Z1Z( V const & a )
2109             {
2110             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2111             }
2112         template <class V>
2113         BOOST_QVM_INLINE_TRIVIAL
2114         typename enable_if_c<
2115             is_vec<V>::value && vec_traits<V>::dim>=3,
2116             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2117         Z1Z( V & a )
2118             {
2119             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2120             }
2121         template <class V>
2122         BOOST_QVM_INLINE_TRIVIAL
2123         typename enable_if_c<
2124             is_vec<V>::value && vec_traits<V>::dim>=3,
2125             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2126         Y1Z( V const & a )
2127             {
2128             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2129             }
2130         template <class V>
2131         BOOST_QVM_INLINE_TRIVIAL
2132         typename enable_if_c<
2133             is_vec<V>::value && vec_traits<V>::dim>=3,
2134             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2135         Y1Z( V & a )
2136             {
2137             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2138             }
2139         template <class V>
2140         BOOST_QVM_INLINE_TRIVIAL
2141         typename enable_if_c<
2142             is_vec<V>::value && vec_traits<V>::dim>=3,
2143             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2144         X1Z( V const & a )
2145             {
2146             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2147             }
2148         template <class V>
2149         BOOST_QVM_INLINE_TRIVIAL
2150         typename enable_if_c<
2151             is_vec<V>::value && vec_traits<V>::dim>=3,
2152             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>::type
2153         X1Z( V & a )
2154             {
2155             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2156             }
2157         template <class V>
2158         BOOST_QVM_INLINE_TRIVIAL
2159         typename enable_if_c<
2160             is_vec<V>::value && vec_traits<V>::dim>=3,
2161             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2162         _10Z( V const & a )
2163             {
2164             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2165             }
2166         template <class V>
2167         BOOST_QVM_INLINE_TRIVIAL
2168         typename enable_if_c<
2169             is_vec<V>::value && vec_traits<V>::dim>=3,
2170             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2171         _10Z( V & a )
2172             {
2173             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2174             }
2175         template <class V>
2176         BOOST_QVM_INLINE_TRIVIAL
2177         typename enable_if_c<
2178             is_vec<V>::value && vec_traits<V>::dim>=3,
2179             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2180         _00Z( V const & a )
2181             {
2182             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2183             }
2184         template <class V>
2185         BOOST_QVM_INLINE_TRIVIAL
2186         typename enable_if_c<
2187             is_vec<V>::value && vec_traits<V>::dim>=3,
2188             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2189         _00Z( V & a )
2190             {
2191             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2192             }
2193         template <class V>
2194         BOOST_QVM_INLINE_TRIVIAL
2195         typename enable_if_c<
2196             is_vec<V>::value && vec_traits<V>::dim>=4,
2197             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2198         W0Z( V const & a )
2199             {
2200             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2201             }
2202         template <class V>
2203         BOOST_QVM_INLINE_TRIVIAL
2204         typename enable_if_c<
2205             is_vec<V>::value && vec_traits<V>::dim>=4,
2206             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2207         W0Z( V & a )
2208             {
2209             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2210             }
2211         template <class V>
2212         BOOST_QVM_INLINE_TRIVIAL
2213         typename enable_if_c<
2214             is_vec<V>::value && vec_traits<V>::dim>=3,
2215             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2216         Z0Z( V const & a )
2217             {
2218             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2219             }
2220         template <class V>
2221         BOOST_QVM_INLINE_TRIVIAL
2222         typename enable_if_c<
2223             is_vec<V>::value && vec_traits<V>::dim>=3,
2224             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2225         Z0Z( V & a )
2226             {
2227             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2228             }
2229         template <class V>
2230         BOOST_QVM_INLINE_TRIVIAL
2231         typename enable_if_c<
2232             is_vec<V>::value && vec_traits<V>::dim>=3,
2233             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2234         Y0Z( V const & a )
2235             {
2236             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2237             }
2238         template <class V>
2239         BOOST_QVM_INLINE_TRIVIAL
2240         typename enable_if_c<
2241             is_vec<V>::value && vec_traits<V>::dim>=3,
2242             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2243         Y0Z( V & a )
2244             {
2245             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2246             }
2247         template <class V>
2248         BOOST_QVM_INLINE_TRIVIAL
2249         typename enable_if_c<
2250             is_vec<V>::value && vec_traits<V>::dim>=3,
2251             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2252         X0Z( V const & a )
2253             {
2254             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2255             }
2256         template <class V>
2257         BOOST_QVM_INLINE_TRIVIAL
2258         typename enable_if_c<
2259             is_vec<V>::value && vec_traits<V>::dim>=3,
2260             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>::type
2261         X0Z( V & a )
2262             {
2263             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2264             }
2265         template <class V>
2266         BOOST_QVM_INLINE_TRIVIAL
2267         typename enable_if_c<
2268             is_vec<V>::value && vec_traits<V>::dim>=4,
2269             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2270         _1WZ( V const & a )
2271             {
2272             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2273             }
2274         template <class V>
2275         BOOST_QVM_INLINE_TRIVIAL
2276         typename enable_if_c<
2277             is_vec<V>::value && vec_traits<V>::dim>=4,
2278             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2279         _1WZ( V & a )
2280             {
2281             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2282             }
2283         template <class V>
2284         BOOST_QVM_INLINE_TRIVIAL
2285         typename enable_if_c<
2286             is_vec<V>::value && vec_traits<V>::dim>=4,
2287             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2288         _0WZ( V const & a )
2289             {
2290             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2291             }
2292         template <class V>
2293         BOOST_QVM_INLINE_TRIVIAL
2294         typename enable_if_c<
2295             is_vec<V>::value && vec_traits<V>::dim>=4,
2296             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2297         _0WZ( V & a )
2298             {
2299             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2300             }
2301         template <class V>
2302         BOOST_QVM_INLINE_TRIVIAL
2303         typename enable_if_c<
2304             is_vec<V>::value && vec_traits<V>::dim>=4,
2305             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2306         WWZ( V const & a )
2307             {
2308             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2309             }
2310         template <class V>
2311         BOOST_QVM_INLINE_TRIVIAL
2312         typename enable_if_c<
2313             is_vec<V>::value && vec_traits<V>::dim>=4,
2314             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2315         WWZ( V & a )
2316             {
2317             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2318             }
2319         template <class V>
2320         BOOST_QVM_INLINE_TRIVIAL
2321         typename enable_if_c<
2322             is_vec<V>::value && vec_traits<V>::dim>=4,
2323             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2324         ZWZ( V const & a )
2325             {
2326             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2327             }
2328         template <class V>
2329         BOOST_QVM_INLINE_TRIVIAL
2330         typename enable_if_c<
2331             is_vec<V>::value && vec_traits<V>::dim>=4,
2332             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2333         ZWZ( V & a )
2334             {
2335             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2336             }
2337         template <class V>
2338         BOOST_QVM_INLINE_TRIVIAL
2339         typename enable_if_c<
2340             is_vec<V>::value && vec_traits<V>::dim>=4,
2341             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2342         YWZ( V const & a )
2343             {
2344             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2345             }
2346         template <class V>
2347         BOOST_QVM_INLINE_TRIVIAL
2348         typename enable_if_c<
2349             is_vec<V>::value && vec_traits<V>::dim>=4,
2350             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2351         YWZ( V & a )
2352             {
2353             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2354             }
2355         template <class V>
2356         BOOST_QVM_INLINE_TRIVIAL
2357         typename enable_if_c<
2358             is_vec<V>::value && vec_traits<V>::dim>=4,
2359             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>::type
2360         XWZ( V const & a )
2361             {
2362             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2363             }
2364         template <class V>
2365         BOOST_QVM_INLINE_TRIVIAL
2366         typename enable_if_c<
2367             is_vec<V>::value && vec_traits<V>::dim>=4,
2368             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>::type
2369         XWZ( V & a )
2370             {
2371             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2 > > > > &>(a);
2372             }
2373         template <class V>
2374         BOOST_QVM_INLINE_TRIVIAL
2375         typename enable_if_c<
2376             is_vec<V>::value && vec_traits<V>::dim>=3,
2377             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2378         _1ZZ( V const & a )
2379             {
2380             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2381             }
2382         template <class V>
2383         BOOST_QVM_INLINE_TRIVIAL
2384         typename enable_if_c<
2385             is_vec<V>::value && vec_traits<V>::dim>=3,
2386             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2387         _1ZZ( V & a )
2388             {
2389             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2390             }
2391         template <class V>
2392         BOOST_QVM_INLINE_TRIVIAL
2393         typename enable_if_c<
2394             is_vec<V>::value && vec_traits<V>::dim>=3,
2395             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2396         _0ZZ( V const & a )
2397             {
2398             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2399             }
2400         template <class V>
2401         BOOST_QVM_INLINE_TRIVIAL
2402         typename enable_if_c<
2403             is_vec<V>::value && vec_traits<V>::dim>=3,
2404             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2405         _0ZZ( V & a )
2406             {
2407             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2408             }
2409         template <class V>
2410         BOOST_QVM_INLINE_TRIVIAL
2411         typename enable_if_c<
2412             is_vec<V>::value && vec_traits<V>::dim>=4,
2413             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2414         WZZ( V const & a )
2415             {
2416             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2417             }
2418         template <class V>
2419         BOOST_QVM_INLINE_TRIVIAL
2420         typename enable_if_c<
2421             is_vec<V>::value && vec_traits<V>::dim>=4,
2422             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2423         WZZ( V & a )
2424             {
2425             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2426             }
2427         template <class V>
2428         BOOST_QVM_INLINE_TRIVIAL
2429         typename enable_if_c<
2430             is_vec<V>::value && vec_traits<V>::dim>=3,
2431             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2432         ZZZ( V const & a )
2433             {
2434             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2435             }
2436         template <class V>
2437         BOOST_QVM_INLINE_TRIVIAL
2438         typename enable_if_c<
2439             is_vec<V>::value && vec_traits<V>::dim>=3,
2440             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2441         ZZZ( V & a )
2442             {
2443             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2444             }
2445         template <class V>
2446         BOOST_QVM_INLINE_TRIVIAL
2447         typename enable_if_c<
2448             is_vec<V>::value && vec_traits<V>::dim>=3,
2449             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2450         YZZ( V const & a )
2451             {
2452             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2453             }
2454         template <class V>
2455         BOOST_QVM_INLINE_TRIVIAL
2456         typename enable_if_c<
2457             is_vec<V>::value && vec_traits<V>::dim>=3,
2458             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2459         YZZ( V & a )
2460             {
2461             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2462             }
2463         template <class V>
2464         BOOST_QVM_INLINE_TRIVIAL
2465         typename enable_if_c<
2466             is_vec<V>::value && vec_traits<V>::dim>=3,
2467             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>::type
2468         XZZ( V const & a )
2469             {
2470             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2471             }
2472         template <class V>
2473         BOOST_QVM_INLINE_TRIVIAL
2474         typename enable_if_c<
2475             is_vec<V>::value && vec_traits<V>::dim>=3,
2476             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>::type
2477         XZZ( V & a )
2478             {
2479             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2 > > > > &>(a);
2480             }
2481         template <class V>
2482         BOOST_QVM_INLINE_TRIVIAL
2483         typename enable_if_c<
2484             is_vec<V>::value && vec_traits<V>::dim>=3,
2485             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2486         _1YZ( V const & a )
2487             {
2488             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2489             }
2490         template <class V>
2491         BOOST_QVM_INLINE_TRIVIAL
2492         typename enable_if_c<
2493             is_vec<V>::value && vec_traits<V>::dim>=3,
2494             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2495         _1YZ( V & a )
2496             {
2497             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2498             }
2499         template <class V>
2500         BOOST_QVM_INLINE_TRIVIAL
2501         typename enable_if_c<
2502             is_vec<V>::value && vec_traits<V>::dim>=3,
2503             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2504         _0YZ( V const & a )
2505             {
2506             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2507             }
2508         template <class V>
2509         BOOST_QVM_INLINE_TRIVIAL
2510         typename enable_if_c<
2511             is_vec<V>::value && vec_traits<V>::dim>=3,
2512             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2513         _0YZ( V & a )
2514             {
2515             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2516             }
2517         template <class V>
2518         BOOST_QVM_INLINE_TRIVIAL
2519         typename enable_if_c<
2520             is_vec<V>::value && vec_traits<V>::dim>=4,
2521             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2522         WYZ( V const & a )
2523             {
2524             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2525             }
2526         template <class V>
2527         BOOST_QVM_INLINE_TRIVIAL
2528         typename enable_if_c<
2529             is_vec<V>::value && vec_traits<V>::dim>=4,
2530             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2531         WYZ( V & a )
2532             {
2533             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2534             }
2535         template <class V>
2536         BOOST_QVM_INLINE_TRIVIAL
2537         typename enable_if_c<
2538             is_vec<V>::value && vec_traits<V>::dim>=3,
2539             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2540         ZYZ( V const & a )
2541             {
2542             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2543             }
2544         template <class V>
2545         BOOST_QVM_INLINE_TRIVIAL
2546         typename enable_if_c<
2547             is_vec<V>::value && vec_traits<V>::dim>=3,
2548             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2549         ZYZ( V & a )
2550             {
2551             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2552             }
2553         template <class V>
2554         BOOST_QVM_INLINE_TRIVIAL
2555         typename enable_if_c<
2556             is_vec<V>::value && vec_traits<V>::dim>=3,
2557             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2558         YYZ( V const & a )
2559             {
2560             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2561             }
2562         template <class V>
2563         BOOST_QVM_INLINE_TRIVIAL
2564         typename enable_if_c<
2565             is_vec<V>::value && vec_traits<V>::dim>=3,
2566             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2567         YYZ( V & a )
2568             {
2569             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2570             }
2571         template <class V>
2572         BOOST_QVM_INLINE_TRIVIAL
2573         typename enable_if_c<
2574             is_vec<V>::value && vec_traits<V>::dim>=3,
2575             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>::type
2576         XYZ( V const & a )
2577             {
2578             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2579             }
2580         template <class V>
2581         BOOST_QVM_INLINE_TRIVIAL
2582         typename enable_if_c<
2583             is_vec<V>::value && vec_traits<V>::dim>=3,
2584             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>::type
2585         XYZ( V & a )
2586             {
2587             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2 > > > > &>(a);
2588             }
2589         template <class V>
2590         BOOST_QVM_INLINE_TRIVIAL
2591         typename enable_if_c<
2592             is_vec<V>::value && vec_traits<V>::dim>=3,
2593             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2594         _1XZ( V const & a )
2595             {
2596             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2597             }
2598         template <class V>
2599         BOOST_QVM_INLINE_TRIVIAL
2600         typename enable_if_c<
2601             is_vec<V>::value && vec_traits<V>::dim>=3,
2602             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2603         _1XZ( V & a )
2604             {
2605             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2606             }
2607         template <class V>
2608         BOOST_QVM_INLINE_TRIVIAL
2609         typename enable_if_c<
2610             is_vec<V>::value && vec_traits<V>::dim>=3,
2611             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2612         _0XZ( V const & a )
2613             {
2614             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2615             }
2616         template <class V>
2617         BOOST_QVM_INLINE_TRIVIAL
2618         typename enable_if_c<
2619             is_vec<V>::value && vec_traits<V>::dim>=3,
2620             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2621         _0XZ( V & a )
2622             {
2623             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2624             }
2625         template <class V>
2626         BOOST_QVM_INLINE_TRIVIAL
2627         typename enable_if_c<
2628             is_vec<V>::value && vec_traits<V>::dim>=4,
2629             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2630         WXZ( V const & a )
2631             {
2632             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2633             }
2634         template <class V>
2635         BOOST_QVM_INLINE_TRIVIAL
2636         typename enable_if_c<
2637             is_vec<V>::value && vec_traits<V>::dim>=4,
2638             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2639         WXZ( V & a )
2640             {
2641             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2642             }
2643         template <class V>
2644         BOOST_QVM_INLINE_TRIVIAL
2645         typename enable_if_c<
2646             is_vec<V>::value && vec_traits<V>::dim>=3,
2647             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2648         ZXZ( V const & a )
2649             {
2650             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2651             }
2652         template <class V>
2653         BOOST_QVM_INLINE_TRIVIAL
2654         typename enable_if_c<
2655             is_vec<V>::value && vec_traits<V>::dim>=3,
2656             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2657         ZXZ( V & a )
2658             {
2659             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2660             }
2661         template <class V>
2662         BOOST_QVM_INLINE_TRIVIAL
2663         typename enable_if_c<
2664             is_vec<V>::value && vec_traits<V>::dim>=3,
2665             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2666         YXZ( V const & a )
2667             {
2668             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2669             }
2670         template <class V>
2671         BOOST_QVM_INLINE_TRIVIAL
2672         typename enable_if_c<
2673             is_vec<V>::value && vec_traits<V>::dim>=3,
2674             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2675         YXZ( V & a )
2676             {
2677             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2678             }
2679         template <class V>
2680         BOOST_QVM_INLINE_TRIVIAL
2681         typename enable_if_c<
2682             is_vec<V>::value && vec_traits<V>::dim>=3,
2683             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>::type
2684         XXZ( V const & a )
2685             {
2686             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > const &>(a);
2687             }
2688         template <class V>
2689         BOOST_QVM_INLINE_TRIVIAL
2690         typename enable_if_c<
2691             is_vec<V>::value && vec_traits<V>::dim>=3,
2692             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>::type
2693         XXZ( V & a )
2694             {
2695             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2 > > > > &>(a);
2696             }
2697         template <class V>
2698         BOOST_QVM_INLINE_TRIVIAL
2699         typename enable_if_c<
2700             is_vec<V>::value && vec_traits<V>::dim>=2,
2701             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2702         _11Y( V const & a )
2703             {
2704             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2705             }
2706         template <class V>
2707         BOOST_QVM_INLINE_TRIVIAL
2708         typename enable_if_c<
2709             is_vec<V>::value && vec_traits<V>::dim>=2,
2710             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2711         _11Y( V & a )
2712             {
2713             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2714             }
2715         template <class V>
2716         BOOST_QVM_INLINE_TRIVIAL
2717         typename enable_if_c<
2718             is_vec<V>::value && vec_traits<V>::dim>=2,
2719             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2720         _01Y( V const & a )
2721             {
2722             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2723             }
2724         template <class V>
2725         BOOST_QVM_INLINE_TRIVIAL
2726         typename enable_if_c<
2727             is_vec<V>::value && vec_traits<V>::dim>=2,
2728             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2729         _01Y( V & a )
2730             {
2731             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2732             }
2733         template <class V>
2734         BOOST_QVM_INLINE_TRIVIAL
2735         typename enable_if_c<
2736             is_vec<V>::value && vec_traits<V>::dim>=4,
2737             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2738         W1Y( V const & a )
2739             {
2740             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2741             }
2742         template <class V>
2743         BOOST_QVM_INLINE_TRIVIAL
2744         typename enable_if_c<
2745             is_vec<V>::value && vec_traits<V>::dim>=4,
2746             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2747         W1Y( V & a )
2748             {
2749             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2750             }
2751         template <class V>
2752         BOOST_QVM_INLINE_TRIVIAL
2753         typename enable_if_c<
2754             is_vec<V>::value && vec_traits<V>::dim>=3,
2755             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2756         Z1Y( V const & a )
2757             {
2758             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2759             }
2760         template <class V>
2761         BOOST_QVM_INLINE_TRIVIAL
2762         typename enable_if_c<
2763             is_vec<V>::value && vec_traits<V>::dim>=3,
2764             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2765         Z1Y( V & a )
2766             {
2767             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2768             }
2769         template <class V>
2770         BOOST_QVM_INLINE_TRIVIAL
2771         typename enable_if_c<
2772             is_vec<V>::value && vec_traits<V>::dim>=2,
2773             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2774         Y1Y( V const & a )
2775             {
2776             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2777             }
2778         template <class V>
2779         BOOST_QVM_INLINE_TRIVIAL
2780         typename enable_if_c<
2781             is_vec<V>::value && vec_traits<V>::dim>=2,
2782             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2783         Y1Y( V & a )
2784             {
2785             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2786             }
2787         template <class V>
2788         BOOST_QVM_INLINE_TRIVIAL
2789         typename enable_if_c<
2790             is_vec<V>::value && vec_traits<V>::dim>=2,
2791             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>::type
2792         X1Y( V const & a )
2793             {
2794             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2795             }
2796         template <class V>
2797         BOOST_QVM_INLINE_TRIVIAL
2798         typename enable_if_c<
2799             is_vec<V>::value && vec_traits<V>::dim>=2,
2800             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>::type
2801         X1Y( V & a )
2802             {
2803             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1 > > > > &>(a);
2804             }
2805         template <class V>
2806         BOOST_QVM_INLINE_TRIVIAL
2807         typename enable_if_c<
2808             is_vec<V>::value && vec_traits<V>::dim>=2,
2809             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2810         _10Y( V const & a )
2811             {
2812             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2813             }
2814         template <class V>
2815         BOOST_QVM_INLINE_TRIVIAL
2816         typename enable_if_c<
2817             is_vec<V>::value && vec_traits<V>::dim>=2,
2818             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2819         _10Y( V & a )
2820             {
2821             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2822             }
2823         template <class V>
2824         BOOST_QVM_INLINE_TRIVIAL
2825         typename enable_if_c<
2826             is_vec<V>::value && vec_traits<V>::dim>=2,
2827             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2828         _00Y( V const & a )
2829             {
2830             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2831             }
2832         template <class V>
2833         BOOST_QVM_INLINE_TRIVIAL
2834         typename enable_if_c<
2835             is_vec<V>::value && vec_traits<V>::dim>=2,
2836             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2837         _00Y( V & a )
2838             {
2839             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2840             }
2841         template <class V>
2842         BOOST_QVM_INLINE_TRIVIAL
2843         typename enable_if_c<
2844             is_vec<V>::value && vec_traits<V>::dim>=4,
2845             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2846         W0Y( V const & a )
2847             {
2848             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2849             }
2850         template <class V>
2851         BOOST_QVM_INLINE_TRIVIAL
2852         typename enable_if_c<
2853             is_vec<V>::value && vec_traits<V>::dim>=4,
2854             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2855         W0Y( V & a )
2856             {
2857             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2858             }
2859         template <class V>
2860         BOOST_QVM_INLINE_TRIVIAL
2861         typename enable_if_c<
2862             is_vec<V>::value && vec_traits<V>::dim>=3,
2863             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2864         Z0Y( V const & a )
2865             {
2866             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2867             }
2868         template <class V>
2869         BOOST_QVM_INLINE_TRIVIAL
2870         typename enable_if_c<
2871             is_vec<V>::value && vec_traits<V>::dim>=3,
2872             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2873         Z0Y( V & a )
2874             {
2875             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2876             }
2877         template <class V>
2878         BOOST_QVM_INLINE_TRIVIAL
2879         typename enable_if_c<
2880             is_vec<V>::value && vec_traits<V>::dim>=2,
2881             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2882         Y0Y( V const & a )
2883             {
2884             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2885             }
2886         template <class V>
2887         BOOST_QVM_INLINE_TRIVIAL
2888         typename enable_if_c<
2889             is_vec<V>::value && vec_traits<V>::dim>=2,
2890             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2891         Y0Y( V & a )
2892             {
2893             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2894             }
2895         template <class V>
2896         BOOST_QVM_INLINE_TRIVIAL
2897         typename enable_if_c<
2898             is_vec<V>::value && vec_traits<V>::dim>=2,
2899             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>::type
2900         X0Y( V const & a )
2901             {
2902             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2903             }
2904         template <class V>
2905         BOOST_QVM_INLINE_TRIVIAL
2906         typename enable_if_c<
2907             is_vec<V>::value && vec_traits<V>::dim>=2,
2908             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>::type
2909         X0Y( V & a )
2910             {
2911             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1 > > > > &>(a);
2912             }
2913         template <class V>
2914         BOOST_QVM_INLINE_TRIVIAL
2915         typename enable_if_c<
2916             is_vec<V>::value && vec_traits<V>::dim>=4,
2917             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2918         _1WY( V const & a )
2919             {
2920             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2921             }
2922         template <class V>
2923         BOOST_QVM_INLINE_TRIVIAL
2924         typename enable_if_c<
2925             is_vec<V>::value && vec_traits<V>::dim>=4,
2926             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2927         _1WY( V & a )
2928             {
2929             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2930             }
2931         template <class V>
2932         BOOST_QVM_INLINE_TRIVIAL
2933         typename enable_if_c<
2934             is_vec<V>::value && vec_traits<V>::dim>=4,
2935             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2936         _0WY( V const & a )
2937             {
2938             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2939             }
2940         template <class V>
2941         BOOST_QVM_INLINE_TRIVIAL
2942         typename enable_if_c<
2943             is_vec<V>::value && vec_traits<V>::dim>=4,
2944             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2945         _0WY( V & a )
2946             {
2947             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2948             }
2949         template <class V>
2950         BOOST_QVM_INLINE_TRIVIAL
2951         typename enable_if_c<
2952             is_vec<V>::value && vec_traits<V>::dim>=4,
2953             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2954         WWY( V const & a )
2955             {
2956             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2957             }
2958         template <class V>
2959         BOOST_QVM_INLINE_TRIVIAL
2960         typename enable_if_c<
2961             is_vec<V>::value && vec_traits<V>::dim>=4,
2962             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2963         WWY( V & a )
2964             {
2965             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2966             }
2967         template <class V>
2968         BOOST_QVM_INLINE_TRIVIAL
2969         typename enable_if_c<
2970             is_vec<V>::value && vec_traits<V>::dim>=4,
2971             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2972         ZWY( V const & a )
2973             {
2974             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2975             }
2976         template <class V>
2977         BOOST_QVM_INLINE_TRIVIAL
2978         typename enable_if_c<
2979             is_vec<V>::value && vec_traits<V>::dim>=4,
2980             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2981         ZWY( V & a )
2982             {
2983             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
2984             }
2985         template <class V>
2986         BOOST_QVM_INLINE_TRIVIAL
2987         typename enable_if_c<
2988             is_vec<V>::value && vec_traits<V>::dim>=4,
2989             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
2990         YWY( V const & a )
2991             {
2992             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
2993             }
2994         template <class V>
2995         BOOST_QVM_INLINE_TRIVIAL
2996         typename enable_if_c<
2997             is_vec<V>::value && vec_traits<V>::dim>=4,
2998             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
2999         YWY( V & a )
3000             {
3001             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
3002             }
3003         template <class V>
3004         BOOST_QVM_INLINE_TRIVIAL
3005         typename enable_if_c<
3006             is_vec<V>::value && vec_traits<V>::dim>=4,
3007             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>::type
3008         XWY( V const & a )
3009             {
3010             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3011             }
3012         template <class V>
3013         BOOST_QVM_INLINE_TRIVIAL
3014         typename enable_if_c<
3015             is_vec<V>::value && vec_traits<V>::dim>=4,
3016             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>::type
3017         XWY( V & a )
3018             {
3019             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1 > > > > &>(a);
3020             }
3021         template <class V>
3022         BOOST_QVM_INLINE_TRIVIAL
3023         typename enable_if_c<
3024             is_vec<V>::value && vec_traits<V>::dim>=3,
3025             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3026         _1ZY( V const & a )
3027             {
3028             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3029             }
3030         template <class V>
3031         BOOST_QVM_INLINE_TRIVIAL
3032         typename enable_if_c<
3033             is_vec<V>::value && vec_traits<V>::dim>=3,
3034             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3035         _1ZY( V & a )
3036             {
3037             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3038             }
3039         template <class V>
3040         BOOST_QVM_INLINE_TRIVIAL
3041         typename enable_if_c<
3042             is_vec<V>::value && vec_traits<V>::dim>=3,
3043             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3044         _0ZY( V const & a )
3045             {
3046             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3047             }
3048         template <class V>
3049         BOOST_QVM_INLINE_TRIVIAL
3050         typename enable_if_c<
3051             is_vec<V>::value && vec_traits<V>::dim>=3,
3052             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3053         _0ZY( V & a )
3054             {
3055             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3056             }
3057         template <class V>
3058         BOOST_QVM_INLINE_TRIVIAL
3059         typename enable_if_c<
3060             is_vec<V>::value && vec_traits<V>::dim>=4,
3061             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3062         WZY( V const & a )
3063             {
3064             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3065             }
3066         template <class V>
3067         BOOST_QVM_INLINE_TRIVIAL
3068         typename enable_if_c<
3069             is_vec<V>::value && vec_traits<V>::dim>=4,
3070             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3071         WZY( V & a )
3072             {
3073             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3074             }
3075         template <class V>
3076         BOOST_QVM_INLINE_TRIVIAL
3077         typename enable_if_c<
3078             is_vec<V>::value && vec_traits<V>::dim>=3,
3079             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3080         ZZY( V const & a )
3081             {
3082             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3083             }
3084         template <class V>
3085         BOOST_QVM_INLINE_TRIVIAL
3086         typename enable_if_c<
3087             is_vec<V>::value && vec_traits<V>::dim>=3,
3088             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3089         ZZY( V & a )
3090             {
3091             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3092             }
3093         template <class V>
3094         BOOST_QVM_INLINE_TRIVIAL
3095         typename enable_if_c<
3096             is_vec<V>::value && vec_traits<V>::dim>=3,
3097             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3098         YZY( V const & a )
3099             {
3100             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3101             }
3102         template <class V>
3103         BOOST_QVM_INLINE_TRIVIAL
3104         typename enable_if_c<
3105             is_vec<V>::value && vec_traits<V>::dim>=3,
3106             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3107         YZY( V & a )
3108             {
3109             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3110             }
3111         template <class V>
3112         BOOST_QVM_INLINE_TRIVIAL
3113         typename enable_if_c<
3114             is_vec<V>::value && vec_traits<V>::dim>=3,
3115             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>::type
3116         XZY( V const & a )
3117             {
3118             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3119             }
3120         template <class V>
3121         BOOST_QVM_INLINE_TRIVIAL
3122         typename enable_if_c<
3123             is_vec<V>::value && vec_traits<V>::dim>=3,
3124             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>::type
3125         XZY( V & a )
3126             {
3127             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1 > > > > &>(a);
3128             }
3129         template <class V>
3130         BOOST_QVM_INLINE_TRIVIAL
3131         typename enable_if_c<
3132             is_vec<V>::value && vec_traits<V>::dim>=2,
3133             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3134         _1YY( V const & a )
3135             {
3136             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3137             }
3138         template <class V>
3139         BOOST_QVM_INLINE_TRIVIAL
3140         typename enable_if_c<
3141             is_vec<V>::value && vec_traits<V>::dim>=2,
3142             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3143         _1YY( V & a )
3144             {
3145             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3146             }
3147         template <class V>
3148         BOOST_QVM_INLINE_TRIVIAL
3149         typename enable_if_c<
3150             is_vec<V>::value && vec_traits<V>::dim>=2,
3151             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3152         _0YY( V const & a )
3153             {
3154             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3155             }
3156         template <class V>
3157         BOOST_QVM_INLINE_TRIVIAL
3158         typename enable_if_c<
3159             is_vec<V>::value && vec_traits<V>::dim>=2,
3160             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3161         _0YY( V & a )
3162             {
3163             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3164             }
3165         template <class V>
3166         BOOST_QVM_INLINE_TRIVIAL
3167         typename enable_if_c<
3168             is_vec<V>::value && vec_traits<V>::dim>=4,
3169             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3170         WYY( V const & a )
3171             {
3172             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3173             }
3174         template <class V>
3175         BOOST_QVM_INLINE_TRIVIAL
3176         typename enable_if_c<
3177             is_vec<V>::value && vec_traits<V>::dim>=4,
3178             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3179         WYY( V & a )
3180             {
3181             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3182             }
3183         template <class V>
3184         BOOST_QVM_INLINE_TRIVIAL
3185         typename enable_if_c<
3186             is_vec<V>::value && vec_traits<V>::dim>=3,
3187             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3188         ZYY( V const & a )
3189             {
3190             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3191             }
3192         template <class V>
3193         BOOST_QVM_INLINE_TRIVIAL
3194         typename enable_if_c<
3195             is_vec<V>::value && vec_traits<V>::dim>=3,
3196             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3197         ZYY( V & a )
3198             {
3199             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3200             }
3201         template <class V>
3202         BOOST_QVM_INLINE_TRIVIAL
3203         typename enable_if_c<
3204             is_vec<V>::value && vec_traits<V>::dim>=2,
3205             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3206         YYY( V const & a )
3207             {
3208             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3209             }
3210         template <class V>
3211         BOOST_QVM_INLINE_TRIVIAL
3212         typename enable_if_c<
3213             is_vec<V>::value && vec_traits<V>::dim>=2,
3214             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3215         YYY( V & a )
3216             {
3217             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3218             }
3219         template <class V>
3220         BOOST_QVM_INLINE_TRIVIAL
3221         typename enable_if_c<
3222             is_vec<V>::value && vec_traits<V>::dim>=2,
3223             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>::type
3224         XYY( V const & a )
3225             {
3226             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3227             }
3228         template <class V>
3229         BOOST_QVM_INLINE_TRIVIAL
3230         typename enable_if_c<
3231             is_vec<V>::value && vec_traits<V>::dim>=2,
3232             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>::type
3233         XYY( V & a )
3234             {
3235             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1 > > > > &>(a);
3236             }
3237         template <class V>
3238         BOOST_QVM_INLINE_TRIVIAL
3239         typename enable_if_c<
3240             is_vec<V>::value && vec_traits<V>::dim>=2,
3241             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3242         _1XY( V const & a )
3243             {
3244             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3245             }
3246         template <class V>
3247         BOOST_QVM_INLINE_TRIVIAL
3248         typename enable_if_c<
3249             is_vec<V>::value && vec_traits<V>::dim>=2,
3250             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3251         _1XY( V & a )
3252             {
3253             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3254             }
3255         template <class V>
3256         BOOST_QVM_INLINE_TRIVIAL
3257         typename enable_if_c<
3258             is_vec<V>::value && vec_traits<V>::dim>=2,
3259             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3260         _0XY( V const & a )
3261             {
3262             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3263             }
3264         template <class V>
3265         BOOST_QVM_INLINE_TRIVIAL
3266         typename enable_if_c<
3267             is_vec<V>::value && vec_traits<V>::dim>=2,
3268             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3269         _0XY( V & a )
3270             {
3271             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3272             }
3273         template <class V>
3274         BOOST_QVM_INLINE_TRIVIAL
3275         typename enable_if_c<
3276             is_vec<V>::value && vec_traits<V>::dim>=4,
3277             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3278         WXY( V const & a )
3279             {
3280             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3281             }
3282         template <class V>
3283         BOOST_QVM_INLINE_TRIVIAL
3284         typename enable_if_c<
3285             is_vec<V>::value && vec_traits<V>::dim>=4,
3286             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3287         WXY( V & a )
3288             {
3289             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3290             }
3291         template <class V>
3292         BOOST_QVM_INLINE_TRIVIAL
3293         typename enable_if_c<
3294             is_vec<V>::value && vec_traits<V>::dim>=3,
3295             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3296         ZXY( V const & a )
3297             {
3298             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3299             }
3300         template <class V>
3301         BOOST_QVM_INLINE_TRIVIAL
3302         typename enable_if_c<
3303             is_vec<V>::value && vec_traits<V>::dim>=3,
3304             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3305         ZXY( V & a )
3306             {
3307             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3308             }
3309         template <class V>
3310         BOOST_QVM_INLINE_TRIVIAL
3311         typename enable_if_c<
3312             is_vec<V>::value && vec_traits<V>::dim>=2,
3313             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3314         YXY( V const & a )
3315             {
3316             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3317             }
3318         template <class V>
3319         BOOST_QVM_INLINE_TRIVIAL
3320         typename enable_if_c<
3321             is_vec<V>::value && vec_traits<V>::dim>=2,
3322             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3323         YXY( V & a )
3324             {
3325             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3326             }
3327         template <class V>
3328         BOOST_QVM_INLINE_TRIVIAL
3329         typename enable_if_c<
3330             is_vec<V>::value && vec_traits<V>::dim>=2,
3331             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>::type
3332         XXY( V const & a )
3333             {
3334             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > const &>(a);
3335             }
3336         template <class V>
3337         BOOST_QVM_INLINE_TRIVIAL
3338         typename enable_if_c<
3339             is_vec<V>::value && vec_traits<V>::dim>=2,
3340             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>::type
3341         XXY( V & a )
3342             {
3343             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1 > > > > &>(a);
3344             }
3345         template <class V>
3346         BOOST_QVM_INLINE_TRIVIAL
3347         typename enable_if_c<
3348             is_vec<V>::value && vec_traits<V>::dim>=1,
3349             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3350         _11X( V const & a )
3351             {
3352             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3353             }
3354         template <class S>
3355         BOOST_QVM_INLINE_TRIVIAL
3356         typename enable_if_c<
3357             is_scalar<S>::value,
3358             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
_11X(S const & a)3359         _11X( S const & a )
3360             {
3361             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3362             }
3363         template <class V>
3364         BOOST_QVM_INLINE_TRIVIAL
3365         typename enable_if_c<
3366             is_vec<V>::value && vec_traits<V>::dim>=1,
3367             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3368         _11X( V & a )
3369             {
3370             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3371             }
3372         template <class S>
3373         BOOST_QVM_INLINE_TRIVIAL
3374         typename enable_if_c<
3375             is_scalar<S>::value,
3376             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
_11X(S & a)3377         _11X( S & a )
3378             {
3379             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3380             }
3381         template <class V>
3382         BOOST_QVM_INLINE_TRIVIAL
3383         typename enable_if_c<
3384             is_vec<V>::value && vec_traits<V>::dim>=1,
3385             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3386         _01X( V const & a )
3387             {
3388             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3389             }
3390         template <class S>
3391         BOOST_QVM_INLINE_TRIVIAL
3392         typename enable_if_c<
3393             is_scalar<S>::value,
3394             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
_01X(S const & a)3395         _01X( S const & a )
3396             {
3397             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3398             }
3399         template <class V>
3400         BOOST_QVM_INLINE_TRIVIAL
3401         typename enable_if_c<
3402             is_vec<V>::value && vec_traits<V>::dim>=1,
3403             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3404         _01X( V & a )
3405             {
3406             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3407             }
3408         template <class S>
3409         BOOST_QVM_INLINE_TRIVIAL
3410         typename enable_if_c<
3411             is_scalar<S>::value,
3412             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
_01X(S & a)3413         _01X( S & a )
3414             {
3415             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3416             }
3417         template <class V>
3418         BOOST_QVM_INLINE_TRIVIAL
3419         typename enable_if_c<
3420             is_vec<V>::value && vec_traits<V>::dim>=4,
3421             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3422         W1X( V const & a )
3423             {
3424             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3425             }
3426         template <class V>
3427         BOOST_QVM_INLINE_TRIVIAL
3428         typename enable_if_c<
3429             is_vec<V>::value && vec_traits<V>::dim>=4,
3430             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3431         W1X( V & a )
3432             {
3433             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3434             }
3435         template <class V>
3436         BOOST_QVM_INLINE_TRIVIAL
3437         typename enable_if_c<
3438             is_vec<V>::value && vec_traits<V>::dim>=3,
3439             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3440         Z1X( V const & a )
3441             {
3442             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3443             }
3444         template <class V>
3445         BOOST_QVM_INLINE_TRIVIAL
3446         typename enable_if_c<
3447             is_vec<V>::value && vec_traits<V>::dim>=3,
3448             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3449         Z1X( V & a )
3450             {
3451             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3452             }
3453         template <class V>
3454         BOOST_QVM_INLINE_TRIVIAL
3455         typename enable_if_c<
3456             is_vec<V>::value && vec_traits<V>::dim>=2,
3457             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3458         Y1X( V const & a )
3459             {
3460             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3461             }
3462         template <class V>
3463         BOOST_QVM_INLINE_TRIVIAL
3464         typename enable_if_c<
3465             is_vec<V>::value && vec_traits<V>::dim>=2,
3466             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3467         Y1X( V & a )
3468             {
3469             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3470             }
3471         template <class V>
3472         BOOST_QVM_INLINE_TRIVIAL
3473         typename enable_if_c<
3474             is_vec<V>::value && vec_traits<V>::dim>=1,
3475             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3476         X1X( V const & a )
3477             {
3478             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3479             }
3480         template <class S>
3481         BOOST_QVM_INLINE_TRIVIAL
3482         typename enable_if_c<
3483             is_scalar<S>::value,
3484             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>::type
X1X(S const & a)3485         X1X( S const & a )
3486             {
3487             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3488             }
3489         template <class V>
3490         BOOST_QVM_INLINE_TRIVIAL
3491         typename enable_if_c<
3492             is_vec<V>::value && vec_traits<V>::dim>=1,
3493             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
3494         X1X( V & a )
3495             {
3496             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3497             }
3498         template <class S>
3499         BOOST_QVM_INLINE_TRIVIAL
3500         typename enable_if_c<
3501             is_scalar<S>::value,
3502             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>::type
X1X(S & a)3503         X1X( S & a )
3504             {
3505             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3506             }
3507         template <class V>
3508         BOOST_QVM_INLINE_TRIVIAL
3509         typename enable_if_c<
3510             is_vec<V>::value && vec_traits<V>::dim>=1,
3511             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3512         _10X( V const & a )
3513             {
3514             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3515             }
3516         template <class S>
3517         BOOST_QVM_INLINE_TRIVIAL
3518         typename enable_if_c<
3519             is_scalar<S>::value,
3520             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
_10X(S const & a)3521         _10X( S const & a )
3522             {
3523             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3524             }
3525         template <class V>
3526         BOOST_QVM_INLINE_TRIVIAL
3527         typename enable_if_c<
3528             is_vec<V>::value && vec_traits<V>::dim>=1,
3529             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3530         _10X( V & a )
3531             {
3532             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3533             }
3534         template <class S>
3535         BOOST_QVM_INLINE_TRIVIAL
3536         typename enable_if_c<
3537             is_scalar<S>::value,
3538             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
_10X(S & a)3539         _10X( S & a )
3540             {
3541             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3542             }
3543         template <class V>
3544         BOOST_QVM_INLINE_TRIVIAL
3545         typename enable_if_c<
3546             is_vec<V>::value && vec_traits<V>::dim>=1,
3547             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3548         _00X( V const & a )
3549             {
3550             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3551             }
3552         template <class S>
3553         BOOST_QVM_INLINE_TRIVIAL
3554         typename enable_if_c<
3555             is_scalar<S>::value,
3556             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
_00X(S const & a)3557         _00X( S const & a )
3558             {
3559             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3560             }
3561         template <class V>
3562         BOOST_QVM_INLINE_TRIVIAL
3563         typename enable_if_c<
3564             is_vec<V>::value && vec_traits<V>::dim>=1,
3565             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3566         _00X( V & a )
3567             {
3568             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3569             }
3570         template <class S>
3571         BOOST_QVM_INLINE_TRIVIAL
3572         typename enable_if_c<
3573             is_scalar<S>::value,
3574             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
_00X(S & a)3575         _00X( S & a )
3576             {
3577             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3578             }
3579         template <class V>
3580         BOOST_QVM_INLINE_TRIVIAL
3581         typename enable_if_c<
3582             is_vec<V>::value && vec_traits<V>::dim>=4,
3583             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3584         W0X( V const & a )
3585             {
3586             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3587             }
3588         template <class V>
3589         BOOST_QVM_INLINE_TRIVIAL
3590         typename enable_if_c<
3591             is_vec<V>::value && vec_traits<V>::dim>=4,
3592             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3593         W0X( V & a )
3594             {
3595             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3596             }
3597         template <class V>
3598         BOOST_QVM_INLINE_TRIVIAL
3599         typename enable_if_c<
3600             is_vec<V>::value && vec_traits<V>::dim>=3,
3601             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3602         Z0X( V const & a )
3603             {
3604             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3605             }
3606         template <class V>
3607         BOOST_QVM_INLINE_TRIVIAL
3608         typename enable_if_c<
3609             is_vec<V>::value && vec_traits<V>::dim>=3,
3610             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3611         Z0X( V & a )
3612             {
3613             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3614             }
3615         template <class V>
3616         BOOST_QVM_INLINE_TRIVIAL
3617         typename enable_if_c<
3618             is_vec<V>::value && vec_traits<V>::dim>=2,
3619             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3620         Y0X( V const & a )
3621             {
3622             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3623             }
3624         template <class V>
3625         BOOST_QVM_INLINE_TRIVIAL
3626         typename enable_if_c<
3627             is_vec<V>::value && vec_traits<V>::dim>=2,
3628             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3629         Y0X( V & a )
3630             {
3631             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3632             }
3633         template <class V>
3634         BOOST_QVM_INLINE_TRIVIAL
3635         typename enable_if_c<
3636             is_vec<V>::value && vec_traits<V>::dim>=1,
3637             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3638         X0X( V const & a )
3639             {
3640             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3641             }
3642         template <class S>
3643         BOOST_QVM_INLINE_TRIVIAL
3644         typename enable_if_c<
3645             is_scalar<S>::value,
3646             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>::type
X0X(S const & a)3647         X0X( S const & a )
3648             {
3649             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3650             }
3651         template <class V>
3652         BOOST_QVM_INLINE_TRIVIAL
3653         typename enable_if_c<
3654             is_vec<V>::value && vec_traits<V>::dim>=1,
3655             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
3656         X0X( V & a )
3657             {
3658             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3659             }
3660         template <class S>
3661         BOOST_QVM_INLINE_TRIVIAL
3662         typename enable_if_c<
3663             is_scalar<S>::value,
3664             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>::type
X0X(S & a)3665         X0X( S & a )
3666             {
3667             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3668             }
3669         template <class V>
3670         BOOST_QVM_INLINE_TRIVIAL
3671         typename enable_if_c<
3672             is_vec<V>::value && vec_traits<V>::dim>=4,
3673             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3674         _1WX( V const & a )
3675             {
3676             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3677             }
3678         template <class V>
3679         BOOST_QVM_INLINE_TRIVIAL
3680         typename enable_if_c<
3681             is_vec<V>::value && vec_traits<V>::dim>=4,
3682             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3683         _1WX( V & a )
3684             {
3685             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3686             }
3687         template <class V>
3688         BOOST_QVM_INLINE_TRIVIAL
3689         typename enable_if_c<
3690             is_vec<V>::value && vec_traits<V>::dim>=4,
3691             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3692         _0WX( V const & a )
3693             {
3694             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3695             }
3696         template <class V>
3697         BOOST_QVM_INLINE_TRIVIAL
3698         typename enable_if_c<
3699             is_vec<V>::value && vec_traits<V>::dim>=4,
3700             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3701         _0WX( V & a )
3702             {
3703             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3704             }
3705         template <class V>
3706         BOOST_QVM_INLINE_TRIVIAL
3707         typename enable_if_c<
3708             is_vec<V>::value && vec_traits<V>::dim>=4,
3709             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3710         WWX( V const & a )
3711             {
3712             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3713             }
3714         template <class V>
3715         BOOST_QVM_INLINE_TRIVIAL
3716         typename enable_if_c<
3717             is_vec<V>::value && vec_traits<V>::dim>=4,
3718             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3719         WWX( V & a )
3720             {
3721             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3722             }
3723         template <class V>
3724         BOOST_QVM_INLINE_TRIVIAL
3725         typename enable_if_c<
3726             is_vec<V>::value && vec_traits<V>::dim>=4,
3727             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3728         ZWX( V const & a )
3729             {
3730             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3731             }
3732         template <class V>
3733         BOOST_QVM_INLINE_TRIVIAL
3734         typename enable_if_c<
3735             is_vec<V>::value && vec_traits<V>::dim>=4,
3736             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3737         ZWX( V & a )
3738             {
3739             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3740             }
3741         template <class V>
3742         BOOST_QVM_INLINE_TRIVIAL
3743         typename enable_if_c<
3744             is_vec<V>::value && vec_traits<V>::dim>=4,
3745             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3746         YWX( V const & a )
3747             {
3748             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3749             }
3750         template <class V>
3751         BOOST_QVM_INLINE_TRIVIAL
3752         typename enable_if_c<
3753             is_vec<V>::value && vec_traits<V>::dim>=4,
3754             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3755         YWX( V & a )
3756             {
3757             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3758             }
3759         template <class V>
3760         BOOST_QVM_INLINE_TRIVIAL
3761         typename enable_if_c<
3762             is_vec<V>::value && vec_traits<V>::dim>=4,
3763             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>::type
3764         XWX( V const & a )
3765             {
3766             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3767             }
3768         template <class V>
3769         BOOST_QVM_INLINE_TRIVIAL
3770         typename enable_if_c<
3771             is_vec<V>::value && vec_traits<V>::dim>=4,
3772             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>::type
3773         XWX( V & a )
3774             {
3775             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0 > > > > &>(a);
3776             }
3777         template <class V>
3778         BOOST_QVM_INLINE_TRIVIAL
3779         typename enable_if_c<
3780             is_vec<V>::value && vec_traits<V>::dim>=3,
3781             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3782         _1ZX( V const & a )
3783             {
3784             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3785             }
3786         template <class V>
3787         BOOST_QVM_INLINE_TRIVIAL
3788         typename enable_if_c<
3789             is_vec<V>::value && vec_traits<V>::dim>=3,
3790             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3791         _1ZX( V & a )
3792             {
3793             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3794             }
3795         template <class V>
3796         BOOST_QVM_INLINE_TRIVIAL
3797         typename enable_if_c<
3798             is_vec<V>::value && vec_traits<V>::dim>=3,
3799             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3800         _0ZX( V const & a )
3801             {
3802             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3803             }
3804         template <class V>
3805         BOOST_QVM_INLINE_TRIVIAL
3806         typename enable_if_c<
3807             is_vec<V>::value && vec_traits<V>::dim>=3,
3808             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3809         _0ZX( V & a )
3810             {
3811             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3812             }
3813         template <class V>
3814         BOOST_QVM_INLINE_TRIVIAL
3815         typename enable_if_c<
3816             is_vec<V>::value && vec_traits<V>::dim>=4,
3817             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3818         WZX( V const & a )
3819             {
3820             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3821             }
3822         template <class V>
3823         BOOST_QVM_INLINE_TRIVIAL
3824         typename enable_if_c<
3825             is_vec<V>::value && vec_traits<V>::dim>=4,
3826             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3827         WZX( V & a )
3828             {
3829             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3830             }
3831         template <class V>
3832         BOOST_QVM_INLINE_TRIVIAL
3833         typename enable_if_c<
3834             is_vec<V>::value && vec_traits<V>::dim>=3,
3835             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3836         ZZX( V const & a )
3837             {
3838             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3839             }
3840         template <class V>
3841         BOOST_QVM_INLINE_TRIVIAL
3842         typename enable_if_c<
3843             is_vec<V>::value && vec_traits<V>::dim>=3,
3844             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3845         ZZX( V & a )
3846             {
3847             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3848             }
3849         template <class V>
3850         BOOST_QVM_INLINE_TRIVIAL
3851         typename enable_if_c<
3852             is_vec<V>::value && vec_traits<V>::dim>=3,
3853             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3854         YZX( V const & a )
3855             {
3856             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3857             }
3858         template <class V>
3859         BOOST_QVM_INLINE_TRIVIAL
3860         typename enable_if_c<
3861             is_vec<V>::value && vec_traits<V>::dim>=3,
3862             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3863         YZX( V & a )
3864             {
3865             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3866             }
3867         template <class V>
3868         BOOST_QVM_INLINE_TRIVIAL
3869         typename enable_if_c<
3870             is_vec<V>::value && vec_traits<V>::dim>=3,
3871             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>::type
3872         XZX( V const & a )
3873             {
3874             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3875             }
3876         template <class V>
3877         BOOST_QVM_INLINE_TRIVIAL
3878         typename enable_if_c<
3879             is_vec<V>::value && vec_traits<V>::dim>=3,
3880             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>::type
3881         XZX( V & a )
3882             {
3883             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0 > > > > &>(a);
3884             }
3885         template <class V>
3886         BOOST_QVM_INLINE_TRIVIAL
3887         typename enable_if_c<
3888             is_vec<V>::value && vec_traits<V>::dim>=2,
3889             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3890         _1YX( V const & a )
3891             {
3892             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3893             }
3894         template <class V>
3895         BOOST_QVM_INLINE_TRIVIAL
3896         typename enable_if_c<
3897             is_vec<V>::value && vec_traits<V>::dim>=2,
3898             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3899         _1YX( V & a )
3900             {
3901             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3902             }
3903         template <class V>
3904         BOOST_QVM_INLINE_TRIVIAL
3905         typename enable_if_c<
3906             is_vec<V>::value && vec_traits<V>::dim>=2,
3907             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3908         _0YX( V const & a )
3909             {
3910             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3911             }
3912         template <class V>
3913         BOOST_QVM_INLINE_TRIVIAL
3914         typename enable_if_c<
3915             is_vec<V>::value && vec_traits<V>::dim>=2,
3916             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3917         _0YX( V & a )
3918             {
3919             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3920             }
3921         template <class V>
3922         BOOST_QVM_INLINE_TRIVIAL
3923         typename enable_if_c<
3924             is_vec<V>::value && vec_traits<V>::dim>=4,
3925             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3926         WYX( V const & a )
3927             {
3928             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3929             }
3930         template <class V>
3931         BOOST_QVM_INLINE_TRIVIAL
3932         typename enable_if_c<
3933             is_vec<V>::value && vec_traits<V>::dim>=4,
3934             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3935         WYX( V & a )
3936             {
3937             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3938             }
3939         template <class V>
3940         BOOST_QVM_INLINE_TRIVIAL
3941         typename enable_if_c<
3942             is_vec<V>::value && vec_traits<V>::dim>=3,
3943             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3944         ZYX( V const & a )
3945             {
3946             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3947             }
3948         template <class V>
3949         BOOST_QVM_INLINE_TRIVIAL
3950         typename enable_if_c<
3951             is_vec<V>::value && vec_traits<V>::dim>=3,
3952             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3953         ZYX( V & a )
3954             {
3955             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3956             }
3957         template <class V>
3958         BOOST_QVM_INLINE_TRIVIAL
3959         typename enable_if_c<
3960             is_vec<V>::value && vec_traits<V>::dim>=2,
3961             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3962         YYX( V const & a )
3963             {
3964             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3965             }
3966         template <class V>
3967         BOOST_QVM_INLINE_TRIVIAL
3968         typename enable_if_c<
3969             is_vec<V>::value && vec_traits<V>::dim>=2,
3970             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3971         YYX( V & a )
3972             {
3973             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3974             }
3975         template <class V>
3976         BOOST_QVM_INLINE_TRIVIAL
3977         typename enable_if_c<
3978             is_vec<V>::value && vec_traits<V>::dim>=2,
3979             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>::type
3980         XYX( V const & a )
3981             {
3982             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > const &>(a);
3983             }
3984         template <class V>
3985         BOOST_QVM_INLINE_TRIVIAL
3986         typename enable_if_c<
3987             is_vec<V>::value && vec_traits<V>::dim>=2,
3988             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>::type
3989         XYX( V & a )
3990             {
3991             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0 > > > > &>(a);
3992             }
3993         template <class V>
3994         BOOST_QVM_INLINE_TRIVIAL
3995         typename enable_if_c<
3996             is_vec<V>::value && vec_traits<V>::dim>=1,
3997             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
3998         _1XX( V const & a )
3999             {
4000             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4001             }
4002         template <class S>
4003         BOOST_QVM_INLINE_TRIVIAL
4004         typename enable_if_c<
4005             is_scalar<S>::value,
4006             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
_1XX(S const & a)4007         _1XX( S const & a )
4008             {
4009             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4010             }
4011         template <class V>
4012         BOOST_QVM_INLINE_TRIVIAL
4013         typename enable_if_c<
4014             is_vec<V>::value && vec_traits<V>::dim>=1,
4015             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4016         _1XX( V & a )
4017             {
4018             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4019             }
4020         template <class S>
4021         BOOST_QVM_INLINE_TRIVIAL
4022         typename enable_if_c<
4023             is_scalar<S>::value,
4024             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
_1XX(S & a)4025         _1XX( S & a )
4026             {
4027             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4028             }
4029         template <class V>
4030         BOOST_QVM_INLINE_TRIVIAL
4031         typename enable_if_c<
4032             is_vec<V>::value && vec_traits<V>::dim>=1,
4033             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4034         _0XX( V const & a )
4035             {
4036             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4037             }
4038         template <class S>
4039         BOOST_QVM_INLINE_TRIVIAL
4040         typename enable_if_c<
4041             is_scalar<S>::value,
4042             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
_0XX(S const & a)4043         _0XX( S const & a )
4044             {
4045             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4046             }
4047         template <class V>
4048         BOOST_QVM_INLINE_TRIVIAL
4049         typename enable_if_c<
4050             is_vec<V>::value && vec_traits<V>::dim>=1,
4051             qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4052         _0XX( V & a )
4053             {
4054             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4055             }
4056         template <class S>
4057         BOOST_QVM_INLINE_TRIVIAL
4058         typename enable_if_c<
4059             is_scalar<S>::value,
4060             qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
_0XX(S & a)4061         _0XX( S & a )
4062             {
4063             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<-1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4064             }
4065         template <class V>
4066         BOOST_QVM_INLINE_TRIVIAL
4067         typename enable_if_c<
4068             is_vec<V>::value && vec_traits<V>::dim>=4,
4069             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4070         WXX( V const & a )
4071             {
4072             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4073             }
4074         template <class V>
4075         BOOST_QVM_INLINE_TRIVIAL
4076         typename enable_if_c<
4077             is_vec<V>::value && vec_traits<V>::dim>=4,
4078             qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4079         WXX( V & a )
4080             {
4081             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<3,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4082             }
4083         template <class V>
4084         BOOST_QVM_INLINE_TRIVIAL
4085         typename enable_if_c<
4086             is_vec<V>::value && vec_traits<V>::dim>=3,
4087             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4088         ZXX( V const & a )
4089             {
4090             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4091             }
4092         template <class V>
4093         BOOST_QVM_INLINE_TRIVIAL
4094         typename enable_if_c<
4095             is_vec<V>::value && vec_traits<V>::dim>=3,
4096             qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4097         ZXX( V & a )
4098             {
4099             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<2,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4100             }
4101         template <class V>
4102         BOOST_QVM_INLINE_TRIVIAL
4103         typename enable_if_c<
4104             is_vec<V>::value && vec_traits<V>::dim>=2,
4105             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4106         YXX( V const & a )
4107             {
4108             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4109             }
4110         template <class V>
4111         BOOST_QVM_INLINE_TRIVIAL
4112         typename enable_if_c<
4113             is_vec<V>::value && vec_traits<V>::dim>=2,
4114             qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4115         YXX( V & a )
4116             {
4117             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<1,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4118             }
4119         template <class V>
4120         BOOST_QVM_INLINE_TRIVIAL
4121         typename enable_if_c<
4122             is_vec<V>::value && vec_traits<V>::dim>=1,
4123             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
4124         XXX( V const & a )
4125             {
4126             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4127             }
4128         template <class S>
4129         BOOST_QVM_INLINE_TRIVIAL
4130         typename enable_if_c<
4131             is_scalar<S>::value,
4132             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>::type
XXX(S const & a)4133         XXX( S const & a )
4134             {
4135             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > const &>(a);
4136             }
4137         template <class V>
4138         BOOST_QVM_INLINE_TRIVIAL
4139         typename enable_if_c<
4140             is_vec<V>::value && vec_traits<V>::dim>=1,
4141             qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
4142         XXX( V & a )
4143             {
4144             return reinterpret_cast<qvm_detail::sw_<V,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4145             }
4146         template <class S>
4147         BOOST_QVM_INLINE_TRIVIAL
4148         typename enable_if_c<
4149             is_scalar<S>::value,
4150             qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>::type
XXX(S & a)4151         XXX( S & a )
4152             {
4153             return reinterpret_cast<qvm_detail::sws_<S,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0,qvm_detail::swizzle_idx<0 > > > > &>(a);
4154             }
4155         }
4156     }
4157 
4158 #endif
4159