From 10b3b04ac7bcdd03577dcdeecb0fdd12be6256a9 Mon Sep 17 00:00:00 2001 From: treeform Date: Sun, 20 Sep 2026 18:51:13 -0700 Subject: [PATCH] Fix for recent Nim JS changes: swizzle setters read before they write Nim 2.2.12's JS backend no longer copies an object for `let b = b`, so the object based layout aliased source and destination in swizzle setters and `b.wzyx = b` clobbered its own input. The generator now reads every component into a scalar before assigning, which cannot alias on any backend or layout. Co-Authored-By: Claude Fable 5.1 --- src/vmath/swizzle.nim | 2016 ++++++++++++++++++++--------------------- tools/genswizzle.nim | 6 +- 2 files changed, 1011 insertions(+), 1011 deletions(-) diff --git a/src/vmath/swizzle.nim b/src/vmath/swizzle.nim index cfe355d..24741d1 100644 --- a/src/vmath/swizzle.nim +++ b/src/vmath/swizzle.nim @@ -37,22 +37,22 @@ proc wx*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[0]) proc wy*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[1]) proc wz*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[2]) proc ww*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[3]) -proc `xx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[0] = b.y) -proc `xy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[1] = b.y) -proc `xz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[2] = b.y) -proc `xw=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[3] = b.y) -proc `yx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[0] = b.y) -proc `yy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[1] = b.y) -proc `yz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[2] = b.y) -proc `yw=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[3] = b.y) -proc `zx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[0] = b.y) -proc `zy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[1] = b.y) -proc `zz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[2] = b.y) -proc `zw=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[3] = b.y) -proc `wx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[0] = b.y) -proc `wy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[1] = b.y) -proc `wz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[2] = b.y) -proc `ww=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[3] = b.y) +proc `xx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[0] = y) +proc `xy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[1] = y) +proc `xz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[2] = y) +proc `xw=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[3] = y) +proc `yx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[0] = y) +proc `yy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[1] = y) +proc `yz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[2] = y) +proc `yw=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[3] = y) +proc `zx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[0] = y) +proc `zy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[1] = y) +proc `zz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[2] = y) +proc `zw=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[3] = y) +proc `wx=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[0] = y) +proc `wy=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[1] = y) +proc `wz=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[2] = y) +proc `ww=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[3] = y) # 2 x rgba proc rr*[T](a: GVec234[T]): GVec2[T] = gvec2(a[0], a[0]) @@ -71,22 +71,22 @@ proc ar*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[0]) proc ag*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[1]) proc ab*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[2]) proc aa*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[3]) -proc `rr=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[0] = b.y) -proc `rg=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[1] = b.y) -proc `rb=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[2] = b.y) -proc `ra=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[3] = b.y) -proc `gr=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[0] = b.y) -proc `gg=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[1] = b.y) -proc `gb=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[2] = b.y) -proc `ga=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[3] = b.y) -proc `br=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[0] = b.y) -proc `bg=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[1] = b.y) -proc `bb=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[2] = b.y) -proc `ba=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[3] = b.y) -proc `ar=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[0] = b.y) -proc `ag=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[1] = b.y) -proc `ab=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[2] = b.y) -proc `aa=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[3] = b.y) +proc `rr=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[0] = y) +proc `rg=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[1] = y) +proc `rb=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[2] = y) +proc `ra=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[3] = y) +proc `gr=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[0] = y) +proc `gg=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[1] = y) +proc `gb=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[2] = y) +proc `ga=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[3] = y) +proc `br=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[0] = y) +proc `bg=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[1] = y) +proc `bb=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[2] = y) +proc `ba=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[3] = y) +proc `ar=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[0] = y) +proc `ag=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[1] = y) +proc `ab=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[2] = y) +proc `aa=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[3] = y) # 2 x stpq proc ss*[T](a: GVec234[T]): GVec2[T] = gvec2(a[0], a[0]) @@ -105,22 +105,22 @@ proc qs*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[0]) proc qt*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[1]) proc qp*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[2]) proc qq*[T](a: GVec234[T]): GVec2[T] = gvec2(a[3], a[3]) -proc `ss=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[0] = b.y) -proc `st=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[1] = b.y) -proc `sp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[2] = b.y) -proc `sq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[0] = b.x; a[3] = b.y) -proc `ts=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[0] = b.y) -proc `tt=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[1] = b.y) -proc `tp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[2] = b.y) -proc `tq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[1] = b.x; a[3] = b.y) -proc `ps=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[0] = b.y) -proc `pt=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[1] = b.y) -proc `pp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[2] = b.y) -proc `pq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[2] = b.x; a[3] = b.y) -proc `qs=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[0] = b.y) -proc `qt=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[1] = b.y) -proc `qp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[2] = b.y) -proc `qq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[3] = b.x; a[3] = b.y) +proc `ss=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[0] = y) +proc `st=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[1] = y) +proc `sp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[2] = y) +proc `sq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[0] = x; a[3] = y) +proc `ts=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[0] = y) +proc `tt=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[1] = y) +proc `tp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[2] = y) +proc `tq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[1] = x; a[3] = y) +proc `ps=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[0] = y) +proc `pt=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[1] = y) +proc `pp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[2] = y) +proc `pq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[2] = x; a[3] = y) +proc `qs=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[0] = y) +proc `qt=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[1] = y) +proc `qp=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[2] = y) +proc `qq=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[3] = x; a[3] = y) # 3 x xyzw proc xxx*[T](a: GVec234[T]): GVec3[T] = gvec3(a[0], a[0], a[0]) @@ -187,70 +187,70 @@ proc wwx*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[0]) proc wwy*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[1]) proc wwz*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[2]) proc www*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[3]) -proc `xxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z) -proc `xxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z) -proc `xxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z) -proc `xxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z) -proc `xyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z) -proc `xyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z) -proc `xyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z) -proc `xyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z) -proc `xzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z) -proc `xzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z) -proc `xzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z) -proc `xzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z) -proc `xwx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z) -proc `xwy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z) -proc `xwz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z) -proc `xww=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z) -proc `yxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z) -proc `yxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z) -proc `yxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z) -proc `yxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z) -proc `yyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z) -proc `yyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z) -proc `yyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z) -proc `yyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z) -proc `yzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z) -proc `yzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z) -proc `yzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z) -proc `yzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z) -proc `ywx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z) -proc `ywy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z) -proc `ywz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z) -proc `yww=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z) -proc `zxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z) -proc `zxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z) -proc `zxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z) -proc `zxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z) -proc `zyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z) -proc `zyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z) -proc `zyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z) -proc `zyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z) -proc `zzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z) -proc `zzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z) -proc `zzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z) -proc `zzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z) -proc `zwx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z) -proc `zwy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z) -proc `zwz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z) -proc `zww=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z) -proc `wxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z) -proc `wxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z) -proc `wxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z) -proc `wxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z) -proc `wyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z) -proc `wyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z) -proc `wyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z) -proc `wyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z) -proc `wzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z) -proc `wzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z) -proc `wzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z) -proc `wzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z) -proc `wwx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z) -proc `wwy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z) -proc `wwz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z) -proc `www=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z) +proc `xxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[0] = z) +proc `xxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[1] = z) +proc `xxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[2] = z) +proc `xxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[3] = z) +proc `xyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[0] = z) +proc `xyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[1] = z) +proc `xyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[2] = z) +proc `xyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[3] = z) +proc `xzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[0] = z) +proc `xzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[1] = z) +proc `xzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[2] = z) +proc `xzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[3] = z) +proc `xwx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[0] = z) +proc `xwy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[1] = z) +proc `xwz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[2] = z) +proc `xww=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[3] = z) +proc `yxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[0] = z) +proc `yxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[1] = z) +proc `yxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[2] = z) +proc `yxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[3] = z) +proc `yyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[0] = z) +proc `yyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[1] = z) +proc `yyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[2] = z) +proc `yyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[3] = z) +proc `yzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[0] = z) +proc `yzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[1] = z) +proc `yzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[2] = z) +proc `yzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[3] = z) +proc `ywx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[0] = z) +proc `ywy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[1] = z) +proc `ywz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[2] = z) +proc `yww=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[3] = z) +proc `zxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[0] = z) +proc `zxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[1] = z) +proc `zxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[2] = z) +proc `zxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[3] = z) +proc `zyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[0] = z) +proc `zyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[1] = z) +proc `zyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[2] = z) +proc `zyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[3] = z) +proc `zzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[0] = z) +proc `zzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[1] = z) +proc `zzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[2] = z) +proc `zzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[3] = z) +proc `zwx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[0] = z) +proc `zwy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[1] = z) +proc `zwz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[2] = z) +proc `zww=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[3] = z) +proc `wxx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[0] = z) +proc `wxy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[1] = z) +proc `wxz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[2] = z) +proc `wxw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[3] = z) +proc `wyx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[0] = z) +proc `wyy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[1] = z) +proc `wyz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[2] = z) +proc `wyw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[3] = z) +proc `wzx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[0] = z) +proc `wzy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[1] = z) +proc `wzz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[2] = z) +proc `wzw=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[3] = z) +proc `wwx=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[0] = z) +proc `wwy=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[1] = z) +proc `wwz=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[2] = z) +proc `www=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[3] = z) # 3 x rgba proc rrr*[T](a: GVec234[T]): GVec3[T] = gvec3(a[0], a[0], a[0]) @@ -317,70 +317,70 @@ proc aar*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[0]) proc aag*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[1]) proc aab*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[2]) proc aaa*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[3]) -proc `rrr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z) -proc `rrg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z) -proc `rrb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z) -proc `rra=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z) -proc `rgr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z) -proc `rgg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z) -proc `rgb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z) -proc `rga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z) -proc `rbr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z) -proc `rbg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z) -proc `rbb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z) -proc `rba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z) -proc `rar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z) -proc `rag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z) -proc `rab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z) -proc `raa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z) -proc `grr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z) -proc `grg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z) -proc `grb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z) -proc `gra=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z) -proc `ggr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z) -proc `ggg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z) -proc `ggb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z) -proc `gga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z) -proc `gbr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z) -proc `gbg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z) -proc `gbb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z) -proc `gba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z) -proc `gar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z) -proc `gag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z) -proc `gab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z) -proc `gaa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z) -proc `brr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z) -proc `brg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z) -proc `brb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z) -proc `bra=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z) -proc `bgr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z) -proc `bgg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z) -proc `bgb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z) -proc `bga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z) -proc `bbr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z) -proc `bbg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z) -proc `bbb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z) -proc `bba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z) -proc `bar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z) -proc `bag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z) -proc `bab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z) -proc `baa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z) -proc `arr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z) -proc `arg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z) -proc `arb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z) -proc `ara=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z) -proc `agr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z) -proc `agg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z) -proc `agb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z) -proc `aga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z) -proc `abr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z) -proc `abg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z) -proc `abb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z) -proc `aba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z) -proc `aar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z) -proc `aag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z) -proc `aab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z) -proc `aaa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z) +proc `rrr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[0] = z) +proc `rrg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[1] = z) +proc `rrb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[2] = z) +proc `rra=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[3] = z) +proc `rgr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[0] = z) +proc `rgg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[1] = z) +proc `rgb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[2] = z) +proc `rga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[3] = z) +proc `rbr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[0] = z) +proc `rbg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[1] = z) +proc `rbb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[2] = z) +proc `rba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[3] = z) +proc `rar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[0] = z) +proc `rag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[1] = z) +proc `rab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[2] = z) +proc `raa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[3] = z) +proc `grr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[0] = z) +proc `grg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[1] = z) +proc `grb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[2] = z) +proc `gra=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[3] = z) +proc `ggr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[0] = z) +proc `ggg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[1] = z) +proc `ggb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[2] = z) +proc `gga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[3] = z) +proc `gbr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[0] = z) +proc `gbg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[1] = z) +proc `gbb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[2] = z) +proc `gba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[3] = z) +proc `gar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[0] = z) +proc `gag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[1] = z) +proc `gab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[2] = z) +proc `gaa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[3] = z) +proc `brr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[0] = z) +proc `brg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[1] = z) +proc `brb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[2] = z) +proc `bra=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[3] = z) +proc `bgr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[0] = z) +proc `bgg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[1] = z) +proc `bgb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[2] = z) +proc `bga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[3] = z) +proc `bbr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[0] = z) +proc `bbg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[1] = z) +proc `bbb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[2] = z) +proc `bba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[3] = z) +proc `bar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[0] = z) +proc `bag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[1] = z) +proc `bab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[2] = z) +proc `baa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[3] = z) +proc `arr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[0] = z) +proc `arg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[1] = z) +proc `arb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[2] = z) +proc `ara=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[3] = z) +proc `agr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[0] = z) +proc `agg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[1] = z) +proc `agb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[2] = z) +proc `aga=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[3] = z) +proc `abr=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[0] = z) +proc `abg=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[1] = z) +proc `abb=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[2] = z) +proc `aba=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[3] = z) +proc `aar=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[0] = z) +proc `aag=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[1] = z) +proc `aab=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[2] = z) +proc `aaa=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[3] = z) # 3 x stpq proc sss*[T](a: GVec234[T]): GVec3[T] = gvec3(a[0], a[0], a[0]) @@ -447,70 +447,70 @@ proc qqs*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[0]) proc qqt*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[1]) proc qqp*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[2]) proc qqq*[T](a: GVec234[T]): GVec3[T] = gvec3(a[3], a[3], a[3]) -proc `sss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z) -proc `sst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z) -proc `ssp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z) -proc `ssq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z) -proc `sts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z) -proc `stt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z) -proc `stp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z) -proc `stq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z) -proc `sps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z) -proc `spt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z) -proc `spp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z) -proc `spq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z) -proc `sqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z) -proc `sqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z) -proc `sqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z) -proc `sqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z) -proc `tss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z) -proc `tst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z) -proc `tsp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z) -proc `tsq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z) -proc `tts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z) -proc `ttt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z) -proc `ttp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z) -proc `ttq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z) -proc `tps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z) -proc `tpt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z) -proc `tpp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z) -proc `tpq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z) -proc `tqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z) -proc `tqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z) -proc `tqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z) -proc `tqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z) -proc `pss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z) -proc `pst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z) -proc `psp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z) -proc `psq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z) -proc `pts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z) -proc `ptt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z) -proc `ptp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z) -proc `ptq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z) -proc `pps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z) -proc `ppt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z) -proc `ppp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z) -proc `ppq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z) -proc `pqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z) -proc `pqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z) -proc `pqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z) -proc `pqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z) -proc `qss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z) -proc `qst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z) -proc `qsp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z) -proc `qsq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z) -proc `qts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z) -proc `qtt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z) -proc `qtp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z) -proc `qtq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z) -proc `qps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z) -proc `qpt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z) -proc `qpp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z) -proc `qpq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z) -proc `qqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z) -proc `qqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z) -proc `qqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z) -proc `qqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z) +proc `sss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[0] = z) +proc `sst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[1] = z) +proc `ssp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[2] = z) +proc `ssq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[0] = y; a[3] = z) +proc `sts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[0] = z) +proc `stt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[1] = z) +proc `stp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[2] = z) +proc `stq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[1] = y; a[3] = z) +proc `sps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[0] = z) +proc `spt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[1] = z) +proc `spp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[2] = z) +proc `spq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[2] = y; a[3] = z) +proc `sqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[0] = z) +proc `sqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[1] = z) +proc `sqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[2] = z) +proc `sqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[0] = x; a[3] = y; a[3] = z) +proc `tss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[0] = z) +proc `tst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[1] = z) +proc `tsp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[2] = z) +proc `tsq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[0] = y; a[3] = z) +proc `tts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[0] = z) +proc `ttt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[1] = z) +proc `ttp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[2] = z) +proc `ttq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[1] = y; a[3] = z) +proc `tps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[0] = z) +proc `tpt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[1] = z) +proc `tpp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[2] = z) +proc `tpq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[2] = y; a[3] = z) +proc `tqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[0] = z) +proc `tqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[1] = z) +proc `tqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[2] = z) +proc `tqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[1] = x; a[3] = y; a[3] = z) +proc `pss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[0] = z) +proc `pst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[1] = z) +proc `psp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[2] = z) +proc `psq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[0] = y; a[3] = z) +proc `pts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[0] = z) +proc `ptt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[1] = z) +proc `ptp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[2] = z) +proc `ptq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[1] = y; a[3] = z) +proc `pps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[0] = z) +proc `ppt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[1] = z) +proc `ppp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[2] = z) +proc `ppq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[2] = y; a[3] = z) +proc `pqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[0] = z) +proc `pqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[1] = z) +proc `pqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[2] = z) +proc `pqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[2] = x; a[3] = y; a[3] = z) +proc `qss=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[0] = z) +proc `qst=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[1] = z) +proc `qsp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[2] = z) +proc `qsq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[0] = y; a[3] = z) +proc `qts=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[0] = z) +proc `qtt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[1] = z) +proc `qtp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[2] = z) +proc `qtq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[1] = y; a[3] = z) +proc `qps=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[0] = z) +proc `qpt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[1] = z) +proc `qpp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[2] = z) +proc `qpq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[2] = y; a[3] = z) +proc `qqs=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[0] = z) +proc `qqt=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[1] = z) +proc `qqp=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[2] = z) +proc `qqq=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[3] = x; a[3] = y; a[3] = z) # 4 x xyzw proc xxxx*[T](a: GVec234[T]): GVec4[T] = gvec4(a[0], a[0], a[0], a[0]) @@ -769,262 +769,262 @@ proc wwwx*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[0]) proc wwwy*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[1]) proc wwwz*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[2]) proc wwww*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[3]) -proc `xxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `xxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `xxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `xxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `xxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `xxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `xxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `xxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `xxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `xxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `xxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `xxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `xxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `xxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `xxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `xxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `xyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `xyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `xyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `xyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `xyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `xyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `xyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `xyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `xyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `xyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `xyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `xyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `xywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `xywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `xywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `xyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `xzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `xzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `xzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `xzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `xzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `xzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `xzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `xzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `xzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `xzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `xzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `xzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `xzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `xzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `xzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `xzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `xwxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `xwxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `xwxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `xwxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `xwyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `xwyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `xwyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `xwyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `xwzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `xwzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `xwzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `xwzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `xwwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `xwwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `xwwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `xwww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `yxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `yxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `yxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `yxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `yxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `yxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `yxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `yxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `yxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `yxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `yxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `yxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `yxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `yxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `yxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `yxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `yyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `yyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `yyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `yyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `yyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `yyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `yyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `yyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `yyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `yyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `yyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `yyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `yywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `yywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `yywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `yyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `yzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `yzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `yzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `yzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `yzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `yzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `yzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `yzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `yzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `yzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `yzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `yzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `yzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `yzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `yzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `yzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `ywxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `ywxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `ywxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `ywxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `ywyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `ywyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `ywyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `ywyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `ywzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `ywzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `ywzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `ywzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `ywwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `ywwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `ywwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `ywww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `zxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `zxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `zxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `zxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `zxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `zxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `zxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `zxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `zxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `zxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `zxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `zxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `zxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `zxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `zxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `zxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `zyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `zyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `zyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `zyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `zyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `zyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `zyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `zyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `zyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `zyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `zyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `zyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `zywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `zywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `zywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `zyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `zzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `zzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `zzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `zzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `zzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `zzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `zzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `zzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `zzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `zzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `zzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `zzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `zzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `zzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `zzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `zzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `zwxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `zwxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `zwxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `zwxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `zwyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `zwyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `zwyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `zwyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `zwzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `zwzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `zwzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `zwzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `zwwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `zwwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `zwwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `zwww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `wxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `wxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `wxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `wxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `wxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `wxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `wxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `wxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `wxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `wxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `wxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `wxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `wxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `wxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `wxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `wxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `wyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `wyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `wyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `wyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `wyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `wyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `wyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `wyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `wyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `wyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `wyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `wyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `wywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `wywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `wywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `wyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `wzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `wzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `wzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `wzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `wzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `wzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `wzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `wzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `wzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `wzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `wzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `wzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `wzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `wzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `wzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `wzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `wwxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `wwxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `wwxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `wwxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `wwyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `wwyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `wwyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `wwyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `wwzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `wwzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `wwzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `wwzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `wwwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `wwwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `wwwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `wwww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) +proc `xxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[0] = w) +proc `xxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[1] = w) +proc `xxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[2] = w) +proc `xxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[3] = w) +proc `xxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[0] = w) +proc `xxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[1] = w) +proc `xxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[2] = w) +proc `xxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[3] = w) +proc `xxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[0] = w) +proc `xxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[1] = w) +proc `xxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[2] = w) +proc `xxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[3] = w) +proc `xxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[0] = w) +proc `xxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[1] = w) +proc `xxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[2] = w) +proc `xxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[3] = w) +proc `xyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[0] = w) +proc `xyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[1] = w) +proc `xyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[2] = w) +proc `xyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[3] = w) +proc `xyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[0] = w) +proc `xyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[1] = w) +proc `xyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[2] = w) +proc `xyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[3] = w) +proc `xyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[0] = w) +proc `xyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[1] = w) +proc `xyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[2] = w) +proc `xyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[3] = w) +proc `xywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[0] = w) +proc `xywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[1] = w) +proc `xywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[2] = w) +proc `xyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[3] = w) +proc `xzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[0] = w) +proc `xzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[1] = w) +proc `xzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[2] = w) +proc `xzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[3] = w) +proc `xzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[0] = w) +proc `xzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[1] = w) +proc `xzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[2] = w) +proc `xzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[3] = w) +proc `xzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[0] = w) +proc `xzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[1] = w) +proc `xzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[2] = w) +proc `xzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[3] = w) +proc `xzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[0] = w) +proc `xzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[1] = w) +proc `xzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[2] = w) +proc `xzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[3] = w) +proc `xwxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[0] = w) +proc `xwxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[1] = w) +proc `xwxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[2] = w) +proc `xwxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[3] = w) +proc `xwyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[0] = w) +proc `xwyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[1] = w) +proc `xwyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[2] = w) +proc `xwyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[3] = w) +proc `xwzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[0] = w) +proc `xwzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[1] = w) +proc `xwzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[2] = w) +proc `xwzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[3] = w) +proc `xwwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[0] = w) +proc `xwwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[1] = w) +proc `xwwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[2] = w) +proc `xwww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[3] = w) +proc `yxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[0] = w) +proc `yxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[1] = w) +proc `yxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[2] = w) +proc `yxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[3] = w) +proc `yxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[0] = w) +proc `yxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[1] = w) +proc `yxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[2] = w) +proc `yxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[3] = w) +proc `yxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[0] = w) +proc `yxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[1] = w) +proc `yxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[2] = w) +proc `yxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[3] = w) +proc `yxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[0] = w) +proc `yxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[1] = w) +proc `yxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[2] = w) +proc `yxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[3] = w) +proc `yyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[0] = w) +proc `yyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[1] = w) +proc `yyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[2] = w) +proc `yyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[3] = w) +proc `yyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[0] = w) +proc `yyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[1] = w) +proc `yyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[2] = w) +proc `yyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[3] = w) +proc `yyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[0] = w) +proc `yyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[1] = w) +proc `yyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[2] = w) +proc `yyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[3] = w) +proc `yywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[0] = w) +proc `yywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[1] = w) +proc `yywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[2] = w) +proc `yyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[3] = w) +proc `yzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[0] = w) +proc `yzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[1] = w) +proc `yzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[2] = w) +proc `yzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[3] = w) +proc `yzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[0] = w) +proc `yzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[1] = w) +proc `yzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[2] = w) +proc `yzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[3] = w) +proc `yzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[0] = w) +proc `yzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[1] = w) +proc `yzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[2] = w) +proc `yzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[3] = w) +proc `yzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[0] = w) +proc `yzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[1] = w) +proc `yzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[2] = w) +proc `yzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[3] = w) +proc `ywxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[0] = w) +proc `ywxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[1] = w) +proc `ywxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[2] = w) +proc `ywxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[3] = w) +proc `ywyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[0] = w) +proc `ywyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[1] = w) +proc `ywyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[2] = w) +proc `ywyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[3] = w) +proc `ywzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[0] = w) +proc `ywzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[1] = w) +proc `ywzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[2] = w) +proc `ywzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[3] = w) +proc `ywwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[0] = w) +proc `ywwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[1] = w) +proc `ywwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[2] = w) +proc `ywww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[3] = w) +proc `zxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[0] = w) +proc `zxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[1] = w) +proc `zxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[2] = w) +proc `zxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[3] = w) +proc `zxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[0] = w) +proc `zxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[1] = w) +proc `zxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[2] = w) +proc `zxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[3] = w) +proc `zxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[0] = w) +proc `zxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[1] = w) +proc `zxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[2] = w) +proc `zxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[3] = w) +proc `zxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[0] = w) +proc `zxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[1] = w) +proc `zxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[2] = w) +proc `zxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[3] = w) +proc `zyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[0] = w) +proc `zyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[1] = w) +proc `zyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[2] = w) +proc `zyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[3] = w) +proc `zyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[0] = w) +proc `zyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[1] = w) +proc `zyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[2] = w) +proc `zyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[3] = w) +proc `zyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[0] = w) +proc `zyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[1] = w) +proc `zyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[2] = w) +proc `zyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[3] = w) +proc `zywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[0] = w) +proc `zywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[1] = w) +proc `zywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[2] = w) +proc `zyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[3] = w) +proc `zzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[0] = w) +proc `zzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[1] = w) +proc `zzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[2] = w) +proc `zzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[3] = w) +proc `zzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[0] = w) +proc `zzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[1] = w) +proc `zzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[2] = w) +proc `zzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[3] = w) +proc `zzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[0] = w) +proc `zzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[1] = w) +proc `zzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[2] = w) +proc `zzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[3] = w) +proc `zzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[0] = w) +proc `zzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[1] = w) +proc `zzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[2] = w) +proc `zzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[3] = w) +proc `zwxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[0] = w) +proc `zwxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[1] = w) +proc `zwxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[2] = w) +proc `zwxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[3] = w) +proc `zwyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[0] = w) +proc `zwyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[1] = w) +proc `zwyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[2] = w) +proc `zwyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[3] = w) +proc `zwzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[0] = w) +proc `zwzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[1] = w) +proc `zwzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[2] = w) +proc `zwzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[3] = w) +proc `zwwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[0] = w) +proc `zwwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[1] = w) +proc `zwwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[2] = w) +proc `zwww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[3] = w) +proc `wxxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[0] = w) +proc `wxxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[1] = w) +proc `wxxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[2] = w) +proc `wxxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[3] = w) +proc `wxyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[0] = w) +proc `wxyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[1] = w) +proc `wxyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[2] = w) +proc `wxyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[3] = w) +proc `wxzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[0] = w) +proc `wxzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[1] = w) +proc `wxzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[2] = w) +proc `wxzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[3] = w) +proc `wxwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[0] = w) +proc `wxwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[1] = w) +proc `wxwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[2] = w) +proc `wxww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[3] = w) +proc `wyxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[0] = w) +proc `wyxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[1] = w) +proc `wyxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[2] = w) +proc `wyxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[3] = w) +proc `wyyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[0] = w) +proc `wyyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[1] = w) +proc `wyyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[2] = w) +proc `wyyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[3] = w) +proc `wyzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[0] = w) +proc `wyzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[1] = w) +proc `wyzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[2] = w) +proc `wyzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[3] = w) +proc `wywx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[0] = w) +proc `wywy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[1] = w) +proc `wywz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[2] = w) +proc `wyww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[3] = w) +proc `wzxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[0] = w) +proc `wzxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[1] = w) +proc `wzxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[2] = w) +proc `wzxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[3] = w) +proc `wzyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[0] = w) +proc `wzyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[1] = w) +proc `wzyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[2] = w) +proc `wzyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[3] = w) +proc `wzzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[0] = w) +proc `wzzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[1] = w) +proc `wzzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[2] = w) +proc `wzzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[3] = w) +proc `wzwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[0] = w) +proc `wzwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[1] = w) +proc `wzwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[2] = w) +proc `wzww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[3] = w) +proc `wwxx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[0] = w) +proc `wwxy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[1] = w) +proc `wwxz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[2] = w) +proc `wwxw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[3] = w) +proc `wwyx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[0] = w) +proc `wwyy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[1] = w) +proc `wwyz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[2] = w) +proc `wwyw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[3] = w) +proc `wwzx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[0] = w) +proc `wwzy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[1] = w) +proc `wwzz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[2] = w) +proc `wwzw=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[3] = w) +proc `wwwx=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[0] = w) +proc `wwwy=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[1] = w) +proc `wwwz=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[2] = w) +proc `wwww=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[3] = w) # 4 x rgba proc rrrr*[T](a: GVec234[T]): GVec4[T] = gvec4(a[0], a[0], a[0], a[0]) @@ -1283,262 +1283,262 @@ proc aaar*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[0]) proc aaag*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[1]) proc aaab*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[2]) proc aaaa*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[3]) -proc `rrrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `rrrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `rrrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `rrra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `rrgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `rrgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `rrgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `rrga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `rrbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `rrbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `rrbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `rrba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `rrar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `rrag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `rrab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `rraa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `rgrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `rgrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `rgrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `rgra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `rggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `rggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `rggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `rgga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `rgbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `rgbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `rgbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `rgba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `rgar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `rgag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `rgab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `rgaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `rbrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `rbrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `rbrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `rbra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `rbgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `rbgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `rbgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `rbga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `rbbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `rbbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `rbbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `rbba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `rbar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `rbag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `rbab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `rbaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `rarr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `rarg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `rarb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `rara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `ragr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `ragg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `ragb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `raga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `rabr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `rabg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `rabb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `raba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `raar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `raag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `raab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `raaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `grrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `grrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `grrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `grra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `grgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `grgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `grgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `grga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `grbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `grbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `grbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `grba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `grar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `grag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `grab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `graa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `ggrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `ggrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `ggrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `ggra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `gggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `gggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `gggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `ggga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `ggbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `ggbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `ggbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `ggba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `ggar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `ggag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `ggab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `ggaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `gbrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `gbrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `gbrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `gbra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `gbgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `gbgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `gbgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `gbga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `gbbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `gbbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `gbbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `gbba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `gbar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `gbag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `gbab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `gbaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `garr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `garg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `garb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `gara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `gagr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `gagg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `gagb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `gaga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `gabr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `gabg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `gabb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `gaba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `gaar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `gaag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `gaab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `gaaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `brrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `brrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `brrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `brra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `brgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `brgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `brgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `brga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `brbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `brbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `brbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `brba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `brar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `brag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `brab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `braa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `bgrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `bgrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `bgrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `bgra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `bggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `bggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `bggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `bgga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `bgbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `bgbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `bgbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `bgba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `bgar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `bgag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `bgab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `bgaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `bbrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `bbrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `bbrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `bbra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `bbgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `bbgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `bbgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `bbga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `bbbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `bbbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `bbbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `bbba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `bbar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `bbag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `bbab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `bbaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `barr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `barg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `barb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `bara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `bagr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `bagg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `bagb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `baga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `babr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `babg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `babb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `baba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `baar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `baag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `baab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `baaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `arrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `arrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `arrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `arra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `argr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `argg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `argb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `arga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `arbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `arbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `arbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `arba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `arar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `arag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `arab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `araa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `agrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `agrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `agrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `agra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `aggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `aggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `aggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `agga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `agbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `agbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `agbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `agba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `agar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `agag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `agab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `agaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `abrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `abrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `abrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `abra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `abgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `abgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `abgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `abga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `abbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `abbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `abbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `abba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `abar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `abag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `abab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `abaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `aarr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `aarg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `aarb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `aara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `aagr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `aagg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `aagb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `aaga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `aabr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `aabg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `aabb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `aaba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `aaar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `aaag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `aaab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `aaaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) +proc `rrrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[0] = w) +proc `rrrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[1] = w) +proc `rrrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[2] = w) +proc `rrra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[3] = w) +proc `rrgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[0] = w) +proc `rrgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[1] = w) +proc `rrgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[2] = w) +proc `rrga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[3] = w) +proc `rrbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[0] = w) +proc `rrbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[1] = w) +proc `rrbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[2] = w) +proc `rrba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[3] = w) +proc `rrar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[0] = w) +proc `rrag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[1] = w) +proc `rrab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[2] = w) +proc `rraa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[3] = w) +proc `rgrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[0] = w) +proc `rgrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[1] = w) +proc `rgrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[2] = w) +proc `rgra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[3] = w) +proc `rggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[0] = w) +proc `rggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[1] = w) +proc `rggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[2] = w) +proc `rgga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[3] = w) +proc `rgbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[0] = w) +proc `rgbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[1] = w) +proc `rgbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[2] = w) +proc `rgba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[3] = w) +proc `rgar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[0] = w) +proc `rgag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[1] = w) +proc `rgab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[2] = w) +proc `rgaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[3] = w) +proc `rbrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[0] = w) +proc `rbrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[1] = w) +proc `rbrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[2] = w) +proc `rbra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[3] = w) +proc `rbgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[0] = w) +proc `rbgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[1] = w) +proc `rbgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[2] = w) +proc `rbga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[3] = w) +proc `rbbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[0] = w) +proc `rbbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[1] = w) +proc `rbbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[2] = w) +proc `rbba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[3] = w) +proc `rbar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[0] = w) +proc `rbag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[1] = w) +proc `rbab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[2] = w) +proc `rbaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[3] = w) +proc `rarr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[0] = w) +proc `rarg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[1] = w) +proc `rarb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[2] = w) +proc `rara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[3] = w) +proc `ragr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[0] = w) +proc `ragg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[1] = w) +proc `ragb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[2] = w) +proc `raga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[3] = w) +proc `rabr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[0] = w) +proc `rabg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[1] = w) +proc `rabb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[2] = w) +proc `raba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[3] = w) +proc `raar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[0] = w) +proc `raag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[1] = w) +proc `raab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[2] = w) +proc `raaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[3] = w) +proc `grrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[0] = w) +proc `grrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[1] = w) +proc `grrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[2] = w) +proc `grra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[3] = w) +proc `grgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[0] = w) +proc `grgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[1] = w) +proc `grgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[2] = w) +proc `grga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[3] = w) +proc `grbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[0] = w) +proc `grbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[1] = w) +proc `grbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[2] = w) +proc `grba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[3] = w) +proc `grar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[0] = w) +proc `grag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[1] = w) +proc `grab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[2] = w) +proc `graa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[3] = w) +proc `ggrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[0] = w) +proc `ggrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[1] = w) +proc `ggrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[2] = w) +proc `ggra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[3] = w) +proc `gggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[0] = w) +proc `gggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[1] = w) +proc `gggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[2] = w) +proc `ggga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[3] = w) +proc `ggbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[0] = w) +proc `ggbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[1] = w) +proc `ggbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[2] = w) +proc `ggba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[3] = w) +proc `ggar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[0] = w) +proc `ggag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[1] = w) +proc `ggab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[2] = w) +proc `ggaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[3] = w) +proc `gbrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[0] = w) +proc `gbrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[1] = w) +proc `gbrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[2] = w) +proc `gbra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[3] = w) +proc `gbgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[0] = w) +proc `gbgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[1] = w) +proc `gbgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[2] = w) +proc `gbga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[3] = w) +proc `gbbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[0] = w) +proc `gbbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[1] = w) +proc `gbbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[2] = w) +proc `gbba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[3] = w) +proc `gbar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[0] = w) +proc `gbag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[1] = w) +proc `gbab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[2] = w) +proc `gbaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[3] = w) +proc `garr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[0] = w) +proc `garg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[1] = w) +proc `garb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[2] = w) +proc `gara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[3] = w) +proc `gagr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[0] = w) +proc `gagg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[1] = w) +proc `gagb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[2] = w) +proc `gaga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[3] = w) +proc `gabr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[0] = w) +proc `gabg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[1] = w) +proc `gabb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[2] = w) +proc `gaba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[3] = w) +proc `gaar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[0] = w) +proc `gaag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[1] = w) +proc `gaab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[2] = w) +proc `gaaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[3] = w) +proc `brrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[0] = w) +proc `brrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[1] = w) +proc `brrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[2] = w) +proc `brra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[3] = w) +proc `brgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[0] = w) +proc `brgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[1] = w) +proc `brgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[2] = w) +proc `brga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[3] = w) +proc `brbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[0] = w) +proc `brbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[1] = w) +proc `brbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[2] = w) +proc `brba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[3] = w) +proc `brar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[0] = w) +proc `brag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[1] = w) +proc `brab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[2] = w) +proc `braa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[3] = w) +proc `bgrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[0] = w) +proc `bgrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[1] = w) +proc `bgrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[2] = w) +proc `bgra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[3] = w) +proc `bggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[0] = w) +proc `bggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[1] = w) +proc `bggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[2] = w) +proc `bgga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[3] = w) +proc `bgbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[0] = w) +proc `bgbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[1] = w) +proc `bgbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[2] = w) +proc `bgba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[3] = w) +proc `bgar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[0] = w) +proc `bgag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[1] = w) +proc `bgab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[2] = w) +proc `bgaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[3] = w) +proc `bbrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[0] = w) +proc `bbrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[1] = w) +proc `bbrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[2] = w) +proc `bbra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[3] = w) +proc `bbgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[0] = w) +proc `bbgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[1] = w) +proc `bbgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[2] = w) +proc `bbga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[3] = w) +proc `bbbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[0] = w) +proc `bbbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[1] = w) +proc `bbbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[2] = w) +proc `bbba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[3] = w) +proc `bbar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[0] = w) +proc `bbag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[1] = w) +proc `bbab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[2] = w) +proc `bbaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[3] = w) +proc `barr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[0] = w) +proc `barg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[1] = w) +proc `barb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[2] = w) +proc `bara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[3] = w) +proc `bagr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[0] = w) +proc `bagg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[1] = w) +proc `bagb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[2] = w) +proc `baga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[3] = w) +proc `babr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[0] = w) +proc `babg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[1] = w) +proc `babb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[2] = w) +proc `baba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[3] = w) +proc `baar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[0] = w) +proc `baag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[1] = w) +proc `baab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[2] = w) +proc `baaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[3] = w) +proc `arrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[0] = w) +proc `arrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[1] = w) +proc `arrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[2] = w) +proc `arra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[3] = w) +proc `argr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[0] = w) +proc `argg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[1] = w) +proc `argb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[2] = w) +proc `arga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[3] = w) +proc `arbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[0] = w) +proc `arbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[1] = w) +proc `arbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[2] = w) +proc `arba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[3] = w) +proc `arar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[0] = w) +proc `arag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[1] = w) +proc `arab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[2] = w) +proc `araa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[3] = w) +proc `agrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[0] = w) +proc `agrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[1] = w) +proc `agrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[2] = w) +proc `agra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[3] = w) +proc `aggr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[0] = w) +proc `aggg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[1] = w) +proc `aggb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[2] = w) +proc `agga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[3] = w) +proc `agbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[0] = w) +proc `agbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[1] = w) +proc `agbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[2] = w) +proc `agba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[3] = w) +proc `agar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[0] = w) +proc `agag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[1] = w) +proc `agab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[2] = w) +proc `agaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[3] = w) +proc `abrr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[0] = w) +proc `abrg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[1] = w) +proc `abrb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[2] = w) +proc `abra=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[3] = w) +proc `abgr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[0] = w) +proc `abgg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[1] = w) +proc `abgb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[2] = w) +proc `abga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[3] = w) +proc `abbr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[0] = w) +proc `abbg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[1] = w) +proc `abbb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[2] = w) +proc `abba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[3] = w) +proc `abar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[0] = w) +proc `abag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[1] = w) +proc `abab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[2] = w) +proc `abaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[3] = w) +proc `aarr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[0] = w) +proc `aarg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[1] = w) +proc `aarb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[2] = w) +proc `aara=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[3] = w) +proc `aagr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[0] = w) +proc `aagg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[1] = w) +proc `aagb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[2] = w) +proc `aaga=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[3] = w) +proc `aabr=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[0] = w) +proc `aabg=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[1] = w) +proc `aabb=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[2] = w) +proc `aaba=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[3] = w) +proc `aaar=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[0] = w) +proc `aaag=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[1] = w) +proc `aaab=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[2] = w) +proc `aaaa=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[3] = w) # 4 x stpq proc ssss*[T](a: GVec234[T]): GVec4[T] = gvec4(a[0], a[0], a[0], a[0]) @@ -1797,259 +1797,259 @@ proc qqqs*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[0]) proc qqqt*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[1]) proc qqqp*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[2]) proc qqqq*[T](a: GVec234[T]): GVec4[T] = gvec4(a[3], a[3], a[3], a[3]) -proc `ssss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `ssst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `sssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `sssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `ssts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `sstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `sstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `sstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `ssps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `sspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `sspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `sspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `ssqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `ssqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `ssqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `ssqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `stss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `stst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `stsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `stsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `stts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `sttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `sttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `sttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `stps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `stpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `stpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `stpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `stqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `stqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `stqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `stqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `spss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `spst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `spsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `spsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `spts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `sptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `sptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `sptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `spps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `sppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `sppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `sppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `spqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `spqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `spqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `spqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `sqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `sqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `sqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `sqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `sqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `sqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `sqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `sqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `sqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `sqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `sqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `sqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `sqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `sqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `sqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `sqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[0] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `tsss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `tsst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `tssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `tssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `tsts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `tstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `tstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `tstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `tsps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `tspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `tspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `tspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `tsqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `tsqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `tsqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `tsqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `ttss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `ttst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `ttsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `ttsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `ttts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `tttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `tttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `tttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `ttps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `ttpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `ttpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `ttpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `ttqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `ttqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `ttqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `ttqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `tpss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `tpst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `tpsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `tpsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `tpts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `tptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `tptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `tptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `tpps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `tppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `tppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `tppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `tpqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `tpqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `tpqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `tpqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `tqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `tqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `tqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `tqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `tqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `tqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `tqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `tqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `tqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `tqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `tqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `tqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `tqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `tqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `tqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `tqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[1] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `psss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `psst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `pssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `pssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `psts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `pstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `pstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `pstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `psps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `pspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `pspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `pspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `psqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `psqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `psqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `psqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `ptss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `ptst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `ptsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `ptsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `ptts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `pttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `pttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `pttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `ptps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `ptpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `ptpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `ptpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `ptqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `ptqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `ptqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `ptqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `ppss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `ppst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `ppsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `ppsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `ppts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `pptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `pptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `pptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `ppps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `pppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `pppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `pppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `ppqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `ppqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `ppqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `ppqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `pqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `pqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `pqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `pqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `pqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `pqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `pqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `pqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `pqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `pqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `pqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `pqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `pqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `pqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `pqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `pqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[2] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) -proc `qsss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[0] = b.w) -proc `qsst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[1] = b.w) -proc `qssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[2] = b.w) -proc `qssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[0] = b.z; a[3] = b.w) -proc `qsts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[0] = b.w) -proc `qstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[1] = b.w) -proc `qstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[2] = b.w) -proc `qstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[1] = b.z; a[3] = b.w) -proc `qsps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[0] = b.w) -proc `qspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[1] = b.w) -proc `qspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[2] = b.w) -proc `qspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[2] = b.z; a[3] = b.w) -proc `qsqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[0] = b.w) -proc `qsqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[1] = b.w) -proc `qsqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[2] = b.w) -proc `qsqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[0] = b.y; a[3] = b.z; a[3] = b.w) -proc `qtss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[0] = b.w) -proc `qtst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[1] = b.w) -proc `qtsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[2] = b.w) -proc `qtsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[0] = b.z; a[3] = b.w) -proc `qtts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[0] = b.w) -proc `qttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[1] = b.w) -proc `qttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[2] = b.w) -proc `qttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[1] = b.z; a[3] = b.w) -proc `qtps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[0] = b.w) -proc `qtpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[1] = b.w) -proc `qtpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[2] = b.w) -proc `qtpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[2] = b.z; a[3] = b.w) -proc `qtqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[0] = b.w) -proc `qtqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[1] = b.w) -proc `qtqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[2] = b.w) -proc `qtqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[1] = b.y; a[3] = b.z; a[3] = b.w) -proc `qpss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[0] = b.w) -proc `qpst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[1] = b.w) -proc `qpsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[2] = b.w) -proc `qpsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[0] = b.z; a[3] = b.w) -proc `qpts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[0] = b.w) -proc `qptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[1] = b.w) -proc `qptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[2] = b.w) -proc `qptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[1] = b.z; a[3] = b.w) -proc `qpps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[0] = b.w) -proc `qppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[1] = b.w) -proc `qppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[2] = b.w) -proc `qppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[2] = b.z; a[3] = b.w) -proc `qpqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[0] = b.w) -proc `qpqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[1] = b.w) -proc `qpqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[2] = b.w) -proc `qpqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[2] = b.y; a[3] = b.z; a[3] = b.w) -proc `qqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[0] = b.w) -proc `qqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[1] = b.w) -proc `qqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[2] = b.w) -proc `qqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[0] = b.z; a[3] = b.w) -proc `qqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[0] = b.w) -proc `qqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[1] = b.w) -proc `qqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[2] = b.w) -proc `qqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[1] = b.z; a[3] = b.w) -proc `qqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[0] = b.w) -proc `qqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[1] = b.w) -proc `qqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[2] = b.w) -proc `qqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[2] = b.z; a[3] = b.w) -proc `qqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[0] = b.w) -proc `qqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[1] = b.w) -proc `qqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[2] = b.w) -proc `qqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[3] = b.x; a[3] = b.y; a[3] = b.z; a[3] = b.w) +proc `ssss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[0] = w) +proc `ssst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[1] = w) +proc `sssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[2] = w) +proc `sssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[0] = z; a[3] = w) +proc `ssts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[0] = w) +proc `sstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[1] = w) +proc `sstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[2] = w) +proc `sstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[1] = z; a[3] = w) +proc `ssps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[0] = w) +proc `sspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[1] = w) +proc `sspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[2] = w) +proc `sspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[2] = z; a[3] = w) +proc `ssqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[0] = w) +proc `ssqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[1] = w) +proc `ssqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[2] = w) +proc `ssqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[0] = y; a[3] = z; a[3] = w) +proc `stss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[0] = w) +proc `stst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[1] = w) +proc `stsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[2] = w) +proc `stsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[0] = z; a[3] = w) +proc `stts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[0] = w) +proc `sttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[1] = w) +proc `sttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[2] = w) +proc `sttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[1] = z; a[3] = w) +proc `stps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[0] = w) +proc `stpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[1] = w) +proc `stpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[2] = w) +proc `stpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[2] = z; a[3] = w) +proc `stqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[0] = w) +proc `stqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[1] = w) +proc `stqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[2] = w) +proc `stqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[1] = y; a[3] = z; a[3] = w) +proc `spss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[0] = w) +proc `spst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[1] = w) +proc `spsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[2] = w) +proc `spsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[0] = z; a[3] = w) +proc `spts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[0] = w) +proc `sptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[1] = w) +proc `sptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[2] = w) +proc `sptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[1] = z; a[3] = w) +proc `spps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[0] = w) +proc `sppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[1] = w) +proc `sppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[2] = w) +proc `sppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[2] = z; a[3] = w) +proc `spqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[0] = w) +proc `spqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[1] = w) +proc `spqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[2] = w) +proc `spqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[2] = y; a[3] = z; a[3] = w) +proc `sqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[0] = w) +proc `sqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[1] = w) +proc `sqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[2] = w) +proc `sqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[0] = z; a[3] = w) +proc `sqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[0] = w) +proc `sqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[1] = w) +proc `sqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[2] = w) +proc `sqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[1] = z; a[3] = w) +proc `sqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[0] = w) +proc `sqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[1] = w) +proc `sqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[2] = w) +proc `sqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[2] = z; a[3] = w) +proc `sqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[0] = w) +proc `sqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[1] = w) +proc `sqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[2] = w) +proc `sqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[0] = x; a[3] = y; a[3] = z; a[3] = w) +proc `tsss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[0] = w) +proc `tsst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[1] = w) +proc `tssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[2] = w) +proc `tssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[0] = z; a[3] = w) +proc `tsts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[0] = w) +proc `tstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[1] = w) +proc `tstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[2] = w) +proc `tstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[1] = z; a[3] = w) +proc `tsps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[0] = w) +proc `tspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[1] = w) +proc `tspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[2] = w) +proc `tspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[2] = z; a[3] = w) +proc `tsqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[0] = w) +proc `tsqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[1] = w) +proc `tsqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[2] = w) +proc `tsqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[0] = y; a[3] = z; a[3] = w) +proc `ttss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[0] = w) +proc `ttst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[1] = w) +proc `ttsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[2] = w) +proc `ttsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[0] = z; a[3] = w) +proc `ttts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[0] = w) +proc `tttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[1] = w) +proc `tttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[2] = w) +proc `tttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[1] = z; a[3] = w) +proc `ttps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[0] = w) +proc `ttpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[1] = w) +proc `ttpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[2] = w) +proc `ttpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[2] = z; a[3] = w) +proc `ttqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[0] = w) +proc `ttqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[1] = w) +proc `ttqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[2] = w) +proc `ttqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[1] = y; a[3] = z; a[3] = w) +proc `tpss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[0] = w) +proc `tpst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[1] = w) +proc `tpsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[2] = w) +proc `tpsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[0] = z; a[3] = w) +proc `tpts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[0] = w) +proc `tptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[1] = w) +proc `tptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[2] = w) +proc `tptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[1] = z; a[3] = w) +proc `tpps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[0] = w) +proc `tppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[1] = w) +proc `tppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[2] = w) +proc `tppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[2] = z; a[3] = w) +proc `tpqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[0] = w) +proc `tpqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[1] = w) +proc `tpqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[2] = w) +proc `tpqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[2] = y; a[3] = z; a[3] = w) +proc `tqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[0] = w) +proc `tqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[1] = w) +proc `tqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[2] = w) +proc `tqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[0] = z; a[3] = w) +proc `tqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[0] = w) +proc `tqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[1] = w) +proc `tqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[2] = w) +proc `tqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[1] = z; a[3] = w) +proc `tqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[0] = w) +proc `tqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[1] = w) +proc `tqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[2] = w) +proc `tqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[2] = z; a[3] = w) +proc `tqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[0] = w) +proc `tqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[1] = w) +proc `tqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[2] = w) +proc `tqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[1] = x; a[3] = y; a[3] = z; a[3] = w) +proc `psss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[0] = w) +proc `psst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[1] = w) +proc `pssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[2] = w) +proc `pssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[0] = z; a[3] = w) +proc `psts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[0] = w) +proc `pstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[1] = w) +proc `pstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[2] = w) +proc `pstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[1] = z; a[3] = w) +proc `psps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[0] = w) +proc `pspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[1] = w) +proc `pspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[2] = w) +proc `pspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[2] = z; a[3] = w) +proc `psqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[0] = w) +proc `psqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[1] = w) +proc `psqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[2] = w) +proc `psqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[0] = y; a[3] = z; a[3] = w) +proc `ptss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[0] = w) +proc `ptst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[1] = w) +proc `ptsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[2] = w) +proc `ptsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[0] = z; a[3] = w) +proc `ptts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[0] = w) +proc `pttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[1] = w) +proc `pttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[2] = w) +proc `pttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[1] = z; a[3] = w) +proc `ptps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[0] = w) +proc `ptpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[1] = w) +proc `ptpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[2] = w) +proc `ptpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[2] = z; a[3] = w) +proc `ptqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[0] = w) +proc `ptqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[1] = w) +proc `ptqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[2] = w) +proc `ptqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[1] = y; a[3] = z; a[3] = w) +proc `ppss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[0] = w) +proc `ppst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[1] = w) +proc `ppsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[2] = w) +proc `ppsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[0] = z; a[3] = w) +proc `ppts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[0] = w) +proc `pptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[1] = w) +proc `pptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[2] = w) +proc `pptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[1] = z; a[3] = w) +proc `ppps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[0] = w) +proc `pppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[1] = w) +proc `pppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[2] = w) +proc `pppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[2] = z; a[3] = w) +proc `ppqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[0] = w) +proc `ppqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[1] = w) +proc `ppqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[2] = w) +proc `ppqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[2] = y; a[3] = z; a[3] = w) +proc `pqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[0] = w) +proc `pqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[1] = w) +proc `pqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[2] = w) +proc `pqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[0] = z; a[3] = w) +proc `pqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[0] = w) +proc `pqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[1] = w) +proc `pqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[2] = w) +proc `pqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[1] = z; a[3] = w) +proc `pqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[0] = w) +proc `pqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[1] = w) +proc `pqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[2] = w) +proc `pqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[2] = z; a[3] = w) +proc `pqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[0] = w) +proc `pqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[1] = w) +proc `pqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[2] = w) +proc `pqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[2] = x; a[3] = y; a[3] = z; a[3] = w) +proc `qsss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[0] = w) +proc `qsst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[1] = w) +proc `qssp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[2] = w) +proc `qssq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[0] = z; a[3] = w) +proc `qsts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[0] = w) +proc `qstt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[1] = w) +proc `qstp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[2] = w) +proc `qstq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[1] = z; a[3] = w) +proc `qsps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[0] = w) +proc `qspt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[1] = w) +proc `qspp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[2] = w) +proc `qspq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[2] = z; a[3] = w) +proc `qsqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[0] = w) +proc `qsqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[1] = w) +proc `qsqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[2] = w) +proc `qsqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[0] = y; a[3] = z; a[3] = w) +proc `qtss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[0] = w) +proc `qtst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[1] = w) +proc `qtsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[2] = w) +proc `qtsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[0] = z; a[3] = w) +proc `qtts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[0] = w) +proc `qttt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[1] = w) +proc `qttp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[2] = w) +proc `qttq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[1] = z; a[3] = w) +proc `qtps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[0] = w) +proc `qtpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[1] = w) +proc `qtpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[2] = w) +proc `qtpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[2] = z; a[3] = w) +proc `qtqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[0] = w) +proc `qtqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[1] = w) +proc `qtqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[2] = w) +proc `qtqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[1] = y; a[3] = z; a[3] = w) +proc `qpss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[0] = w) +proc `qpst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[1] = w) +proc `qpsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[2] = w) +proc `qpsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[0] = z; a[3] = w) +proc `qpts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[0] = w) +proc `qptt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[1] = w) +proc `qptp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[2] = w) +proc `qptq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[1] = z; a[3] = w) +proc `qpps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[0] = w) +proc `qppt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[1] = w) +proc `qppp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[2] = w) +proc `qppq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[2] = z; a[3] = w) +proc `qpqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[0] = w) +proc `qpqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[1] = w) +proc `qpqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[2] = w) +proc `qpqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[2] = y; a[3] = z; a[3] = w) +proc `qqss=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[0] = w) +proc `qqst=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[1] = w) +proc `qqsp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[2] = w) +proc `qqsq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[0] = z; a[3] = w) +proc `qqts=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[0] = w) +proc `qqtt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[1] = w) +proc `qqtp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[2] = w) +proc `qqtq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[1] = z; a[3] = w) +proc `qqps=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[0] = w) +proc `qqpt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[1] = w) +proc `qqpp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[2] = w) +proc `qqpq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[2] = z; a[3] = w) +proc `qqqs=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[0] = w) +proc `qqqt=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[1] = w) +proc `qqqp=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[2] = w) +proc `qqqq=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[3] = x; a[3] = y; a[3] = z; a[3] = w) diff --git a/tools/genswizzle.nim b/tools/genswizzle.nim index 6b123db..f6b17ba 100644 --- a/tools/genswizzle.nim +++ b/tools/genswizzle.nim @@ -21,7 +21,7 @@ for swizzle in swizzles: code.add &"proc {s1}{s2}*[T](a: GVec234[T]): GVec2[T] = gvec2(a[{i1}], a[{i2}])\n" for i1, s1 in swizzle: for i2, s2 in swizzle: - code.add &"proc `{s1}{s2}=`*[T](a: var GVec234[T], b: GVec2[T]) = (let b = b; a[{i1}] = b.x; a[{i2}] = b.y)\n" + code.add &"proc `{s1}{s2}=`*[T](a: var GVec234[T], b: GVec2[T]) = (let x = b.x; let y = b.y; a[{i1}] = x; a[{i2}] = y)\n" for swizzle in swizzles: code.add "\n# 3 x " & swizzle & "\n" @@ -32,7 +32,7 @@ for swizzle in swizzles: for i1, s1 in swizzle: for i2, s2 in swizzle: for i3, s3 in swizzle: - code.add &"proc `{s1}{s2}{s3}=`*[T](a: var GVec234[T], b: GVec3[T]) = (let b = b; a[{i1}] = b.x; a[{i2}] = b.y; a[{i3}] = b.z)\n" + code.add &"proc `{s1}{s2}{s3}=`*[T](a: var GVec234[T], b: GVec3[T]) = (let x = b.x; let y = b.y; let z = b.z; a[{i1}] = x; a[{i2}] = y; a[{i3}] = z)\n" for swizzle in swizzles: code.add "\n# 4 x " & swizzle & "\n" @@ -45,6 +45,6 @@ for swizzle in swizzles: for i2, s2 in swizzle: for i3, s3 in swizzle: for i4, s4 in swizzle: - code.add &"proc `{s1}{s2}{s3}{s4}=`*[T](a: var GVec234[T], b: GVec4[T]) = (let b = b; a[{i1}] = b.x; a[{i2}] = b.y; a[{i3}] = b.z; a[{i4}] = b.w)\n" + code.add &"proc `{s1}{s2}{s3}{s4}=`*[T](a: var GVec234[T], b: GVec4[T]) = (let x = b.x; let y = b.y; let z = b.z; let w = b.w; a[{i1}] = x; a[{i2}] = y; a[{i3}] = z; a[{i4}] = w)\n" writeFile("src/vmath/swizzle.nim", code)