Changeset 1141


Ignore:
Timestamp:
Feb 9, 2012, 10:42:54 AM (11 years ago)
Author:
sam
Message:

math: add "const" to many vector swizzling patterns to forbid constructs
such as "foo.xx = bar.xy".

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lol/math/vector.h

    r1140 r1141  
    137137        struct { T s, t; };
    138138
    139         XVec2<T,0x00> xx, rr, ss;
    140         XVec2<T,0x01> xy, rg, st;
    141         XVec2<T,0x10> yx, gr, ts;
    142         XVec2<T,0x11> yy, gg, tt;
    143 
    144         XVec3<T,0x000> xxx, rrr, sss;
    145         XVec3<T,0x001> xxy, rrg, sst;
    146         XVec3<T,0x010> xyx, rgr, sts;
    147         XVec3<T,0x011> xyy, rgg, stt;
    148         XVec3<T,0x100> yxx, grr, tss;
    149         XVec3<T,0x101> yxy, grg, tst;
    150         XVec3<T,0x110> yyx, ggr, tts;
    151         XVec3<T,0x111> yyy, ggg, ttt;
    152 
    153         XVec4<T,0x0000> xxxx, rrrr, ssss;
    154         XVec4<T,0x0001> xxxy, rrrg, ssst;
    155         XVec4<T,0x0010> xxyx, rrgr, ssts;
    156         XVec4<T,0x0011> xxyy, rrgg, sstt;
    157         XVec4<T,0x0100> xyxx, rgrr, stss;
    158         XVec4<T,0x0101> xyxy, rgrg, stst;
    159         XVec4<T,0x0110> xyyx, rggr, stts;
    160         XVec4<T,0x0111> xyyy, rggg, sttt;
    161         XVec4<T,0x1000> yxxx, grrr, tsss;
    162         XVec4<T,0x1001> yxxy, grrg, tsst;
    163         XVec4<T,0x1010> yxyx, grgr, tsts;
    164         XVec4<T,0x1011> yxyy, grgg, tstt;
    165         XVec4<T,0x1100> yyxx, ggrr, ttss;
    166         XVec4<T,0x1101> yyxy, ggrg, ttst;
    167         XVec4<T,0x1110> yyyx, gggr, ttts;
    168         XVec4<T,0x1111> yyyy, gggg, tttt;
     139        XVec2<T,0x00> const xx, rr, ss;
     140        XVec2<T,0x01>       xy, rg, st;
     141        XVec2<T,0x10>       yx, gr, ts;
     142        XVec2<T,0x11> const yy, gg, tt;
     143
     144        XVec3<T,0x000> const xxx, rrr, sss;
     145        XVec3<T,0x001> const xxy, rrg, sst;
     146        XVec3<T,0x010> const xyx, rgr, sts;
     147        XVec3<T,0x011> const xyy, rgg, stt;
     148        XVec3<T,0x100> const yxx, grr, tss;
     149        XVec3<T,0x101> const yxy, grg, tst;
     150        XVec3<T,0x110> const yyx, ggr, tts;
     151        XVec3<T,0x111> const yyy, ggg, ttt;
     152
     153        XVec4<T,0x0000> const xxxx, rrrr, ssss;
     154        XVec4<T,0x0001> const xxxy, rrrg, ssst;
     155        XVec4<T,0x0010> const xxyx, rrgr, ssts;
     156        XVec4<T,0x0011> const xxyy, rrgg, sstt;
     157        XVec4<T,0x0100> const xyxx, rgrr, stss;
     158        XVec4<T,0x0101> const xyxy, rgrg, stst;
     159        XVec4<T,0x0110> const xyyx, rggr, stts;
     160        XVec4<T,0x0111> const xyyy, rggg, sttt;
     161        XVec4<T,0x1000> const yxxx, grrr, tsss;
     162        XVec4<T,0x1001> const yxxy, grrg, tsst;
     163        XVec4<T,0x1010> const yxyx, grgr, tsts;
     164        XVec4<T,0x1011> const yxyy, grgg, tstt;
     165        XVec4<T,0x1100> const yyxx, ggrr, ttss;
     166        XVec4<T,0x1101> const yyxy, ggrg, ttst;
     167        XVec4<T,0x1110> const yyyx, gggr, ttts;
     168        XVec4<T,0x1111> const yyyy, gggg, tttt;
    169169    };
    170170};
     
    279279        struct { T s, t, p; };
    280280
    281         XVec2<T,0x00> xx, rr, ss;
    282         XVec2<T,0x01> xy, rg, st;
    283         XVec2<T,0x02> xz, rb, sp;
    284         XVec2<T,0x10> yx, gr, ts;
    285         XVec2<T,0x11> yy, gg, tt;
    286         XVec2<T,0x12> yz, gb, tp;
    287         XVec2<T,0x20> zx, br, ps;
    288         XVec2<T,0x21> zy, bg, pt;
    289         XVec2<T,0x22> zz, bb, pp;
    290 
    291         XVec3<T,0x000> xxx, rrr, sss;
    292         XVec3<T,0x001> xxy, rrg, sst;
    293         XVec3<T,0x002> xxz, rrb, ssp;
    294         XVec3<T,0x010> xyx, rgr, sts;
    295         XVec3<T,0x011> xyy, rgg, stt;
    296         XVec3<T,0x012> xyz, rgb, stp;
    297         XVec3<T,0x020> xzx, rbr, sps;
    298         XVec3<T,0x021> xzy, rbg, spt;
    299         XVec3<T,0x022> xzz, rbb, spp;
    300         XVec3<T,0x100> yxx, grr, tss;
    301         XVec3<T,0x101> yxy, grg, tst;
    302         XVec3<T,0x102> yxz, grb, tsp;
    303         XVec3<T,0x110> yyx, ggr, tts;
    304         XVec3<T,0x111> yyy, ggg, ttt;
    305         XVec3<T,0x112> yyz, ggb, ttp;
    306         XVec3<T,0x120> yzx, gbr, tps;
    307         XVec3<T,0x121> yzy, gbg, tpt;
    308         XVec3<T,0x122> yzz, gbb, tpp;
    309         XVec3<T,0x200> zxx, brr, pss;
    310         XVec3<T,0x201> zxy, brg, pst;
    311         XVec3<T,0x202> zxz, brb, psp;
    312         XVec3<T,0x210> zyx, bgr, pts;
    313         XVec3<T,0x211> zyy, bgg, ptt;
    314         XVec3<T,0x212> zyz, bgb, ptp;
    315         XVec3<T,0x220> zzx, bbr, pps;
    316         XVec3<T,0x221> zzy, bbg, ppt;
    317         XVec3<T,0x222> zzz, bbb, ppp;
    318 
    319         XVec4<T,0x0000> xxxx, rrrr, ssss;
    320         XVec4<T,0x0001> xxxy, rrrg, ssst;
    321         XVec4<T,0x0002> xxxz, rrrb, sssp;
    322         XVec4<T,0x0010> xxyx, rrgr, ssts;
    323         XVec4<T,0x0011> xxyy, rrgg, sstt;
    324         XVec4<T,0x0012> xxyz, rrgb, sstp;
    325         XVec4<T,0x0020> xxzx, rrbr, ssps;
    326         XVec4<T,0x0021> xxzy, rrbg, sspt;
    327         XVec4<T,0x0022> xxzz, rrbb, sspp;
    328         XVec4<T,0x0100> xyxx, rgrr, stss;
    329         XVec4<T,0x0101> xyxy, rgrg, stst;
    330         XVec4<T,0x0102> xyxz, rgrb, stsp;
    331         XVec4<T,0x0110> xyyx, rggr, stts;
    332         XVec4<T,0x0111> xyyy, rggg, sttt;
    333         XVec4<T,0x0112> xyyz, rggb, sttp;
    334         XVec4<T,0x0120> xyzx, rgbr, stps;
    335         XVec4<T,0x0121> xyzy, rgbg, stpt;
    336         XVec4<T,0x0122> xyzz, rgbb, stpp;
    337         XVec4<T,0x0200> xzxx, rbrr, spss;
    338         XVec4<T,0x0201> xzxy, rbrg, spst;
    339         XVec4<T,0x0202> xzxz, rbrb, spsp;
    340         XVec4<T,0x0210> xzyx, rbgr, spts;
    341         XVec4<T,0x0211> xzyy, rbgg, sptt;
    342         XVec4<T,0x0212> xzyz, rbgb, sptp;
    343         XVec4<T,0x0220> xzzx, rbbr, spps;
    344         XVec4<T,0x0221> xzzy, rbbg, sppt;
    345         XVec4<T,0x0222> xzzz, rbbb, sppp;
    346         XVec4<T,0x1000> yxxx, grrr, tsss;
    347         XVec4<T,0x1001> yxxy, grrg, tsst;
    348         XVec4<T,0x1002> yxxz, grrb, tssp;
    349         XVec4<T,0x1010> yxyx, grgr, tsts;
    350         XVec4<T,0x1011> yxyy, grgg, tstt;
    351         XVec4<T,0x1012> yxyz, grgb, tstp;
    352         XVec4<T,0x1020> yxzx, grbr, tsps;
    353         XVec4<T,0x1021> yxzy, grbg, tspt;
    354         XVec4<T,0x1022> yxzz, grbb, tspp;
    355         XVec4<T,0x1100> yyxx, ggrr, ttss;
    356         XVec4<T,0x1101> yyxy, ggrg, ttst;
    357         XVec4<T,0x1102> yyxz, ggrb, ttsp;
    358         XVec4<T,0x1110> yyyx, gggr, ttts;
    359         XVec4<T,0x1111> yyyy, gggg, tttt;
    360         XVec4<T,0x1112> yyyz, gggb, tttp;
    361         XVec4<T,0x1120> yyzx, ggbr, ttps;
    362         XVec4<T,0x1121> yyzy, ggbg, ttpt;
    363         XVec4<T,0x1122> yyzz, ggbb, ttpp;
    364         XVec4<T,0x1200> yzxx, gbrr, tpss;
    365         XVec4<T,0x1201> yzxy, gbrg, tpst;
    366         XVec4<T,0x1202> yzxz, gbrb, tpsp;
    367         XVec4<T,0x1210> yzyx, gbgr, tpts;
    368         XVec4<T,0x1211> yzyy, gbgg, tptt;
    369         XVec4<T,0x1212> yzyz, gbgb, tptp;
    370         XVec4<T,0x1220> yzzx, gbbr, tpps;
    371         XVec4<T,0x1221> yzzy, gbbg, tppt;
    372         XVec4<T,0x1222> yzzz, gbbb, tppp;
    373         XVec4<T,0x2000> zxxx, brrr, psss;
    374         XVec4<T,0x2001> zxxy, brrg, psst;
    375         XVec4<T,0x2002> zxxz, brrb, pssp;
    376         XVec4<T,0x2010> zxyx, brgr, psts;
    377         XVec4<T,0x2011> zxyy, brgg, pstt;
    378         XVec4<T,0x2012> zxyz, brgb, pstp;
    379         XVec4<T,0x2020> zxzx, brbr, psps;
    380         XVec4<T,0x2021> zxzy, brbg, pspt;
    381         XVec4<T,0x2022> zxzz, brbb, pspp;
    382         XVec4<T,0x2100> zyxx, bgrr, ptss;
    383         XVec4<T,0x2101> zyxy, bgrg, ptst;
    384         XVec4<T,0x2102> zyxz, bgrb, ptsp;
    385         XVec4<T,0x2110> zyyx, bggr, ptts;
    386         XVec4<T,0x2111> zyyy, bggg, pttt;
    387         XVec4<T,0x2112> zyyz, bggb, pttp;
    388         XVec4<T,0x2120> zyzx, bgbr, ptps;
    389         XVec4<T,0x2121> zyzy, bgbg, ptpt;
    390         XVec4<T,0x2122> zyzz, bgbb, ptpp;
    391         XVec4<T,0x2200> zzxx, bbrr, ppss;
    392         XVec4<T,0x2201> zzxy, bbrg, ppst;
    393         XVec4<T,0x2202> zzxz, bbrb, ppsp;
    394         XVec4<T,0x2210> zzyx, bbgr, ppts;
    395         XVec4<T,0x2211> zzyy, bbgg, pptt;
    396         XVec4<T,0x2212> zzyz, bbgb, pptp;
    397         XVec4<T,0x2220> zzzx, bbbr, ppps;
    398         XVec4<T,0x2221> zzzy, bbbg, pppt;
    399         XVec4<T,0x2222> zzzz, bbbb, pppp;
     281        XVec2<T,0x00> const xx, rr, ss;
     282        XVec2<T,0x01>       xy, rg, st;
     283        XVec2<T,0x02>       xz, rb, sp;
     284        XVec2<T,0x10>       yx, gr, ts;
     285        XVec2<T,0x11> const yy, gg, tt;
     286        XVec2<T,0x12>       yz, gb, tp;
     287        XVec2<T,0x20>       zx, br, ps;
     288        XVec2<T,0x21>       zy, bg, pt;
     289        XVec2<T,0x22> const zz, bb, pp;
     290
     291        XVec3<T,0x000> const xxx, rrr, sss;
     292        XVec3<T,0x001> const xxy, rrg, sst;
     293        XVec3<T,0x002> const xxz, rrb, ssp;
     294        XVec3<T,0x010> const xyx, rgr, sts;
     295        XVec3<T,0x011> const xyy, rgg, stt;
     296        XVec3<T,0x012>       xyz, rgb, stp;
     297        XVec3<T,0x020> const xzx, rbr, sps;
     298        XVec3<T,0x021>       xzy, rbg, spt;
     299        XVec3<T,0x022> const xzz, rbb, spp;
     300        XVec3<T,0x100> const yxx, grr, tss;
     301        XVec3<T,0x101> const yxy, grg, tst;
     302        XVec3<T,0x102>       yxz, grb, tsp;
     303        XVec3<T,0x110> const yyx, ggr, tts;
     304        XVec3<T,0x111> const yyy, ggg, ttt;
     305        XVec3<T,0x112> const yyz, ggb, ttp;
     306        XVec3<T,0x120>       yzx, gbr, tps;
     307        XVec3<T,0x121> const yzy, gbg, tpt;
     308        XVec3<T,0x122> const yzz, gbb, tpp;
     309        XVec3<T,0x200> const zxx, brr, pss;
     310        XVec3<T,0x201>       zxy, brg, pst;
     311        XVec3<T,0x202> const zxz, brb, psp;
     312        XVec3<T,0x210>       zyx, bgr, pts;
     313        XVec3<T,0x211> const zyy, bgg, ptt;
     314        XVec3<T,0x212> const zyz, bgb, ptp;
     315        XVec3<T,0x220> const zzx, bbr, pps;
     316        XVec3<T,0x221> const zzy, bbg, ppt;
     317        XVec3<T,0x222> const zzz, bbb, ppp;
     318
     319        XVec4<T,0x0000> const xxxx, rrrr, ssss;
     320        XVec4<T,0x0001> const xxxy, rrrg, ssst;
     321        XVec4<T,0x0002> const xxxz, rrrb, sssp;
     322        XVec4<T,0x0010> const xxyx, rrgr, ssts;
     323        XVec4<T,0x0011> const xxyy, rrgg, sstt;
     324        XVec4<T,0x0012> const xxyz, rrgb, sstp;
     325        XVec4<T,0x0020> const xxzx, rrbr, ssps;
     326        XVec4<T,0x0021> const xxzy, rrbg, sspt;
     327        XVec4<T,0x0022> const xxzz, rrbb, sspp;
     328        XVec4<T,0x0100> const xyxx, rgrr, stss;
     329        XVec4<T,0x0101> const xyxy, rgrg, stst;
     330        XVec4<T,0x0102> const xyxz, rgrb, stsp;
     331        XVec4<T,0x0110> const xyyx, rggr, stts;
     332        XVec4<T,0x0111> const xyyy, rggg, sttt;
     333        XVec4<T,0x0112> const xyyz, rggb, sttp;
     334        XVec4<T,0x0120> const xyzx, rgbr, stps;
     335        XVec4<T,0x0121> const xyzy, rgbg, stpt;
     336        XVec4<T,0x0122> const xyzz, rgbb, stpp;
     337        XVec4<T,0x0200> const xzxx, rbrr, spss;
     338        XVec4<T,0x0201> const xzxy, rbrg, spst;
     339        XVec4<T,0x0202> const xzxz, rbrb, spsp;
     340        XVec4<T,0x0210> const xzyx, rbgr, spts;
     341        XVec4<T,0x0211> const xzyy, rbgg, sptt;
     342        XVec4<T,0x0212> const xzyz, rbgb, sptp;
     343        XVec4<T,0x0220> const xzzx, rbbr, spps;
     344        XVec4<T,0x0221> const xzzy, rbbg, sppt;
     345        XVec4<T,0x0222> const xzzz, rbbb, sppp;
     346        XVec4<T,0x1000> const yxxx, grrr, tsss;
     347        XVec4<T,0x1001> const yxxy, grrg, tsst;
     348        XVec4<T,0x1002> const yxxz, grrb, tssp;
     349        XVec4<T,0x1010> const yxyx, grgr, tsts;
     350        XVec4<T,0x1011> const yxyy, grgg, tstt;
     351        XVec4<T,0x1012> const yxyz, grgb, tstp;
     352        XVec4<T,0x1020> const yxzx, grbr, tsps;
     353        XVec4<T,0x1021> const yxzy, grbg, tspt;
     354        XVec4<T,0x1022> const yxzz, grbb, tspp;
     355        XVec4<T,0x1100> const yyxx, ggrr, ttss;
     356        XVec4<T,0x1101> const yyxy, ggrg, ttst;
     357        XVec4<T,0x1102> const yyxz, ggrb, ttsp;
     358        XVec4<T,0x1110> const yyyx, gggr, ttts;
     359        XVec4<T,0x1111> const yyyy, gggg, tttt;
     360        XVec4<T,0x1112> const yyyz, gggb, tttp;
     361        XVec4<T,0x1120> const yyzx, ggbr, ttps;
     362        XVec4<T,0x1121> const yyzy, ggbg, ttpt;
     363        XVec4<T,0x1122> const yyzz, ggbb, ttpp;
     364        XVec4<T,0x1200> const yzxx, gbrr, tpss;
     365        XVec4<T,0x1201> const yzxy, gbrg, tpst;
     366        XVec4<T,0x1202> const yzxz, gbrb, tpsp;
     367        XVec4<T,0x1210> const yzyx, gbgr, tpts;
     368        XVec4<T,0x1211> const yzyy, gbgg, tptt;
     369        XVec4<T,0x1212> const yzyz, gbgb, tptp;
     370        XVec4<T,0x1220> const yzzx, gbbr, tpps;
     371        XVec4<T,0x1221> const yzzy, gbbg, tppt;
     372        XVec4<T,0x1222> const yzzz, gbbb, tppp;
     373        XVec4<T,0x2000> const zxxx, brrr, psss;
     374        XVec4<T,0x2001> const zxxy, brrg, psst;
     375        XVec4<T,0x2002> const zxxz, brrb, pssp;
     376        XVec4<T,0x2010> const zxyx, brgr, psts;
     377        XVec4<T,0x2011> const zxyy, brgg, pstt;
     378        XVec4<T,0x2012> const zxyz, brgb, pstp;
     379        XVec4<T,0x2020> const zxzx, brbr, psps;
     380        XVec4<T,0x2021> const zxzy, brbg, pspt;
     381        XVec4<T,0x2022> const zxzz, brbb, pspp;
     382        XVec4<T,0x2100> const zyxx, bgrr, ptss;
     383        XVec4<T,0x2101> const zyxy, bgrg, ptst;
     384        XVec4<T,0x2102> const zyxz, bgrb, ptsp;
     385        XVec4<T,0x2110> const zyyx, bggr, ptts;
     386        XVec4<T,0x2111> const zyyy, bggg, pttt;
     387        XVec4<T,0x2112> const zyyz, bggb, pttp;
     388        XVec4<T,0x2120> const zyzx, bgbr, ptps;
     389        XVec4<T,0x2121> const zyzy, bgbg, ptpt;
     390        XVec4<T,0x2122> const zyzz, bgbb, ptpp;
     391        XVec4<T,0x2200> const zzxx, bbrr, ppss;
     392        XVec4<T,0x2201> const zzxy, bbrg, ppst;
     393        XVec4<T,0x2202> const zzxz, bbrb, ppsp;
     394        XVec4<T,0x2210> const zzyx, bbgr, ppts;
     395        XVec4<T,0x2211> const zzyy, bbgg, pptt;
     396        XVec4<T,0x2212> const zzyz, bbgb, pptp;
     397        XVec4<T,0x2220> const zzzx, bbbr, ppps;
     398        XVec4<T,0x2221> const zzzy, bbbg, pppt;
     399        XVec4<T,0x2222> const zzzz, bbbb, pppp;
    400400    };
    401401};
     
    439439        struct { T s, t, p, q; };
    440440
    441         XVec2<T,0x00> xx, rr, ss;
    442         XVec2<T,0x01> xy, rg, st;
    443         XVec2<T,0x02> xz, rb, sp;
    444         XVec2<T,0x03> xw, ra, sq;
    445         XVec2<T,0x10> yx, gr, ts;
    446         XVec2<T,0x11> yy, gg, tt;
    447         XVec2<T,0x12> yz, gb, tp;
    448         XVec2<T,0x13> yw, ga, tq;
    449         XVec2<T,0x20> zx, br, ps;
    450         XVec2<T,0x21> zy, bg, pt;
    451         XVec2<T,0x22> zz, bb, pp;
    452         XVec2<T,0x23> zw, ba, pq;
    453         XVec2<T,0x30> wx, ar, qs;
    454         XVec2<T,0x31> wy, ag, qt;
    455         XVec2<T,0x32> wz, ab, qp;
    456         XVec2<T,0x33> ww, aa, qq;
    457 
    458         XVec3<T,0x000> xxx, rrr, sss;
    459         XVec3<T,0x001> xxy, rrg, sst;
    460         XVec3<T,0x002> xxz, rrb, ssp;
    461         XVec3<T,0x003> xxw, rra, ssq;
    462         XVec3<T,0x010> xyx, rgr, sts;
    463         XVec3<T,0x011> xyy, rgg, stt;
    464         XVec3<T,0x012> xyz, rgb, stp;
    465         XVec3<T,0x013> xyw, rga, stq;
    466         XVec3<T,0x020> xzx, rbr, sps;
    467         XVec3<T,0x021> xzy, rbg, spt;
    468         XVec3<T,0x022> xzz, rbb, spp;
    469         XVec3<T,0x023> xzw, rba, spq;
    470         XVec3<T,0x030> xwx, rar, sqs;
    471         XVec3<T,0x031> xwy, rag, sqt;
    472         XVec3<T,0x032> xwz, rab, sqp;
    473         XVec3<T,0x033> xww, raa, sqq;
    474         XVec3<T,0x100> yxx, grr, tss;
    475         XVec3<T,0x101> yxy, grg, tst;
    476         XVec3<T,0x102> yxz, grb, tsp;
    477         XVec3<T,0x103> yxw, gra, tsq;
    478         XVec3<T,0x110> yyx, ggr, tts;
    479         XVec3<T,0x111> yyy, ggg, ttt;
    480         XVec3<T,0x112> yyz, ggb, ttp;
    481         XVec3<T,0x113> yyw, gga, ttq;
    482         XVec3<T,0x120> yzx, gbr, tps;
    483         XVec3<T,0x121> yzy, gbg, tpt;
    484         XVec3<T,0x122> yzz, gbb, tpp;
    485         XVec3<T,0x123> yzw, gba, tpq;
    486         XVec3<T,0x130> ywx, gar, tqs;
    487         XVec3<T,0x131> ywy, gag, tqt;
    488         XVec3<T,0x132> ywz, gab, tqp;
    489         XVec3<T,0x133> yww, gaa, tqq;
    490         XVec3<T,0x200> zxx, brr, pss;
    491         XVec3<T,0x201> zxy, brg, pst;
    492         XVec3<T,0x202> zxz, brb, psp;
    493         XVec3<T,0x203> zxw, bra, psq;
    494         XVec3<T,0x210> zyx, bgr, pts;
    495         XVec3<T,0x211> zyy, bgg, ptt;
    496         XVec3<T,0x212> zyz, bgb, ptp;
    497         XVec3<T,0x213> zyw, bga, ptq;
    498         XVec3<T,0x220> zzx, bbr, pps;
    499         XVec3<T,0x221> zzy, bbg, ppt;
    500         XVec3<T,0x222> zzz, bbb, ppp;
    501         XVec3<T,0x223> zzw, bba, ppq;
    502         XVec3<T,0x230> zwx, bar, pqs;
    503         XVec3<T,0x231> zwy, bag, pqt;
    504         XVec3<T,0x232> zwz, bab, pqp;
    505         XVec3<T,0x233> zww, baa, pqq;
    506         XVec3<T,0x300> wxx, arr, qss;
    507         XVec3<T,0x301> wxy, arg, qst;
    508         XVec3<T,0x302> wxz, arb, qsp;
    509         XVec3<T,0x303> wxw, ara, qsq;
    510         XVec3<T,0x310> wyx, agr, qts;
    511         XVec3<T,0x311> wyy, agg, qtt;
    512         XVec3<T,0x312> wyz, agb, qtp;
    513         XVec3<T,0x313> wyw, aga, qtq;
    514         XVec3<T,0x320> wzx, abr, qps;
    515         XVec3<T,0x321> wzy, abg, qpt;
    516         XVec3<T,0x322> wzz, abb, qpp;
    517         XVec3<T,0x323> wzw, aba, qpq;
    518         XVec3<T,0x330> wwx, aar, qqs;
    519         XVec3<T,0x331> wwy, aag, qqt;
    520         XVec3<T,0x332> wwz, aab, qqp;
    521         XVec3<T,0x333> www, aaa, qqq;
    522 
    523         XVec4<T,0x0000> xxxx, rrrr, ssss;
    524         XVec4<T,0x0001> xxxy, rrrg, ssst;
    525         XVec4<T,0x0002> xxxz, rrrb, sssp;
    526         XVec4<T,0x0003> xxxw, rrra, sssq;
    527         XVec4<T,0x0010> xxyx, rrgr, ssts;
    528         XVec4<T,0x0011> xxyy, rrgg, sstt;
    529         XVec4<T,0x0012> xxyz, rrgb, sstp;
    530         XVec4<T,0x0013> xxyw, rrga, sstq;
    531         XVec4<T,0x0020> xxzx, rrbr, ssps;
    532         XVec4<T,0x0021> xxzy, rrbg, sspt;
    533         XVec4<T,0x0022> xxzz, rrbb, sspp;
    534         XVec4<T,0x0023> xxzw, rrba, sspq;
    535         XVec4<T,0x0030> xxwx, rrar, ssqs;
    536         XVec4<T,0x0031> xxwy, rrag, ssqt;
    537         XVec4<T,0x0032> xxwz, rrab, ssqp;
    538         XVec4<T,0x0033> xxww, rraa, ssqq;
    539         XVec4<T,0x0100> xyxx, rgrr, stss;
    540         XVec4<T,0x0101> xyxy, rgrg, stst;
    541         XVec4<T,0x0102> xyxz, rgrb, stsp;
    542         XVec4<T,0x0103> xyxw, rgra, stsq;
    543         XVec4<T,0x0110> xyyx, rggr, stts;
    544         XVec4<T,0x0111> xyyy, rggg, sttt;
    545         XVec4<T,0x0112> xyyz, rggb, sttp;
    546         XVec4<T,0x0113> xyyw, rgga, sttq;
    547         XVec4<T,0x0120> xyzx, rgbr, stps;
    548         XVec4<T,0x0121> xyzy, rgbg, stpt;
    549         XVec4<T,0x0122> xyzz, rgbb, stpp;
    550         XVec4<T,0x0123> xyzw, rgba, stpq;
    551         XVec4<T,0x0130> xywx, rgar, stqs;
    552         XVec4<T,0x0131> xywy, rgag, stqt;
    553         XVec4<T,0x0132> xywz, rgab, stqp;
    554         XVec4<T,0x0133> xyww, rgaa, stqq;
    555         XVec4<T,0x0200> xzxx, rbrr, spss;
    556         XVec4<T,0x0201> xzxy, rbrg, spst;
    557         XVec4<T,0x0202> xzxz, rbrb, spsp;
    558         XVec4<T,0x0203> xzxw, rbra, spsq;
    559         XVec4<T,0x0210> xzyx, rbgr, spts;
    560         XVec4<T,0x0211> xzyy, rbgg, sptt;
    561         XVec4<T,0x0212> xzyz, rbgb, sptp;
    562         XVec4<T,0x0213> xzyw, rbga, sptq;
    563         XVec4<T,0x0220> xzzx, rbbr, spps;
    564         XVec4<T,0x0221> xzzy, rbbg, sppt;
    565         XVec4<T,0x0222> xzzz, rbbb, sppp;
    566         XVec4<T,0x0223> xzzw, rbba, sppq;
    567         XVec4<T,0x0230> xzwx, rbar, spqs;
    568         XVec4<T,0x0231> xzwy, rbag, spqt;
    569         XVec4<T,0x0232> xzwz, rbab, spqp;
    570         XVec4<T,0x0233> xzww, rbaa, spqq;
    571         XVec4<T,0x0300> xwxx, rarr, sqss;
    572         XVec4<T,0x0301> xwxy, rarg, sqst;
    573         XVec4<T,0x0302> xwxz, rarb, sqsp;
    574         XVec4<T,0x0303> xwxw, rara, sqsq;
    575         XVec4<T,0x0310> xwyx, ragr, sqts;
    576         XVec4<T,0x0311> xwyy, ragg, sqtt;
    577         XVec4<T,0x0312> xwyz, ragb, sqtp;
    578         XVec4<T,0x0313> xwyw, raga, sqtq;
    579         XVec4<T,0x0320> xwzx, rabr, sqps;
    580         XVec4<T,0x0321> xwzy, rabg, sqpt;
    581         XVec4<T,0x0322> xwzz, rabb, sqpp;
    582         XVec4<T,0x0323> xwzw, raba, sqpq;
    583         XVec4<T,0x0330> xwwx, raar, sqqs;
    584         XVec4<T,0x0331> xwwy, raag, sqqt;
    585         XVec4<T,0x0332> xwwz, raab, sqqp;
    586         XVec4<T,0x0333> xwww, raaa, sqqq;
    587         XVec4<T,0x1000> yxxx, grrr, tsss;
    588         XVec4<T,0x1001> yxxy, grrg, tsst;
    589         XVec4<T,0x1002> yxxz, grrb, tssp;
    590         XVec4<T,0x1003> yxxw, grra, tssq;
    591         XVec4<T,0x1010> yxyx, grgr, tsts;
    592         XVec4<T,0x1011> yxyy, grgg, tstt;
    593         XVec4<T,0x1012> yxyz, grgb, tstp;
    594         XVec4<T,0x1013> yxyw, grga, tstq;
    595         XVec4<T,0x1020> yxzx, grbr, tsps;
    596         XVec4<T,0x1021> yxzy, grbg, tspt;
    597         XVec4<T,0x1022> yxzz, grbb, tspp;
    598         XVec4<T,0x1023> yxzw, grba, tspq;
    599         XVec4<T,0x1030> yxwx, grar, tsqs;
    600         XVec4<T,0x1031> yxwy, grag, tsqt;
    601         XVec4<T,0x1032> yxwz, grab, tsqp;
    602         XVec4<T,0x1033> yxww, graa, tsqq;
    603         XVec4<T,0x1100> yyxx, ggrr, ttss;
    604         XVec4<T,0x1101> yyxy, ggrg, ttst;
    605         XVec4<T,0x1102> yyxz, ggrb, ttsp;
    606         XVec4<T,0x1103> yyxw, ggra, ttsq;
    607         XVec4<T,0x1110> yyyx, gggr, ttts;
    608         XVec4<T,0x1111> yyyy, gggg, tttt;
    609         XVec4<T,0x1112> yyyz, gggb, tttp;
    610         XVec4<T,0x1113> yyyw, ggga, tttq;
    611         XVec4<T,0x1120> yyzx, ggbr, ttps;
    612         XVec4<T,0x1121> yyzy, ggbg, ttpt;
    613         XVec4<T,0x1122> yyzz, ggbb, ttpp;
    614         XVec4<T,0x1123> yyzw, ggba, ttpq;
    615         XVec4<T,0x1130> yywx, ggar, ttqs;
    616         XVec4<T,0x1131> yywy, ggag, ttqt;
    617         XVec4<T,0x1132> yywz, ggab, ttqp;
    618         XVec4<T,0x1133> yyww, ggaa, ttqq;
    619         XVec4<T,0x1200> yzxx, gbrr, tpss;
    620         XVec4<T,0x1201> yzxy, gbrg, tpst;
    621         XVec4<T,0x1202> yzxz, gbrb, tpsp;
    622         XVec4<T,0x1203> yzxw, gbra, tpsq;
    623         XVec4<T,0x1210> yzyx, gbgr, tpts;
    624         XVec4<T,0x1211> yzyy, gbgg, tptt;
    625         XVec4<T,0x1212> yzyz, gbgb, tptp;
    626         XVec4<T,0x1213> yzyw, gbga, tptq;
    627         XVec4<T,0x1220> yzzx, gbbr, tpps;
    628         XVec4<T,0x1221> yzzy, gbbg, tppt;
    629         XVec4<T,0x1222> yzzz, gbbb, tppp;
    630         XVec4<T,0x1223> yzzw, gbba, tppq;
    631         XVec4<T,0x1230> yzwx, gbar, tpqs;
    632         XVec4<T,0x1231> yzwy, gbag, tpqt;
    633         XVec4<T,0x1232> yzwz, gbab, tpqp;
    634         XVec4<T,0x1233> yzww, gbaa, tpqq;
    635         XVec4<T,0x1300> ywxx, garr, tqss;
    636         XVec4<T,0x1301> ywxy, garg, tqst;
    637         XVec4<T,0x1302> ywxz, garb, tqsp;
    638         XVec4<T,0x1303> ywxw, gara, tqsq;
    639         XVec4<T,0x1310> ywyx, gagr, tqts;
    640         XVec4<T,0x1311> ywyy, gagg, tqtt;
    641         XVec4<T,0x1312> ywyz, gagb, tqtp;
    642         XVec4<T,0x1313> ywyw, gaga, tqtq;
    643         XVec4<T,0x1320> ywzx, gabr, tqps;
    644         XVec4<T,0x1321> ywzy, gabg, tqpt;
    645         XVec4<T,0x1322> ywzz, gabb, tqpp;
    646         XVec4<T,0x1323> ywzw, gaba, tqpq;
    647         XVec4<T,0x1330> ywwx, gaar, tqqs;
    648         XVec4<T,0x1331> ywwy, gaag, tqqt;
    649         XVec4<T,0x1332> ywwz, gaab, tqqp;
    650         XVec4<T,0x1333> ywww, gaaa, tqqq;
    651         XVec4<T,0x2000> zxxx, brrr, psss;
    652         XVec4<T,0x2001> zxxy, brrg, psst;
    653         XVec4<T,0x2002> zxxz, brrb, pssp;
    654         XVec4<T,0x2003> zxxw, brra, pssq;
    655         XVec4<T,0x2010> zxyx, brgr, psts;
    656         XVec4<T,0x2011> zxyy, brgg, pstt;
    657         XVec4<T,0x2012> zxyz, brgb, pstp;
    658         XVec4<T,0x2013> zxyw, brga, pstq;
    659         XVec4<T,0x2020> zxzx, brbr, psps;
    660         XVec4<T,0x2021> zxzy, brbg, pspt;
    661         XVec4<T,0x2022> zxzz, brbb, pspp;
    662         XVec4<T,0x2023> zxzw, brba, pspq;
    663         XVec4<T,0x2030> zxwx, brar, psqs;
    664         XVec4<T,0x2031> zxwy, brag, psqt;
    665         XVec4<T,0x2032> zxwz, brab, psqp;
    666         XVec4<T,0x2033> zxww, braa, psqq;
    667         XVec4<T,0x2100> zyxx, bgrr, ptss;
    668         XVec4<T,0x2101> zyxy, bgrg, ptst;
    669         XVec4<T,0x2102> zyxz, bgrb, ptsp;
    670         XVec4<T,0x2103> zyxw, bgra, ptsq;
    671         XVec4<T,0x2110> zyyx, bggr, ptts;
    672         XVec4<T,0x2111> zyyy, bggg, pttt;
    673         XVec4<T,0x2112> zyyz, bggb, pttp;
    674         XVec4<T,0x2113> zyyw, bgga, pttq;
    675         XVec4<T,0x2120> zyzx, bgbr, ptps;
    676         XVec4<T,0x2121> zyzy, bgbg, ptpt;
    677         XVec4<T,0x2122> zyzz, bgbb, ptpp;
    678         XVec4<T,0x2123> zyzw, bgba, ptpq;
    679         XVec4<T,0x2130> zywx, bgar, ptqs;
    680         XVec4<T,0x2131> zywy, bgag, ptqt;
    681         XVec4<T,0x2132> zywz, bgab, ptqp;
    682         XVec4<T,0x2133> zyww, bgaa, ptqq;
    683         XVec4<T,0x2200> zzxx, bbrr, ppss;
    684         XVec4<T,0x2201> zzxy, bbrg, ppst;
    685         XVec4<T,0x2202> zzxz, bbrb, ppsp;
    686         XVec4<T,0x2203> zzxw, bbra, ppsq;
    687         XVec4<T,0x2210> zzyx, bbgr, ppts;
    688         XVec4<T,0x2211> zzyy, bbgg, pptt;
    689         XVec4<T,0x2212> zzyz, bbgb, pptp;
    690         XVec4<T,0x2213> zzyw, bbga, pptq;
    691         XVec4<T,0x2220> zzzx, bbbr, ppps;
    692         XVec4<T,0x2221> zzzy, bbbg, pppt;
    693         XVec4<T,0x2222> zzzz, bbbb, pppp;
    694         XVec4<T,0x2223> zzzw, bbba, pppq;
    695         XVec4<T,0x2230> zzwx, bbar, ppqs;
    696         XVec4<T,0x2231> zzwy, bbag, ppqt;
    697         XVec4<T,0x2232> zzwz, bbab, ppqp;
    698         XVec4<T,0x2233> zzww, bbaa, ppqq;
    699         XVec4<T,0x2300> zwxx, barr, pqss;
    700         XVec4<T,0x2301> zwxy, barg, pqst;
    701         XVec4<T,0x2302> zwxz, barb, pqsp;
    702         XVec4<T,0x2303> zwxw, bara, pqsq;
    703         XVec4<T,0x2310> zwyx, bagr, pqts;
    704         XVec4<T,0x2311> zwyy, bagg, pqtt;
    705         XVec4<T,0x2312> zwyz, bagb, pqtp;
    706         XVec4<T,0x2313> zwyw, baga, pqtq;
    707         XVec4<T,0x2320> zwzx, babr, pqps;
    708         XVec4<T,0x2321> zwzy, babg, pqpt;
    709         XVec4<T,0x2322> zwzz, babb, pqpp;
    710         XVec4<T,0x2323> zwzw, baba, pqpq;
    711         XVec4<T,0x2330> zwwx, baar, pqqs;
    712         XVec4<T,0x2331> zwwy, baag, pqqt;
    713         XVec4<T,0x2332> zwwz, baab, pqqp;
    714         XVec4<T,0x2333> zwww, baaa, pqqq;
    715         XVec4<T,0x3000> wxxx, arrr, qsss;
    716         XVec4<T,0x3001> wxxy, arrg, qsst;
    717         XVec4<T,0x3002> wxxz, arrb, qssp;
    718         XVec4<T,0x3003> wxxw, arra, qssq;
    719         XVec4<T,0x3010> wxyx, argr, qsts;
    720         XVec4<T,0x3011> wxyy, argg, qstt;
    721         XVec4<T,0x3012> wxyz, argb, qstp;
    722         XVec4<T,0x3013> wxyw, arga, qstq;
    723         XVec4<T,0x3020> wxzx, arbr, qsps;
    724         XVec4<T,0x3021> wxzy, arbg, qspt;
    725         XVec4<T,0x3022> wxzz, arbb, qspp;
    726         XVec4<T,0x3023> wxzw, arba, qspq;
    727         XVec4<T,0x3030> wxwx, arar, qsqs;
    728         XVec4<T,0x3031> wxwy, arag, qsqt;
    729         XVec4<T,0x3032> wxwz, arab, qsqp;
    730         XVec4<T,0x3033> wxww, araa, qsqq;
    731         XVec4<T,0x3100> wyxx, agrr, qtss;
    732         XVec4<T,0x3101> wyxy, agrg, qtst;
    733         XVec4<T,0x3102> wyxz, agrb, qtsp;
    734         XVec4<T,0x3103> wyxw, agra, qtsq;
    735         XVec4<T,0x3110> wyyx, aggr, qtts;
    736         XVec4<T,0x3111> wyyy, aggg, qttt;
    737         XVec4<T,0x3112> wyyz, aggb, qttp;
    738         XVec4<T,0x3113> wyyw, agga, qttq;
    739         XVec4<T,0x3120> wyzx, agbr, qtps;
    740         XVec4<T,0x3121> wyzy, agbg, qtpt;
    741         XVec4<T,0x3122> wyzz, agbb, qtpp;
    742         XVec4<T,0x3123> wyzw, agba, qtpq;
    743         XVec4<T,0x3130> wywx, agar, qtqs;
    744         XVec4<T,0x3131> wywy, agag, qtqt;
    745         XVec4<T,0x3132> wywz, agab, qtqp;
    746         XVec4<T,0x3133> wyww, agaa, qtqq;
    747         XVec4<T,0x3200> wzxx, abrr, qpss;
    748         XVec4<T,0x3201> wzxy, abrg, qpst;
    749         XVec4<T,0x3202> wzxz, abrb, qpsp;
    750         XVec4<T,0x3203> wzxw, abra, qpsq;
    751         XVec4<T,0x3210> wzyx, abgr, qpts;
    752         XVec4<T,0x3211> wzyy, abgg, qptt;
    753         XVec4<T,0x3212> wzyz, abgb, qptp;
    754         XVec4<T,0x3213> wzyw, abga, qptq;
    755         XVec4<T,0x3220> wzzx, abbr, qpps;
    756         XVec4<T,0x3221> wzzy, abbg, qppt;
    757         XVec4<T,0x3222> wzzz, abbb, qppp;
    758         XVec4<T,0x3223> wzzw, abba, qppq;
    759         XVec4<T,0x3230> wzwx, abar, qpqs;
    760         XVec4<T,0x3231> wzwy, abag, qpqt;
    761         XVec4<T,0x3232> wzwz, abab, qpqp;
    762         XVec4<T,0x3233> wzww, abaa, qpqq;
    763         XVec4<T,0x3300> wwxx, aarr, qqss;
    764         XVec4<T,0x3301> wwxy, aarg, qqst;
    765         XVec4<T,0x3302> wwxz, aarb, qqsp;
    766         XVec4<T,0x3303> wwxw, aara, qqsq;
    767         XVec4<T,0x3310> wwyx, aagr, qqts;
    768         XVec4<T,0x3311> wwyy, aagg, qqtt;
    769         XVec4<T,0x3312> wwyz, aagb, qqtp;
    770         XVec4<T,0x3313> wwyw, aaga, qqtq;
    771         XVec4<T,0x3320> wwzx, aabr, qqps;
    772         XVec4<T,0x3321> wwzy, aabg, qqpt;
    773         XVec4<T,0x3322> wwzz, aabb, qqpp;
    774         XVec4<T,0x3323> wwzw, aaba, qqpq;
    775         XVec4<T,0x3330> wwwx, aaar, qqqs;
    776         XVec4<T,0x3331> wwwy, aaag, qqqt;
    777         XVec4<T,0x3332> wwwz, aaab, qqqp;
    778         XVec4<T,0x3333> wwww, aaaa, qqqq;
     441        XVec2<T,0x00> const xx, rr, ss;
     442        XVec2<T,0x01>       xy, rg, st;
     443        XVec2<T,0x02>       xz, rb, sp;
     444        XVec2<T,0x03>       xw, ra, sq;
     445        XVec2<T,0x10>       yx, gr, ts;
     446        XVec2<T,0x11> const yy, gg, tt;
     447        XVec2<T,0x12>       yz, gb, tp;
     448        XVec2<T,0x13>       yw, ga, tq;
     449        XVec2<T,0x20>       zx, br, ps;
     450        XVec2<T,0x21>       zy, bg, pt;
     451        XVec2<T,0x22> const zz, bb, pp;
     452        XVec2<T,0x23>       zw, ba, pq;
     453        XVec2<T,0x30>       wx, ar, qs;
     454        XVec2<T,0x31>       wy, ag, qt;
     455        XVec2<T,0x32>       wz, ab, qp;
     456        XVec2<T,0x33> const ww, aa, qq;
     457
     458        XVec3<T,0x000> const xxx, rrr, sss;
     459        XVec3<T,0x001> const xxy, rrg, sst;
     460        XVec3<T,0x002> const xxz, rrb, ssp;
     461        XVec3<T,0x003> const xxw, rra, ssq;
     462        XVec3<T,0x010> const xyx, rgr, sts;
     463        XVec3<T,0x011> const xyy, rgg, stt;
     464        XVec3<T,0x012>       xyz, rgb, stp;
     465        XVec3<T,0x013>       xyw, rga, stq;
     466        XVec3<T,0x020> const xzx, rbr, sps;
     467        XVec3<T,0x021>       xzy, rbg, spt;
     468        XVec3<T,0x022> const xzz, rbb, spp;
     469        XVec3<T,0x023>       xzw, rba, spq;
     470        XVec3<T,0x030> const xwx, rar, sqs;
     471        XVec3<T,0x031>       xwy, rag, sqt;
     472        XVec3<T,0x032>       xwz, rab, sqp;
     473        XVec3<T,0x033> const xww, raa, sqq;
     474        XVec3<T,0x100> const yxx, grr, tss;
     475        XVec3<T,0x101> const yxy, grg, tst;
     476        XVec3<T,0x102>       yxz, grb, tsp;
     477        XVec3<T,0x103>       yxw, gra, tsq;
     478        XVec3<T,0x110> const yyx, ggr, tts;
     479        XVec3<T,0x111> const yyy, ggg, ttt;
     480        XVec3<T,0x112> const yyz, ggb, ttp;
     481        XVec3<T,0x113> const yyw, gga, ttq;
     482        XVec3<T,0x120>       yzx, gbr, tps;
     483        XVec3<T,0x121> const yzy, gbg, tpt;
     484        XVec3<T,0x122> const yzz, gbb, tpp;
     485        XVec3<T,0x123>       yzw, gba, tpq;
     486        XVec3<T,0x130>       ywx, gar, tqs;
     487        XVec3<T,0x131> const ywy, gag, tqt;
     488        XVec3<T,0x132>       ywz, gab, tqp;
     489        XVec3<T,0x133> const yww, gaa, tqq;
     490        XVec3<T,0x200> const zxx, brr, pss;
     491        XVec3<T,0x201>       zxy, brg, pst;
     492        XVec3<T,0x202> const zxz, brb, psp;
     493        XVec3<T,0x203>       zxw, bra, psq;
     494        XVec3<T,0x210>       zyx, bgr, pts;
     495        XVec3<T,0x211> const zyy, bgg, ptt;
     496        XVec3<T,0x212> const zyz, bgb, ptp;
     497        XVec3<T,0x213>       zyw, bga, ptq;
     498        XVec3<T,0x220> const zzx, bbr, pps;
     499        XVec3<T,0x221> const zzy, bbg, ppt;
     500        XVec3<T,0x222> const zzz, bbb, ppp;
     501        XVec3<T,0x223> const zzw, bba, ppq;
     502        XVec3<T,0x230>       zwx, bar, pqs;
     503        XVec3<T,0x231>       zwy, bag, pqt;
     504        XVec3<T,0x232> const zwz, bab, pqp;
     505        XVec3<T,0x233> const zww, baa, pqq;
     506        XVec3<T,0x300> const wxx, arr, qss;
     507        XVec3<T,0x301>       wxy, arg, qst;
     508        XVec3<T,0x302>       wxz, arb, qsp;
     509        XVec3<T,0x303> const wxw, ara, qsq;
     510        XVec3<T,0x310>       wyx, agr, qts;
     511        XVec3<T,0x311> const wyy, agg, qtt;
     512        XVec3<T,0x312>       wyz, agb, qtp;
     513        XVec3<T,0x313> const wyw, aga, qtq;
     514        XVec3<T,0x320>       wzx, abr, qps;
     515        XVec3<T,0x321>       wzy, abg, qpt;
     516        XVec3<T,0x322> const wzz, abb, qpp;
     517        XVec3<T,0x323> const wzw, aba, qpq;
     518        XVec3<T,0x330> const wwx, aar, qqs;
     519        XVec3<T,0x331> const wwy, aag, qqt;
     520        XVec3<T,0x332> const wwz, aab, qqp;
     521        XVec3<T,0x333> const www, aaa, qqq;
     522
     523        XVec4<T,0x0000> const xxxx, rrrr, ssss;
     524        XVec4<T,0x0001> const xxxy, rrrg, ssst;
     525        XVec4<T,0x0002> const xxxz, rrrb, sssp;
     526        XVec4<T,0x0003> const xxxw, rrra, sssq;
     527        XVec4<T,0x0010> const xxyx, rrgr, ssts;
     528        XVec4<T,0x0011> const xxyy, rrgg, sstt;
     529        XVec4<T,0x0012> const xxyz, rrgb, sstp;
     530        XVec4<T,0x0013> const xxyw, rrga, sstq;
     531        XVec4<T,0x0020> const xxzx, rrbr, ssps;
     532        XVec4<T,0x0021> const xxzy, rrbg, sspt;
     533        XVec4<T,0x0022> const xxzz, rrbb, sspp;
     534        XVec4<T,0x0023> const xxzw, rrba, sspq;
     535        XVec4<T,0x0030> const xxwx, rrar, ssqs;
     536        XVec4<T,0x0031> const xxwy, rrag, ssqt;
     537        XVec4<T,0x0032> const xxwz, rrab, ssqp;
     538        XVec4<T,0x0033> const xxww, rraa, ssqq;
     539        XVec4<T,0x0100> const xyxx, rgrr, stss;
     540        XVec4<T,0x0101> const xyxy, rgrg, stst;
     541        XVec4<T,0x0102> const xyxz, rgrb, stsp;
     542        XVec4<T,0x0103> const xyxw, rgra, stsq;
     543        XVec4<T,0x0110> const xyyx, rggr, stts;
     544        XVec4<T,0x0111> const xyyy, rggg, sttt;
     545        XVec4<T,0x0112> const xyyz, rggb, sttp;
     546        XVec4<T,0x0113> const xyyw, rgga, sttq;
     547        XVec4<T,0x0120> const xyzx, rgbr, stps;
     548        XVec4<T,0x0121> const xyzy, rgbg, stpt;
     549        XVec4<T,0x0122> const xyzz, rgbb, stpp;
     550        XVec4<T,0x0123>       xyzw, rgba, stpq;
     551        XVec4<T,0x0130> const xywx, rgar, stqs;
     552        XVec4<T,0x0131> const xywy, rgag, stqt;
     553        XVec4<T,0x0132>       xywz, rgab, stqp;
     554        XVec4<T,0x0133> const xyww, rgaa, stqq;
     555        XVec4<T,0x0200> const xzxx, rbrr, spss;
     556        XVec4<T,0x0201> const xzxy, rbrg, spst;
     557        XVec4<T,0x0202> const xzxz, rbrb, spsp;
     558        XVec4<T,0x0203> const xzxw, rbra, spsq;
     559        XVec4<T,0x0210> const xzyx, rbgr, spts;
     560        XVec4<T,0x0211> const xzyy, rbgg, sptt;
     561        XVec4<T,0x0212> const xzyz, rbgb, sptp;
     562        XVec4<T,0x0213>       xzyw, rbga, sptq;
     563        XVec4<T,0x0220> const xzzx, rbbr, spps;
     564        XVec4<T,0x0221> const xzzy, rbbg, sppt;
     565        XVec4<T,0x0222> const xzzz, rbbb, sppp;
     566        XVec4<T,0x0223> const xzzw, rbba, sppq;
     567        XVec4<T,0x0230> const xzwx, rbar, spqs;
     568        XVec4<T,0x0231>       xzwy, rbag, spqt;
     569        XVec4<T,0x0232> const xzwz, rbab, spqp;
     570        XVec4<T,0x0233> const xzww, rbaa, spqq;
     571        XVec4<T,0x0300> const xwxx, rarr, sqss;
     572        XVec4<T,0x0301> const xwxy, rarg, sqst;
     573        XVec4<T,0x0302> const xwxz, rarb, sqsp;
     574        XVec4<T,0x0303> const xwxw, rara, sqsq;
     575        XVec4<T,0x0310> const xwyx, ragr, sqts;
     576        XVec4<T,0x0311> const xwyy, ragg, sqtt;
     577        XVec4<T,0x0312>       xwyz, ragb, sqtp;
     578        XVec4<T,0x0313> const xwyw, raga, sqtq;
     579        XVec4<T,0x0320> const xwzx, rabr, sqps;
     580        XVec4<T,0x0321>       xwzy, rabg, sqpt;
     581        XVec4<T,0x0322> const xwzz, rabb, sqpp;
     582        XVec4<T,0x0323> const xwzw, raba, sqpq;
     583        XVec4<T,0x0330> const xwwx, raar, sqqs;
     584        XVec4<T,0x0331> const xwwy, raag, sqqt;
     585        XVec4<T,0x0332> const xwwz, raab, sqqp;
     586        XVec4<T,0x0333> const xwww, raaa, sqqq;
     587        XVec4<T,0x1000> const yxxx, grrr, tsss;
     588        XVec4<T,0x1001> const yxxy, grrg, tsst;
     589        XVec4<T,0x1002> const yxxz, grrb, tssp;
     590        XVec4<T,0x1003> const yxxw, grra, tssq;
     591        XVec4<T,0x1010> const yxyx, grgr, tsts;
     592        XVec4<T,0x1011> const yxyy, grgg, tstt;
     593        XVec4<T,0x1012> const yxyz, grgb, tstp;
     594        XVec4<T,0x1013> const yxyw, grga, tstq;
     595        XVec4<T,0x1020> const yxzx, grbr, tsps;
     596        XVec4<T,0x1021> const yxzy, grbg, tspt;
     597        XVec4<T,0x1022> const yxzz, grbb, tspp;
     598        XVec4<T,0x1023>       yxzw, grba, tspq;
     599        XVec4<T,0x1030> const yxwx, grar, tsqs;
     600        XVec4<T,0x1031> const yxwy, grag, tsqt;
     601        XVec4<T,0x1032>       yxwz, grab, tsqp;
     602        XVec4<T,0x1033> const yxww, graa, tsqq;
     603        XVec4<T,0x1100> const yyxx, ggrr, ttss;
     604        XVec4<T,0x1101> const yyxy, ggrg, ttst;
     605        XVec4<T,0x1102> const yyxz, ggrb, ttsp;
     606        XVec4<T,0x1103> const yyxw, ggra, ttsq;
     607        XVec4<T,0x1110> const yyyx, gggr, ttts;
     608        XVec4<T,0x1111> const yyyy, gggg, tttt;
     609        XVec4<T,0x1112> const yyyz, gggb, tttp;
     610        XVec4<T,0x1113> const yyyw, ggga, tttq;
     611        XVec4<T,0x1120> const yyzx, ggbr, ttps;
     612        XVec4<T,0x1121> const yyzy, ggbg, ttpt;
     613        XVec4<T,0x1122> const yyzz, ggbb, ttpp;
     614        XVec4<T,0x1123> const yyzw, ggba, ttpq;
     615        XVec4<T,0x1130> const yywx, ggar, ttqs;
     616        XVec4<T,0x1131> const yywy, ggag, ttqt;
     617        XVec4<T,0x1132> const yywz, ggab, ttqp;
     618        XVec4<T,0x1133> const yyww, ggaa, ttqq;
     619        XVec4<T,0x1200> const yzxx, gbrr, tpss;
     620        XVec4<T,0x1201> const yzxy, gbrg, tpst;
     621        XVec4<T,0x1202> const yzxz, gbrb, tpsp;
     622        XVec4<T,0x1203>       yzxw, gbra, tpsq;
     623        XVec4<T,0x1210> const yzyx, gbgr, tpts;
     624        XVec4<T,0x1211> const yzyy, gbgg, tptt;
     625        XVec4<T,0x1212> const yzyz, gbgb, tptp;
     626        XVec4<T,0x1213> const yzyw, gbga, tptq;
     627        XVec4<T,0x1220> const yzzx, gbbr, tpps;
     628        XVec4<T,0x1221> const yzzy, gbbg, tppt;
     629        XVec4<T,0x1222> const yzzz, gbbb, tppp;
     630        XVec4<T,0x1223> const yzzw, gbba, tppq;
     631        XVec4<T,0x1230>       yzwx, gbar, tpqs;
     632        XVec4<T,0x1231> const yzwy, gbag, tpqt;
     633        XVec4<T,0x1232> const yzwz, gbab, tpqp;
     634        XVec4<T,0x1233> const yzww, gbaa, tpqq;
     635        XVec4<T,0x1300> const ywxx, garr, tqss;
     636        XVec4<T,0x1301> const ywxy, garg, tqst;
     637        XVec4<T,0x1302>       ywxz, garb, tqsp;
     638        XVec4<T,0x1303> const ywxw, gara, tqsq;
     639        XVec4<T,0x1310> const ywyx, gagr, tqts;
     640        XVec4<T,0x1311> const ywyy, gagg, tqtt;
     641        XVec4<T,0x1312> const ywyz, gagb, tqtp;
     642        XVec4<T,0x1313> const ywyw, gaga, tqtq;
     643        XVec4<T,0x1320>       ywzx, gabr, tqps;
     644        XVec4<T,0x1321> const ywzy, gabg, tqpt;
     645        XVec4<T,0x1322> const ywzz, gabb, tqpp;
     646        XVec4<T,0x1323> const ywzw, gaba, tqpq;
     647        XVec4<T,0x1330> const ywwx, gaar, tqqs;
     648        XVec4<T,0x1331> const ywwy, gaag, tqqt;
     649        XVec4<T,0x1332> const ywwz, gaab, tqqp;
     650        XVec4<T,0x1333> const ywww, gaaa, tqqq;
     651        XVec4<T,0x2000> const zxxx, brrr, psss;
     652        XVec4<T,0x2001> const zxxy, brrg, psst;
     653        XVec4<T,0x2002> const zxxz, brrb, pssp;
     654        XVec4<T,0x2003> const zxxw, brra, pssq;
     655        XVec4<T,0x2010> const zxyx, brgr, psts;
     656        XVec4<T,0x2011> const zxyy, brgg, pstt;
     657        XVec4<T,0x2012> const zxyz, brgb, pstp;
     658        XVec4<T,0x2013>       zxyw, brga, pstq;
     659        XVec4<T,0x2020> const zxzx, brbr, psps;
     660        XVec4<T,0x2021> const zxzy, brbg, pspt;
     661        XVec4<T,0x2022> const zxzz, brbb, pspp;
     662        XVec4<T,0x2023> const zxzw, brba, pspq;
     663        XVec4<T,0x2030> const zxwx, brar, psqs;
     664        XVec4<T,0x2031>       zxwy, brag, psqt;
     665        XVec4<T,0x2032> const zxwz, brab, psqp;
     666        XVec4<T,0x2033> const zxww, braa, psqq;
     667        XVec4<T,0x2100> const zyxx, bgrr, ptss;
     668        XVec4<T,0x2101> const zyxy, bgrg, ptst;
     669        XVec4<T,0x2102> const zyxz, bgrb, ptsp;
     670        XVec4<T,0x2103>       zyxw, bgra, ptsq;
     671        XVec4<T,0x2110> const zyyx, bggr, ptts;
     672        XVec4<T,0x2111> const zyyy, bggg, pttt;
     673        XVec4<T,0x2112> const zyyz, bggb, pttp;
     674        XVec4<T,0x2113> const zyyw, bgga, pttq;
     675        XVec4<T,0x2120> const zyzx, bgbr, ptps;
     676        XVec4<T,0x2121> const zyzy, bgbg, ptpt;
     677        XVec4<T,0x2122> const zyzz, bgbb, ptpp;
     678        XVec4<T,0x2123> const zyzw, bgba, ptpq;
     679        XVec4<T,0x2130>       zywx, bgar, ptqs;
     680        XVec4<T,0x2131> const zywy, bgag, ptqt;
     681        XVec4<T,0x2132> const zywz, bgab, ptqp;
     682        XVec4<T,0x2133> const zyww, bgaa, ptqq;
     683        XVec4<T,0x2200> const zzxx, bbrr, ppss;
     684        XVec4<T,0x2201> const zzxy, bbrg, ppst;
     685        XVec4<T,0x2202> const zzxz, bbrb, ppsp;
     686        XVec4<T,0x2203> const zzxw, bbra, ppsq;
     687        XVec4<T,0x2210> const zzyx, bbgr, ppts;
     688        XVec4<T,0x2211> const zzyy, bbgg, pptt;
     689        XVec4<T,0x2212> const zzyz, bbgb, pptp;
     690        XVec4<T,0x2213> const zzyw, bbga, pptq;
     691        XVec4<T,0x2220> const zzzx, bbbr, ppps;
     692        XVec4<T,0x2221> const zzzy, bbbg, pppt;
     693        XVec4<T,0x2222> const zzzz, bbbb, pppp;
     694        XVec4<T,0x2223> const zzzw, bbba, pppq;
     695        XVec4<T,0x2230> const zzwx, bbar, ppqs;
     696        XVec4<T,0x2231> const zzwy, bbag, ppqt;
     697        XVec4<T,0x2232> const zzwz, bbab, ppqp;
     698        XVec4<T,0x2233> const zzww, bbaa, ppqq;
     699        XVec4<T,0x2300> const zwxx, barr, pqss;
     700        XVec4<T,0x2301>       zwxy, barg, pqst;
     701        XVec4<T,0x2302> const zwxz, barb, pqsp;
     702        XVec4<T,0x2303> const zwxw, bara, pqsq;
     703        XVec4<T,0x2310>       zwyx, bagr, pqts;
     704        XVec4<T,0x2311> const zwyy, bagg, pqtt;
     705        XVec4<T,0x2312> const zwyz, bagb, pqtp;
     706        XVec4<T,0x2313> const zwyw, baga, pqtq;
     707        XVec4<T,0x2320> const zwzx, babr, pqps;
     708        XVec4<T,0x2321> const zwzy, babg, pqpt;
     709        XVec4<T,0x2322> const zwzz, babb, pqpp;
     710        XVec4<T,0x2323> const zwzw, baba, pqpq;
     711        XVec4<T,0x2330> const zwwx, baar, pqqs;
     712        XVec4<T,0x2331> const zwwy, baag, pqqt;
     713        XVec4<T,0x2332> const zwwz, baab, pqqp;
     714        XVec4<T,0x2333> const zwww, baaa, pqqq;
     715        XVec4<T,0x3000> const wxxx, arrr, qsss;
     716        XVec4<T,0x3001> const wxxy, arrg, qsst;
     717        XVec4<T,0x3002> const wxxz, arrb, qssp;
     718        XVec4<T,0x3003> const wxxw, arra, qssq;
     719        XVec4<T,0x3010> const wxyx, argr, qsts;
     720        XVec4<T,0x3011> const wxyy, argg, qstt;
     721        XVec4<T,0x3012>       wxyz, argb, qstp;
     722        XVec4<T,0x3013> const wxyw, arga, qstq;
     723        XVec4<T,0x3020> const wxzx, arbr, qsps;
     724        XVec4<T,0x3021>       wxzy, arbg, qspt;
     725        XVec4<T,0x3022> const wxzz, arbb, qspp;
     726        XVec4<T,0x3023> const wxzw, arba, qspq;
     727        XVec4<T,0x3030> const wxwx, arar, qsqs;
     728        XVec4<T,0x3031> const wxwy, arag, qsqt;
     729        XVec4<T,0x3032> const wxwz, arab, qsqp;
     730        XVec4<T,0x3033> const wxww, araa, qsqq;
     731        XVec4<T,0x3100> const wyxx, agrr, qtss;
     732        XVec4<T,0x3101> const wyxy, agrg, qtst;
     733        XVec4<T,0x3102>       wyxz, agrb, qtsp;
     734        XVec4<T,0x3103> const wyxw, agra, qtsq;
     735        XVec4<T,0x3110> const wyyx, aggr, qtts;
     736        XVec4<T,0x3111> const wyyy, aggg, qttt;
     737        XVec4<T,0x3112> const wyyz, aggb, qttp;
     738        XVec4<T,0x3113> const wyyw, agga, qttq;
     739        XVec4<T,0x3120>       wyzx, agbr, qtps;
     740        XVec4<T,0x3121> const wyzy, agbg, qtpt;
     741        XVec4<T,0x3122> const wyzz, agbb, qtpp;
     742        XVec4<T,0x3123> const wyzw, agba, qtpq;
     743        XVec4<T,0x3130> const wywx, agar, qtqs;
     744        XVec4<T,0x3131> const wywy, agag, qtqt;
     745        XVec4<T,0x3132> const wywz, agab, qtqp;
     746        XVec4<T,0x3133> const wyww, agaa, qtqq;
     747        XVec4<T,0x3200> const wzxx, abrr, qpss;
     748        XVec4<T,0x3201>       wzxy, abrg, qpst;
     749        XVec4<T,0x3202> const wzxz, abrb, qpsp;
     750        XVec4<T,0x3203> const wzxw, abra, qpsq;
     751        XVec4<T,0x3210>       wzyx, abgr, qpts;
     752        XVec4<T,0x3211> const wzyy, abgg, qptt;
     753        XVec4<T,0x3212> const wzyz, abgb, qptp;
     754        XVec4<T,0x3213> const wzyw, abga, qptq;
     755        XVec4<T,0x3220> const wzzx, abbr, qpps;
     756        XVec4<T,0x3221> const wzzy, abbg, qppt;
     757        XVec4<T,0x3222> const wzzz, abbb, qppp;
     758        XVec4<T,0x3223> const wzzw, abba, qppq;
     759        XVec4<T,0x3230> const wzwx, abar, qpqs;
     760        XVec4<T,0x3231> const wzwy, abag, qpqt;
     761        XVec4<T,0x3232> const wzwz, abab, qpqp;
     762        XVec4<T,0x3233> const wzww, abaa, qpqq;
     763        XVec4<T,0x3300> const wwxx, aarr, qqss;
     764        XVec4<T,0x3301> const wwxy, aarg, qqst;
     765        XVec4<T,0x3302> const wwxz, aarb, qqsp;
     766        XVec4<T,0x3303> const wwxw, aara, qqsq;
     767        XVec4<T,0x3310> const wwyx, aagr, qqts;
     768        XVec4<T,0x3311> const wwyy, aagg, qqtt;
     769        XVec4<T,0x3312> const wwyz, aagb, qqtp;
     770        XVec4<T,0x3313> const wwyw, aaga, qqtq;
     771        XVec4<T,0x3320> const wwzx, aabr, qqps;
     772        XVec4<T,0x3321> const wwzy, aabg, qqpt;
     773        XVec4<T,0x3322> const wwzz, aabb, qqpp;
     774        XVec4<T,0x3323> const wwzw, aaba, qqpq;
     775        XVec4<T,0x3330> const wwwx, aaar, qqqs;
     776        XVec4<T,0x3331> const wwwy, aaag, qqqt;
     777        XVec4<T,0x3332> const wwwz, aaab, qqqp;
     778        XVec4<T,0x3333> const wwww, aaaa, qqqq;
    779779    };
    780780};
Note: See TracChangeset for help on using the changeset viewer.