public static int2x2 int2x2(uint2x2 v) { return(new int2x2(v)); }
public static uint2 hashwide(uint2x2 v) { return((v.c0 * uint2(0xEEE2123Bu, 0xE3AD9FE5u) + v.c1 * uint2(0xCE1CF8BFu, 0x7BE39F3Bu)) + 0xFAB9913Fu); }
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 uint hash(uint2x2 v) { return(csum(v.c0 * uint2(0xDFF4F563u, 0x7069770Du) + v.c1 * uint2(0xD1224537u, 0xE99ED6F3u)) + 0x48125549u); }
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; }
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 static uint hash(uint2x2 v) { return(csum(v.c0 * uint2(0xEF63C699u, 0x9001903Fu) + v.c1 * uint2(0xA895B9CDu, 0x9D23B201u)) + 0x4B01D3E1u); }
public static uint hash(uint2x2 v) { return(csum(v.c0 * uint2(0x6BF6693Fu, 0x9D1B1D9Bu) + v.c1 * uint2(0xF842F5C1u, 0xA47EC335u)) + 0xA477DF57u); }
public static uint hash(uint2x2 v) { return(csum(v.c0 * uint2(0x4822A3E9u, 0xAAC3C25Du) + v.c1 * uint2(0xD21D0945u, 0x88FCAB2Du)) + 0x614DA60Du); }
public static uint2 hashwide(uint2x2 v) { return((v.c0 * uint2(0x5A9CA13Bu, 0xAFCDD5EFu) + v.c1 * uint2(0xA88D187Du, 0xCF6EBA1Du)) + 0x9D88E5A1u); }
public static uint hash(uint2x2 v) { return(csum(v.c0 * uint2(0xD42EAFA3u, 0xD9AFD06Du) + v.c1 * uint2(0x97A65421u, 0x7809205Fu)) + 0x9C9F0823u); }