public static uint hash(uint2x2 v) { return(csum(v.c0 * uint2(0xB36DE767u, 0x6FCA387Du) + v.c1 * uint2(0xAF0F3103u, 0xE4A056C7u)) + 0x841D8225u); }
public static uint2 hashwide(uint2x2 v) { return((v.c0 * uint2(0xC9393C7Du, 0xD42EAFA3u) + v.c1 * uint2(0xD9AFD06Du, 0x97A65421u)) + 0x7809205Fu); }
public int2x2(uint2x2 v) { this.c0 = (int2)v.c0; this.c1 = (int2)v.c1; }
public static uint2x2 transpose(uint2x2 v) { return(uint2x2( v.c0.x, v.c0.y, v.c1.x, v.c1.y)); }
public static int2x2 int2x2(uint2x2 v) { return(new int2x2(v)); }
public static double2x2 double2x2(uint2x2 v) { return(new double2x2(v)); }
public double2x2(uint2x2 v) { this.c0 = v.c0; this.c1 = v.c1; }
public static float2x2 float2x2(uint2x2 v) { return(new float2x2(v)); }
public float2x2(uint2x2 v) { this.c0 = v.c0; this.c1 = v.c1; }