diff --git a/src/lol/math/vector.h b/src/lol/math/vector.h index c3c8c7e4..e49e3459 100644 --- a/src/lol/math/vector.h +++ b/src/lol/math/vector.h @@ -136,36 +136,36 @@ template struct Vec2 struct { T r, g; }; struct { T s, t; }; - XVec2 xx, rr, ss; - XVec2 xy, rg, st; - XVec2 yx, gr, ts; - XVec2 yy, gg, tt; - - XVec3 xxx, rrr, sss; - XVec3 xxy, rrg, sst; - XVec3 xyx, rgr, sts; - XVec3 xyy, rgg, stt; - XVec3 yxx, grr, tss; - XVec3 yxy, grg, tst; - XVec3 yyx, ggr, tts; - XVec3 yyy, ggg, ttt; - - XVec4 xxxx, rrrr, ssss; - XVec4 xxxy, rrrg, ssst; - XVec4 xxyx, rrgr, ssts; - XVec4 xxyy, rrgg, sstt; - XVec4 xyxx, rgrr, stss; - XVec4 xyxy, rgrg, stst; - XVec4 xyyx, rggr, stts; - XVec4 xyyy, rggg, sttt; - XVec4 yxxx, grrr, tsss; - XVec4 yxxy, grrg, tsst; - XVec4 yxyx, grgr, tsts; - XVec4 yxyy, grgg, tstt; - XVec4 yyxx, ggrr, ttss; - XVec4 yyxy, ggrg, ttst; - XVec4 yyyx, gggr, ttts; - XVec4 yyyy, gggg, tttt; + XVec2 const xx, rr, ss; + XVec2 xy, rg, st; + XVec2 yx, gr, ts; + XVec2 const yy, gg, tt; + + XVec3 const xxx, rrr, sss; + XVec3 const xxy, rrg, sst; + XVec3 const xyx, rgr, sts; + XVec3 const xyy, rgg, stt; + XVec3 const yxx, grr, tss; + XVec3 const yxy, grg, tst; + XVec3 const yyx, ggr, tts; + XVec3 const yyy, ggg, ttt; + + XVec4 const xxxx, rrrr, ssss; + XVec4 const xxxy, rrrg, ssst; + XVec4 const xxyx, rrgr, ssts; + XVec4 const xxyy, rrgg, sstt; + XVec4 const xyxx, rgrr, stss; + XVec4 const xyxy, rgrg, stst; + XVec4 const xyyx, rggr, stts; + XVec4 const xyyy, rggg, sttt; + XVec4 const yxxx, grrr, tsss; + XVec4 const yxxy, grrg, tsst; + XVec4 const yxyx, grgr, tsts; + XVec4 const yxyy, grgg, tstt; + XVec4 const yyxx, ggrr, ttss; + XVec4 const yyxy, ggrg, ttst; + XVec4 const yyyx, gggr, ttts; + XVec4 const yyyy, gggg, tttt; }; }; @@ -278,125 +278,125 @@ template struct Vec3 struct { T r, g, b; }; struct { T s, t, p; }; - XVec2 xx, rr, ss; - XVec2 xy, rg, st; - XVec2 xz, rb, sp; - XVec2 yx, gr, ts; - XVec2 yy, gg, tt; - XVec2 yz, gb, tp; - XVec2 zx, br, ps; - XVec2 zy, bg, pt; - XVec2 zz, bb, pp; - - XVec3 xxx, rrr, sss; - XVec3 xxy, rrg, sst; - XVec3 xxz, rrb, ssp; - XVec3 xyx, rgr, sts; - XVec3 xyy, rgg, stt; - XVec3 xyz, rgb, stp; - XVec3 xzx, rbr, sps; - XVec3 xzy, rbg, spt; - XVec3 xzz, rbb, spp; - XVec3 yxx, grr, tss; - XVec3 yxy, grg, tst; - XVec3 yxz, grb, tsp; - XVec3 yyx, ggr, tts; - XVec3 yyy, ggg, ttt; - XVec3 yyz, ggb, ttp; - XVec3 yzx, gbr, tps; - XVec3 yzy, gbg, tpt; - XVec3 yzz, gbb, tpp; - XVec3 zxx, brr, pss; - XVec3 zxy, brg, pst; - XVec3 zxz, brb, psp; - XVec3 zyx, bgr, pts; - XVec3 zyy, bgg, ptt; - XVec3 zyz, bgb, ptp; - XVec3 zzx, bbr, pps; - XVec3 zzy, bbg, ppt; - XVec3 zzz, bbb, ppp; - - XVec4 xxxx, rrrr, ssss; - XVec4 xxxy, rrrg, ssst; - XVec4 xxxz, rrrb, sssp; - XVec4 xxyx, rrgr, ssts; - XVec4 xxyy, rrgg, sstt; - XVec4 xxyz, rrgb, sstp; - XVec4 xxzx, rrbr, ssps; - XVec4 xxzy, rrbg, sspt; - XVec4 xxzz, rrbb, sspp; - XVec4 xyxx, rgrr, stss; - XVec4 xyxy, rgrg, stst; - XVec4 xyxz, rgrb, stsp; - XVec4 xyyx, rggr, stts; - XVec4 xyyy, rggg, sttt; - XVec4 xyyz, rggb, sttp; - XVec4 xyzx, rgbr, stps; - XVec4 xyzy, rgbg, stpt; - XVec4 xyzz, rgbb, stpp; - XVec4 xzxx, rbrr, spss; - XVec4 xzxy, rbrg, spst; - XVec4 xzxz, rbrb, spsp; - XVec4 xzyx, rbgr, spts; - XVec4 xzyy, rbgg, sptt; - XVec4 xzyz, rbgb, sptp; - XVec4 xzzx, rbbr, spps; - XVec4 xzzy, rbbg, sppt; - XVec4 xzzz, rbbb, sppp; - XVec4 yxxx, grrr, tsss; - XVec4 yxxy, grrg, tsst; - XVec4 yxxz, grrb, tssp; - XVec4 yxyx, grgr, tsts; - XVec4 yxyy, grgg, tstt; - XVec4 yxyz, grgb, tstp; - XVec4 yxzx, grbr, tsps; - XVec4 yxzy, grbg, tspt; - XVec4 yxzz, grbb, tspp; - XVec4 yyxx, ggrr, ttss; - XVec4 yyxy, ggrg, ttst; - XVec4 yyxz, ggrb, ttsp; - XVec4 yyyx, gggr, ttts; - XVec4 yyyy, gggg, tttt; - XVec4 yyyz, gggb, tttp; - XVec4 yyzx, ggbr, ttps; - XVec4 yyzy, ggbg, ttpt; - XVec4 yyzz, ggbb, ttpp; - XVec4 yzxx, gbrr, tpss; - XVec4 yzxy, gbrg, tpst; - XVec4 yzxz, gbrb, tpsp; - XVec4 yzyx, gbgr, tpts; - XVec4 yzyy, gbgg, tptt; - XVec4 yzyz, gbgb, tptp; - XVec4 yzzx, gbbr, tpps; - XVec4 yzzy, gbbg, tppt; - XVec4 yzzz, gbbb, tppp; - XVec4 zxxx, brrr, psss; - XVec4 zxxy, brrg, psst; - XVec4 zxxz, brrb, pssp; - XVec4 zxyx, brgr, psts; - XVec4 zxyy, brgg, pstt; - XVec4 zxyz, brgb, pstp; - XVec4 zxzx, brbr, psps; - XVec4 zxzy, brbg, pspt; - XVec4 zxzz, brbb, pspp; - XVec4 zyxx, bgrr, ptss; - XVec4 zyxy, bgrg, ptst; - XVec4 zyxz, bgrb, ptsp; - XVec4 zyyx, bggr, ptts; - XVec4 zyyy, bggg, pttt; - XVec4 zyyz, bggb, pttp; - XVec4 zyzx, bgbr, ptps; - XVec4 zyzy, bgbg, ptpt; - XVec4 zyzz, bgbb, ptpp; - XVec4 zzxx, bbrr, ppss; - XVec4 zzxy, bbrg, ppst; - XVec4 zzxz, bbrb, ppsp; - XVec4 zzyx, bbgr, ppts; - XVec4 zzyy, bbgg, pptt; - XVec4 zzyz, bbgb, pptp; - XVec4 zzzx, bbbr, ppps; - XVec4 zzzy, bbbg, pppt; - XVec4 zzzz, bbbb, pppp; + XVec2 const xx, rr, ss; + XVec2 xy, rg, st; + XVec2 xz, rb, sp; + XVec2 yx, gr, ts; + XVec2 const yy, gg, tt; + XVec2 yz, gb, tp; + XVec2 zx, br, ps; + XVec2 zy, bg, pt; + XVec2 const zz, bb, pp; + + XVec3 const xxx, rrr, sss; + XVec3 const xxy, rrg, sst; + XVec3 const xxz, rrb, ssp; + XVec3 const xyx, rgr, sts; + XVec3 const xyy, rgg, stt; + XVec3 xyz, rgb, stp; + XVec3 const xzx, rbr, sps; + XVec3 xzy, rbg, spt; + XVec3 const xzz, rbb, spp; + XVec3 const yxx, grr, tss; + XVec3 const yxy, grg, tst; + XVec3 yxz, grb, tsp; + XVec3 const yyx, ggr, tts; + XVec3 const yyy, ggg, ttt; + XVec3 const yyz, ggb, ttp; + XVec3 yzx, gbr, tps; + XVec3 const yzy, gbg, tpt; + XVec3 const yzz, gbb, tpp; + XVec3 const zxx, brr, pss; + XVec3 zxy, brg, pst; + XVec3 const zxz, brb, psp; + XVec3 zyx, bgr, pts; + XVec3 const zyy, bgg, ptt; + XVec3 const zyz, bgb, ptp; + XVec3 const zzx, bbr, pps; + XVec3 const zzy, bbg, ppt; + XVec3 const zzz, bbb, ppp; + + XVec4 const xxxx, rrrr, ssss; + XVec4 const xxxy, rrrg, ssst; + XVec4 const xxxz, rrrb, sssp; + XVec4 const xxyx, rrgr, ssts; + XVec4 const xxyy, rrgg, sstt; + XVec4 const xxyz, rrgb, sstp; + XVec4 const xxzx, rrbr, ssps; + XVec4 const xxzy, rrbg, sspt; + XVec4 const xxzz, rrbb, sspp; + XVec4 const xyxx, rgrr, stss; + XVec4 const xyxy, rgrg, stst; + XVec4 const xyxz, rgrb, stsp; + XVec4 const xyyx, rggr, stts; + XVec4 const xyyy, rggg, sttt; + XVec4 const xyyz, rggb, sttp; + XVec4 const xyzx, rgbr, stps; + XVec4 const xyzy, rgbg, stpt; + XVec4 const xyzz, rgbb, stpp; + XVec4 const xzxx, rbrr, spss; + XVec4 const xzxy, rbrg, spst; + XVec4 const xzxz, rbrb, spsp; + XVec4 const xzyx, rbgr, spts; + XVec4 const xzyy, rbgg, sptt; + XVec4 const xzyz, rbgb, sptp; + XVec4 const xzzx, rbbr, spps; + XVec4 const xzzy, rbbg, sppt; + XVec4 const xzzz, rbbb, sppp; + XVec4 const yxxx, grrr, tsss; + XVec4 const yxxy, grrg, tsst; + XVec4 const yxxz, grrb, tssp; + XVec4 const yxyx, grgr, tsts; + XVec4 const yxyy, grgg, tstt; + XVec4 const yxyz, grgb, tstp; + XVec4 const yxzx, grbr, tsps; + XVec4 const yxzy, grbg, tspt; + XVec4 const yxzz, grbb, tspp; + XVec4 const yyxx, ggrr, ttss; + XVec4 const yyxy, ggrg, ttst; + XVec4 const yyxz, ggrb, ttsp; + XVec4 const yyyx, gggr, ttts; + XVec4 const yyyy, gggg, tttt; + XVec4 const yyyz, gggb, tttp; + XVec4 const yyzx, ggbr, ttps; + XVec4 const yyzy, ggbg, ttpt; + XVec4 const yyzz, ggbb, ttpp; + XVec4 const yzxx, gbrr, tpss; + XVec4 const yzxy, gbrg, tpst; + XVec4 const yzxz, gbrb, tpsp; + XVec4 const yzyx, gbgr, tpts; + XVec4 const yzyy, gbgg, tptt; + XVec4 const yzyz, gbgb, tptp; + XVec4 const yzzx, gbbr, tpps; + XVec4 const yzzy, gbbg, tppt; + XVec4 const yzzz, gbbb, tppp; + XVec4 const zxxx, brrr, psss; + XVec4 const zxxy, brrg, psst; + XVec4 const zxxz, brrb, pssp; + XVec4 const zxyx, brgr, psts; + XVec4 const zxyy, brgg, pstt; + XVec4 const zxyz, brgb, pstp; + XVec4 const zxzx, brbr, psps; + XVec4 const zxzy, brbg, pspt; + XVec4 const zxzz, brbb, pspp; + XVec4 const zyxx, bgrr, ptss; + XVec4 const zyxy, bgrg, ptst; + XVec4 const zyxz, bgrb, ptsp; + XVec4 const zyyx, bggr, ptts; + XVec4 const zyyy, bggg, pttt; + XVec4 const zyyz, bggb, pttp; + XVec4 const zyzx, bgbr, ptps; + XVec4 const zyzy, bgbg, ptpt; + XVec4 const zyzz, bgbb, ptpp; + XVec4 const zzxx, bbrr, ppss; + XVec4 const zzxy, bbrg, ppst; + XVec4 const zzxz, bbrb, ppsp; + XVec4 const zzyx, bbgr, ppts; + XVec4 const zzyy, bbgg, pptt; + XVec4 const zzyz, bbgb, pptp; + XVec4 const zzzx, bbbr, ppps; + XVec4 const zzzy, bbbg, pppt; + XVec4 const zzzz, bbbb, pppp; }; }; @@ -438,344 +438,344 @@ template struct Vec4 struct { T r, g, b, a; }; struct { T s, t, p, q; }; - XVec2 xx, rr, ss; - XVec2 xy, rg, st; - XVec2 xz, rb, sp; - XVec2 xw, ra, sq; - XVec2 yx, gr, ts; - XVec2 yy, gg, tt; - XVec2 yz, gb, tp; - XVec2 yw, ga, tq; - XVec2 zx, br, ps; - XVec2 zy, bg, pt; - XVec2 zz, bb, pp; - XVec2 zw, ba, pq; - XVec2 wx, ar, qs; - XVec2 wy, ag, qt; - XVec2 wz, ab, qp; - XVec2 ww, aa, qq; - - XVec3 xxx, rrr, sss; - XVec3 xxy, rrg, sst; - XVec3 xxz, rrb, ssp; - XVec3 xxw, rra, ssq; - XVec3 xyx, rgr, sts; - XVec3 xyy, rgg, stt; - XVec3 xyz, rgb, stp; - XVec3 xyw, rga, stq; - XVec3 xzx, rbr, sps; - XVec3 xzy, rbg, spt; - XVec3 xzz, rbb, spp; - XVec3 xzw, rba, spq; - XVec3 xwx, rar, sqs; - XVec3 xwy, rag, sqt; - XVec3 xwz, rab, sqp; - XVec3 xww, raa, sqq; - XVec3 yxx, grr, tss; - XVec3 yxy, grg, tst; - XVec3 yxz, grb, tsp; - XVec3 yxw, gra, tsq; - XVec3 yyx, ggr, tts; - XVec3 yyy, ggg, ttt; - XVec3 yyz, ggb, ttp; - XVec3 yyw, gga, ttq; - XVec3 yzx, gbr, tps; - XVec3 yzy, gbg, tpt; - XVec3 yzz, gbb, tpp; - XVec3 yzw, gba, tpq; - XVec3 ywx, gar, tqs; - XVec3 ywy, gag, tqt; - XVec3 ywz, gab, tqp; - XVec3 yww, gaa, tqq; - XVec3 zxx, brr, pss; - XVec3 zxy, brg, pst; - XVec3 zxz, brb, psp; - XVec3 zxw, bra, psq; - XVec3 zyx, bgr, pts; - XVec3 zyy, bgg, ptt; - XVec3 zyz, bgb, ptp; - XVec3 zyw, bga, ptq; - XVec3 zzx, bbr, pps; - XVec3 zzy, bbg, ppt; - XVec3 zzz, bbb, ppp; - XVec3 zzw, bba, ppq; - XVec3 zwx, bar, pqs; - XVec3 zwy, bag, pqt; - XVec3 zwz, bab, pqp; - XVec3 zww, baa, pqq; - XVec3 wxx, arr, qss; - XVec3 wxy, arg, qst; - XVec3 wxz, arb, qsp; - XVec3 wxw, ara, qsq; - XVec3 wyx, agr, qts; - XVec3 wyy, agg, qtt; - XVec3 wyz, agb, qtp; - XVec3 wyw, aga, qtq; - XVec3 wzx, abr, qps; - XVec3 wzy, abg, qpt; - XVec3 wzz, abb, qpp; - XVec3 wzw, aba, qpq; - XVec3 wwx, aar, qqs; - XVec3 wwy, aag, qqt; - XVec3 wwz, aab, qqp; - XVec3 www, aaa, qqq; - - XVec4 xxxx, rrrr, ssss; - XVec4 xxxy, rrrg, ssst; - XVec4 xxxz, rrrb, sssp; - XVec4 xxxw, rrra, sssq; - XVec4 xxyx, rrgr, ssts; - XVec4 xxyy, rrgg, sstt; - XVec4 xxyz, rrgb, sstp; - XVec4 xxyw, rrga, sstq; - XVec4 xxzx, rrbr, ssps; - XVec4 xxzy, rrbg, sspt; - XVec4 xxzz, rrbb, sspp; - XVec4 xxzw, rrba, sspq; - XVec4 xxwx, rrar, ssqs; - XVec4 xxwy, rrag, ssqt; - XVec4 xxwz, rrab, ssqp; - XVec4 xxww, rraa, ssqq; - XVec4 xyxx, rgrr, stss; - XVec4 xyxy, rgrg, stst; - XVec4 xyxz, rgrb, stsp; - XVec4 xyxw, rgra, stsq; - XVec4 xyyx, rggr, stts; - XVec4 xyyy, rggg, sttt; - XVec4 xyyz, rggb, sttp; - XVec4 xyyw, rgga, sttq; - XVec4 xyzx, rgbr, stps; - XVec4 xyzy, rgbg, stpt; - XVec4 xyzz, rgbb, stpp; - XVec4 xyzw, rgba, stpq; - XVec4 xywx, rgar, stqs; - XVec4 xywy, rgag, stqt; - XVec4 xywz, rgab, stqp; - XVec4 xyww, rgaa, stqq; - XVec4 xzxx, rbrr, spss; - XVec4 xzxy, rbrg, spst; - XVec4 xzxz, rbrb, spsp; - XVec4 xzxw, rbra, spsq; - XVec4 xzyx, rbgr, spts; - XVec4 xzyy, rbgg, sptt; - XVec4 xzyz, rbgb, sptp; - XVec4 xzyw, rbga, sptq; - XVec4 xzzx, rbbr, spps; - XVec4 xzzy, rbbg, sppt; - XVec4 xzzz, rbbb, sppp; - XVec4 xzzw, rbba, sppq; - XVec4 xzwx, rbar, spqs; - XVec4 xzwy, rbag, spqt; - XVec4 xzwz, rbab, spqp; - XVec4 xzww, rbaa, spqq; - XVec4 xwxx, rarr, sqss; - XVec4 xwxy, rarg, sqst; - XVec4 xwxz, rarb, sqsp; - XVec4 xwxw, rara, sqsq; - XVec4 xwyx, ragr, sqts; - XVec4 xwyy, ragg, sqtt; - XVec4 xwyz, ragb, sqtp; - XVec4 xwyw, raga, sqtq; - XVec4 xwzx, rabr, sqps; - XVec4 xwzy, rabg, sqpt; - XVec4 xwzz, rabb, sqpp; - XVec4 xwzw, raba, sqpq; - XVec4 xwwx, raar, sqqs; - XVec4 xwwy, raag, sqqt; - XVec4 xwwz, raab, sqqp; - XVec4 xwww, raaa, sqqq; - XVec4 yxxx, grrr, tsss; - XVec4 yxxy, grrg, tsst; - XVec4 yxxz, grrb, tssp; - XVec4 yxxw, grra, tssq; - XVec4 yxyx, grgr, tsts; - XVec4 yxyy, grgg, tstt; - XVec4 yxyz, grgb, tstp; - XVec4 yxyw, grga, tstq; - XVec4 yxzx, grbr, tsps; - XVec4 yxzy, grbg, tspt; - XVec4 yxzz, grbb, tspp; - XVec4 yxzw, grba, tspq; - XVec4 yxwx, grar, tsqs; - XVec4 yxwy, grag, tsqt; - XVec4 yxwz, grab, tsqp; - XVec4 yxww, graa, tsqq; - XVec4 yyxx, ggrr, ttss; - XVec4 yyxy, ggrg, ttst; - XVec4 yyxz, ggrb, ttsp; - XVec4 yyxw, ggra, ttsq; - XVec4 yyyx, gggr, ttts; - XVec4 yyyy, gggg, tttt; - XVec4 yyyz, gggb, tttp; - XVec4 yyyw, ggga, tttq; - XVec4 yyzx, ggbr, ttps; - XVec4 yyzy, ggbg, ttpt; - XVec4 yyzz, ggbb, ttpp; - XVec4 yyzw, ggba, ttpq; - XVec4 yywx, ggar, ttqs; - XVec4 yywy, ggag, ttqt; - XVec4 yywz, ggab, ttqp; - XVec4 yyww, ggaa, ttqq; - XVec4 yzxx, gbrr, tpss; - XVec4 yzxy, gbrg, tpst; - XVec4 yzxz, gbrb, tpsp; - XVec4 yzxw, gbra, tpsq; - XVec4 yzyx, gbgr, tpts; - XVec4 yzyy, gbgg, tptt; - XVec4 yzyz, gbgb, tptp; - XVec4 yzyw, gbga, tptq; - XVec4 yzzx, gbbr, tpps; - XVec4 yzzy, gbbg, tppt; - XVec4 yzzz, gbbb, tppp; - XVec4 yzzw, gbba, tppq; - XVec4 yzwx, gbar, tpqs; - XVec4 yzwy, gbag, tpqt; - XVec4 yzwz, gbab, tpqp; - XVec4 yzww, gbaa, tpqq; - XVec4 ywxx, garr, tqss; - XVec4 ywxy, garg, tqst; - XVec4 ywxz, garb, tqsp; - XVec4 ywxw, gara, tqsq; - XVec4 ywyx, gagr, tqts; - XVec4 ywyy, gagg, tqtt; - XVec4 ywyz, gagb, tqtp; - XVec4 ywyw, gaga, tqtq; - XVec4 ywzx, gabr, tqps; - XVec4 ywzy, gabg, tqpt; - XVec4 ywzz, gabb, tqpp; - XVec4 ywzw, gaba, tqpq; - XVec4 ywwx, gaar, tqqs; - XVec4 ywwy, gaag, tqqt; - XVec4 ywwz, gaab, tqqp; - XVec4 ywww, gaaa, tqqq; - XVec4 zxxx, brrr, psss; - XVec4 zxxy, brrg, psst; - XVec4 zxxz, brrb, pssp; - XVec4 zxxw, brra, pssq; - XVec4 zxyx, brgr, psts; - XVec4 zxyy, brgg, pstt; - XVec4 zxyz, brgb, pstp; - XVec4 zxyw, brga, pstq; - XVec4 zxzx, brbr, psps; - XVec4 zxzy, brbg, pspt; - XVec4 zxzz, brbb, pspp; - XVec4 zxzw, brba, pspq; - XVec4 zxwx, brar, psqs; - XVec4 zxwy, brag, psqt; - XVec4 zxwz, brab, psqp; - XVec4 zxww, braa, psqq; - XVec4 zyxx, bgrr, ptss; - XVec4 zyxy, bgrg, ptst; - XVec4 zyxz, bgrb, ptsp; - XVec4 zyxw, bgra, ptsq; - XVec4 zyyx, bggr, ptts; - XVec4 zyyy, bggg, pttt; - XVec4 zyyz, bggb, pttp; - XVec4 zyyw, bgga, pttq; - XVec4 zyzx, bgbr, ptps; - XVec4 zyzy, bgbg, ptpt; - XVec4 zyzz, bgbb, ptpp; - XVec4 zyzw, bgba, ptpq; - XVec4 zywx, bgar, ptqs; - XVec4 zywy, bgag, ptqt; - XVec4 zywz, bgab, ptqp; - XVec4 zyww, bgaa, ptqq; - XVec4 zzxx, bbrr, ppss; - XVec4 zzxy, bbrg, ppst; - XVec4 zzxz, bbrb, ppsp; - XVec4 zzxw, bbra, ppsq; - XVec4 zzyx, bbgr, ppts; - XVec4 zzyy, bbgg, pptt; - XVec4 zzyz, bbgb, pptp; - XVec4 zzyw, bbga, pptq; - XVec4 zzzx, bbbr, ppps; - XVec4 zzzy, bbbg, pppt; - XVec4 zzzz, bbbb, pppp; - XVec4 zzzw, bbba, pppq; - XVec4 zzwx, bbar, ppqs; - XVec4 zzwy, bbag, ppqt; - XVec4 zzwz, bbab, ppqp; - XVec4 zzww, bbaa, ppqq; - XVec4 zwxx, barr, pqss; - XVec4 zwxy, barg, pqst; - XVec4 zwxz, barb, pqsp; - XVec4 zwxw, bara, pqsq; - XVec4 zwyx, bagr, pqts; - XVec4 zwyy, bagg, pqtt; - XVec4 zwyz, bagb, pqtp; - XVec4 zwyw, baga, pqtq; - XVec4 zwzx, babr, pqps; - XVec4 zwzy, babg, pqpt; - XVec4 zwzz, babb, pqpp; - XVec4 zwzw, baba, pqpq; - XVec4 zwwx, baar, pqqs; - XVec4 zwwy, baag, pqqt; - XVec4 zwwz, baab, pqqp; - XVec4 zwww, baaa, pqqq; - XVec4 wxxx, arrr, qsss; - XVec4 wxxy, arrg, qsst; - XVec4 wxxz, arrb, qssp; - XVec4 wxxw, arra, qssq; - XVec4 wxyx, argr, qsts; - XVec4 wxyy, argg, qstt; - XVec4 wxyz, argb, qstp; - XVec4 wxyw, arga, qstq; - XVec4 wxzx, arbr, qsps; - XVec4 wxzy, arbg, qspt; - XVec4 wxzz, arbb, qspp; - XVec4 wxzw, arba, qspq; - XVec4 wxwx, arar, qsqs; - XVec4 wxwy, arag, qsqt; - XVec4 wxwz, arab, qsqp; - XVec4 wxww, araa, qsqq; - XVec4 wyxx, agrr, qtss; - XVec4 wyxy, agrg, qtst; - XVec4 wyxz, agrb, qtsp; - XVec4 wyxw, agra, qtsq; - XVec4 wyyx, aggr, qtts; - XVec4 wyyy, aggg, qttt; - XVec4 wyyz, aggb, qttp; - XVec4 wyyw, agga, qttq; - XVec4 wyzx, agbr, qtps; - XVec4 wyzy, agbg, qtpt; - XVec4 wyzz, agbb, qtpp; - XVec4 wyzw, agba, qtpq; - XVec4 wywx, agar, qtqs; - XVec4 wywy, agag, qtqt; - XVec4 wywz, agab, qtqp; - XVec4 wyww, agaa, qtqq; - XVec4 wzxx, abrr, qpss; - XVec4 wzxy, abrg, qpst; - XVec4 wzxz, abrb, qpsp; - XVec4 wzxw, abra, qpsq; - XVec4 wzyx, abgr, qpts; - XVec4 wzyy, abgg, qptt; - XVec4 wzyz, abgb, qptp; - XVec4 wzyw, abga, qptq; - XVec4 wzzx, abbr, qpps; - XVec4 wzzy, abbg, qppt; - XVec4 wzzz, abbb, qppp; - XVec4 wzzw, abba, qppq; - XVec4 wzwx, abar, qpqs; - XVec4 wzwy, abag, qpqt; - XVec4 wzwz, abab, qpqp; - XVec4 wzww, abaa, qpqq; - XVec4 wwxx, aarr, qqss; - XVec4 wwxy, aarg, qqst; - XVec4 wwxz, aarb, qqsp; - XVec4 wwxw, aara, qqsq; - XVec4 wwyx, aagr, qqts; - XVec4 wwyy, aagg, qqtt; - XVec4 wwyz, aagb, qqtp; - XVec4 wwyw, aaga, qqtq; - XVec4 wwzx, aabr, qqps; - XVec4 wwzy, aabg, qqpt; - XVec4 wwzz, aabb, qqpp; - XVec4 wwzw, aaba, qqpq; - XVec4 wwwx, aaar, qqqs; - XVec4 wwwy, aaag, qqqt; - XVec4 wwwz, aaab, qqqp; - XVec4 wwww, aaaa, qqqq; + XVec2 const xx, rr, ss; + XVec2 xy, rg, st; + XVec2 xz, rb, sp; + XVec2 xw, ra, sq; + XVec2 yx, gr, ts; + XVec2 const yy, gg, tt; + XVec2 yz, gb, tp; + XVec2 yw, ga, tq; + XVec2 zx, br, ps; + XVec2 zy, bg, pt; + XVec2 const zz, bb, pp; + XVec2 zw, ba, pq; + XVec2 wx, ar, qs; + XVec2 wy, ag, qt; + XVec2 wz, ab, qp; + XVec2 const ww, aa, qq; + + XVec3 const xxx, rrr, sss; + XVec3 const xxy, rrg, sst; + XVec3 const xxz, rrb, ssp; + XVec3 const xxw, rra, ssq; + XVec3 const xyx, rgr, sts; + XVec3 const xyy, rgg, stt; + XVec3 xyz, rgb, stp; + XVec3 xyw, rga, stq; + XVec3 const xzx, rbr, sps; + XVec3 xzy, rbg, spt; + XVec3 const xzz, rbb, spp; + XVec3 xzw, rba, spq; + XVec3 const xwx, rar, sqs; + XVec3 xwy, rag, sqt; + XVec3 xwz, rab, sqp; + XVec3 const xww, raa, sqq; + XVec3 const yxx, grr, tss; + XVec3 const yxy, grg, tst; + XVec3 yxz, grb, tsp; + XVec3 yxw, gra, tsq; + XVec3 const yyx, ggr, tts; + XVec3 const yyy, ggg, ttt; + XVec3 const yyz, ggb, ttp; + XVec3 const yyw, gga, ttq; + XVec3 yzx, gbr, tps; + XVec3 const yzy, gbg, tpt; + XVec3 const yzz, gbb, tpp; + XVec3 yzw, gba, tpq; + XVec3 ywx, gar, tqs; + XVec3 const ywy, gag, tqt; + XVec3 ywz, gab, tqp; + XVec3 const yww, gaa, tqq; + XVec3 const zxx, brr, pss; + XVec3 zxy, brg, pst; + XVec3 const zxz, brb, psp; + XVec3 zxw, bra, psq; + XVec3 zyx, bgr, pts; + XVec3 const zyy, bgg, ptt; + XVec3 const zyz, bgb, ptp; + XVec3 zyw, bga, ptq; + XVec3 const zzx, bbr, pps; + XVec3 const zzy, bbg, ppt; + XVec3 const zzz, bbb, ppp; + XVec3 const zzw, bba, ppq; + XVec3 zwx, bar, pqs; + XVec3 zwy, bag, pqt; + XVec3 const zwz, bab, pqp; + XVec3 const zww, baa, pqq; + XVec3 const wxx, arr, qss; + XVec3 wxy, arg, qst; + XVec3 wxz, arb, qsp; + XVec3 const wxw, ara, qsq; + XVec3 wyx, agr, qts; + XVec3 const wyy, agg, qtt; + XVec3 wyz, agb, qtp; + XVec3 const wyw, aga, qtq; + XVec3 wzx, abr, qps; + XVec3 wzy, abg, qpt; + XVec3 const wzz, abb, qpp; + XVec3 const wzw, aba, qpq; + XVec3 const wwx, aar, qqs; + XVec3 const wwy, aag, qqt; + XVec3 const wwz, aab, qqp; + XVec3 const www, aaa, qqq; + + XVec4 const xxxx, rrrr, ssss; + XVec4 const xxxy, rrrg, ssst; + XVec4 const xxxz, rrrb, sssp; + XVec4 const xxxw, rrra, sssq; + XVec4 const xxyx, rrgr, ssts; + XVec4 const xxyy, rrgg, sstt; + XVec4 const xxyz, rrgb, sstp; + XVec4 const xxyw, rrga, sstq; + XVec4 const xxzx, rrbr, ssps; + XVec4 const xxzy, rrbg, sspt; + XVec4 const xxzz, rrbb, sspp; + XVec4 const xxzw, rrba, sspq; + XVec4 const xxwx, rrar, ssqs; + XVec4 const xxwy, rrag, ssqt; + XVec4 const xxwz, rrab, ssqp; + XVec4 const xxww, rraa, ssqq; + XVec4 const xyxx, rgrr, stss; + XVec4 const xyxy, rgrg, stst; + XVec4 const xyxz, rgrb, stsp; + XVec4 const xyxw, rgra, stsq; + XVec4 const xyyx, rggr, stts; + XVec4 const xyyy, rggg, sttt; + XVec4 const xyyz, rggb, sttp; + XVec4 const xyyw, rgga, sttq; + XVec4 const xyzx, rgbr, stps; + XVec4 const xyzy, rgbg, stpt; + XVec4 const xyzz, rgbb, stpp; + XVec4 xyzw, rgba, stpq; + XVec4 const xywx, rgar, stqs; + XVec4 const xywy, rgag, stqt; + XVec4 xywz, rgab, stqp; + XVec4 const xyww, rgaa, stqq; + XVec4 const xzxx, rbrr, spss; + XVec4 const xzxy, rbrg, spst; + XVec4 const xzxz, rbrb, spsp; + XVec4 const xzxw, rbra, spsq; + XVec4 const xzyx, rbgr, spts; + XVec4 const xzyy, rbgg, sptt; + XVec4 const xzyz, rbgb, sptp; + XVec4 xzyw, rbga, sptq; + XVec4 const xzzx, rbbr, spps; + XVec4 const xzzy, rbbg, sppt; + XVec4 const xzzz, rbbb, sppp; + XVec4 const xzzw, rbba, sppq; + XVec4 const xzwx, rbar, spqs; + XVec4 xzwy, rbag, spqt; + XVec4 const xzwz, rbab, spqp; + XVec4 const xzww, rbaa, spqq; + XVec4 const xwxx, rarr, sqss; + XVec4 const xwxy, rarg, sqst; + XVec4 const xwxz, rarb, sqsp; + XVec4 const xwxw, rara, sqsq; + XVec4 const xwyx, ragr, sqts; + XVec4 const xwyy, ragg, sqtt; + XVec4 xwyz, ragb, sqtp; + XVec4 const xwyw, raga, sqtq; + XVec4 const xwzx, rabr, sqps; + XVec4 xwzy, rabg, sqpt; + XVec4 const xwzz, rabb, sqpp; + XVec4 const xwzw, raba, sqpq; + XVec4 const xwwx, raar, sqqs; + XVec4 const xwwy, raag, sqqt; + XVec4 const xwwz, raab, sqqp; + XVec4 const xwww, raaa, sqqq; + XVec4 const yxxx, grrr, tsss; + XVec4 const yxxy, grrg, tsst; + XVec4 const yxxz, grrb, tssp; + XVec4 const yxxw, grra, tssq; + XVec4 const yxyx, grgr, tsts; + XVec4 const yxyy, grgg, tstt; + XVec4 const yxyz, grgb, tstp; + XVec4 const yxyw, grga, tstq; + XVec4 const yxzx, grbr, tsps; + XVec4 const yxzy, grbg, tspt; + XVec4 const yxzz, grbb, tspp; + XVec4 yxzw, grba, tspq; + XVec4 const yxwx, grar, tsqs; + XVec4 const yxwy, grag, tsqt; + XVec4 yxwz, grab, tsqp; + XVec4 const yxww, graa, tsqq; + XVec4 const yyxx, ggrr, ttss; + XVec4 const yyxy, ggrg, ttst; + XVec4 const yyxz, ggrb, ttsp; + XVec4 const yyxw, ggra, ttsq; + XVec4 const yyyx, gggr, ttts; + XVec4 const yyyy, gggg, tttt; + XVec4 const yyyz, gggb, tttp; + XVec4 const yyyw, ggga, tttq; + XVec4 const yyzx, ggbr, ttps; + XVec4 const yyzy, ggbg, ttpt; + XVec4 const yyzz, ggbb, ttpp; + XVec4 const yyzw, ggba, ttpq; + XVec4 const yywx, ggar, ttqs; + XVec4 const yywy, ggag, ttqt; + XVec4 const yywz, ggab, ttqp; + XVec4 const yyww, ggaa, ttqq; + XVec4 const yzxx, gbrr, tpss; + XVec4 const yzxy, gbrg, tpst; + XVec4 const yzxz, gbrb, tpsp; + XVec4 yzxw, gbra, tpsq; + XVec4 const yzyx, gbgr, tpts; + XVec4 const yzyy, gbgg, tptt; + XVec4 const yzyz, gbgb, tptp; + XVec4 const yzyw, gbga, tptq; + XVec4 const yzzx, gbbr, tpps; + XVec4 const yzzy, gbbg, tppt; + XVec4 const yzzz, gbbb, tppp; + XVec4 const yzzw, gbba, tppq; + XVec4 yzwx, gbar, tpqs; + XVec4 const yzwy, gbag, tpqt; + XVec4 const yzwz, gbab, tpqp; + XVec4 const yzww, gbaa, tpqq; + XVec4 const ywxx, garr, tqss; + XVec4 const ywxy, garg, tqst; + XVec4 ywxz, garb, tqsp; + XVec4 const ywxw, gara, tqsq; + XVec4 const ywyx, gagr, tqts; + XVec4 const ywyy, gagg, tqtt; + XVec4 const ywyz, gagb, tqtp; + XVec4 const ywyw, gaga, tqtq; + XVec4 ywzx, gabr, tqps; + XVec4 const ywzy, gabg, tqpt; + XVec4 const ywzz, gabb, tqpp; + XVec4 const ywzw, gaba, tqpq; + XVec4 const ywwx, gaar, tqqs; + XVec4 const ywwy, gaag, tqqt; + XVec4 const ywwz, gaab, tqqp; + XVec4 const ywww, gaaa, tqqq; + XVec4 const zxxx, brrr, psss; + XVec4 const zxxy, brrg, psst; + XVec4 const zxxz, brrb, pssp; + XVec4 const zxxw, brra, pssq; + XVec4 const zxyx, brgr, psts; + XVec4 const zxyy, brgg, pstt; + XVec4 const zxyz, brgb, pstp; + XVec4 zxyw, brga, pstq; + XVec4 const zxzx, brbr, psps; + XVec4 const zxzy, brbg, pspt; + XVec4 const zxzz, brbb, pspp; + XVec4 const zxzw, brba, pspq; + XVec4 const zxwx, brar, psqs; + XVec4 zxwy, brag, psqt; + XVec4 const zxwz, brab, psqp; + XVec4 const zxww, braa, psqq; + XVec4 const zyxx, bgrr, ptss; + XVec4 const zyxy, bgrg, ptst; + XVec4 const zyxz, bgrb, ptsp; + XVec4 zyxw, bgra, ptsq; + XVec4 const zyyx, bggr, ptts; + XVec4 const zyyy, bggg, pttt; + XVec4 const zyyz, bggb, pttp; + XVec4 const zyyw, bgga, pttq; + XVec4 const zyzx, bgbr, ptps; + XVec4 const zyzy, bgbg, ptpt; + XVec4 const zyzz, bgbb, ptpp; + XVec4 const zyzw, bgba, ptpq; + XVec4 zywx, bgar, ptqs; + XVec4 const zywy, bgag, ptqt; + XVec4 const zywz, bgab, ptqp; + XVec4 const zyww, bgaa, ptqq; + XVec4 const zzxx, bbrr, ppss; + XVec4 const zzxy, bbrg, ppst; + XVec4 const zzxz, bbrb, ppsp; + XVec4 const zzxw, bbra, ppsq; + XVec4 const zzyx, bbgr, ppts; + XVec4 const zzyy, bbgg, pptt; + XVec4 const zzyz, bbgb, pptp; + XVec4 const zzyw, bbga, pptq; + XVec4 const zzzx, bbbr, ppps; + XVec4 const zzzy, bbbg, pppt; + XVec4 const zzzz, bbbb, pppp; + XVec4 const zzzw, bbba, pppq; + XVec4 const zzwx, bbar, ppqs; + XVec4 const zzwy, bbag, ppqt; + XVec4 const zzwz, bbab, ppqp; + XVec4 const zzww, bbaa, ppqq; + XVec4 const zwxx, barr, pqss; + XVec4 zwxy, barg, pqst; + XVec4 const zwxz, barb, pqsp; + XVec4 const zwxw, bara, pqsq; + XVec4 zwyx, bagr, pqts; + XVec4 const zwyy, bagg, pqtt; + XVec4 const zwyz, bagb, pqtp; + XVec4 const zwyw, baga, pqtq; + XVec4 const zwzx, babr, pqps; + XVec4 const zwzy, babg, pqpt; + XVec4 const zwzz, babb, pqpp; + XVec4 const zwzw, baba, pqpq; + XVec4 const zwwx, baar, pqqs; + XVec4 const zwwy, baag, pqqt; + XVec4 const zwwz, baab, pqqp; + XVec4 const zwww, baaa, pqqq; + XVec4 const wxxx, arrr, qsss; + XVec4 const wxxy, arrg, qsst; + XVec4 const wxxz, arrb, qssp; + XVec4 const wxxw, arra, qssq; + XVec4 const wxyx, argr, qsts; + XVec4 const wxyy, argg, qstt; + XVec4 wxyz, argb, qstp; + XVec4 const wxyw, arga, qstq; + XVec4 const wxzx, arbr, qsps; + XVec4 wxzy, arbg, qspt; + XVec4 const wxzz, arbb, qspp; + XVec4 const wxzw, arba, qspq; + XVec4 const wxwx, arar, qsqs; + XVec4 const wxwy, arag, qsqt; + XVec4 const wxwz, arab, qsqp; + XVec4 const wxww, araa, qsqq; + XVec4 const wyxx, agrr, qtss; + XVec4 const wyxy, agrg, qtst; + XVec4 wyxz, agrb, qtsp; + XVec4 const wyxw, agra, qtsq; + XVec4 const wyyx, aggr, qtts; + XVec4 const wyyy, aggg, qttt; + XVec4 const wyyz, aggb, qttp; + XVec4 const wyyw, agga, qttq; + XVec4 wyzx, agbr, qtps; + XVec4 const wyzy, agbg, qtpt; + XVec4 const wyzz, agbb, qtpp; + XVec4 const wyzw, agba, qtpq; + XVec4 const wywx, agar, qtqs; + XVec4 const wywy, agag, qtqt; + XVec4 const wywz, agab, qtqp; + XVec4 const wyww, agaa, qtqq; + XVec4 const wzxx, abrr, qpss; + XVec4 wzxy, abrg, qpst; + XVec4 const wzxz, abrb, qpsp; + XVec4 const wzxw, abra, qpsq; + XVec4 wzyx, abgr, qpts; + XVec4 const wzyy, abgg, qptt; + XVec4 const wzyz, abgb, qptp; + XVec4 const wzyw, abga, qptq; + XVec4 const wzzx, abbr, qpps; + XVec4 const wzzy, abbg, qppt; + XVec4 const wzzz, abbb, qppp; + XVec4 const wzzw, abba, qppq; + XVec4 const wzwx, abar, qpqs; + XVec4 const wzwy, abag, qpqt; + XVec4 const wzwz, abab, qpqp; + XVec4 const wzww, abaa, qpqq; + XVec4 const wwxx, aarr, qqss; + XVec4 const wwxy, aarg, qqst; + XVec4 const wwxz, aarb, qqsp; + XVec4 const wwxw, aara, qqsq; + XVec4 const wwyx, aagr, qqts; + XVec4 const wwyy, aagg, qqtt; + XVec4 const wwyz, aagb, qqtp; + XVec4 const wwyw, aaga, qqtq; + XVec4 const wwzx, aabr, qqps; + XVec4 const wwzy, aabg, qqpt; + XVec4 const wwzz, aabb, qqpp; + XVec4 const wwzw, aaba, qqpq; + XVec4 const wwwx, aaar, qqqs; + XVec4 const wwwy, aaag, qqqt; + XVec4 const wwwz, aaab, qqqp; + XVec4 const wwww, aaaa, qqqq; }; };