public static int determinant(int2x2 m) { int a = m.c0.x; int b = m.c1.x; int c = m.c0.y; int d = m.c1.y; return(a * d - b * c); }
public static uint2x2 uint2x2(int2x2 v) { return(new uint2x2(v)); }
public double2x2(int2x2 v) { this.c0 = v.c0; this.c1 = v.c1; }
public static double2x2 double2x2(int2x2 v) { return(new double2x2(v)); }
public static uint2 hash_wide(int2x2 v) { return((asuint(v.c0) * uint2(0x747A9D7Bu, 0x4111F799u) + asuint(v.c1) * uint2(0xB5F05AF1u, 0xFD80290Bu)) + 0x8B65ADB7u); }
public static uint hash(int2x2 v) { return(csum(asuint(v.c0) * uint2(0xAFCDD5EFu, 0xA88D187Du) + asuint(v.c1) * uint2(0xCF6EBA1Du, 0x9D88E5A1u)) + 0xEADF0775u); }
public float2x2(int2x2 v) { this.c0 = v.c0; this.c1 = v.c1; }
public static uint hash(int2x2 v) { return(csum(asuint(v.c0) * uint2(0xD1224537u, 0xE99ED6F3u) + asuint(v.c1) * uint2(0x48125549u, 0xEEE2123Bu)) + 0xE3AD9FE5u); }
public static uint2 hashwide(int2x2 v) { return((asuint(v.c0) * uint2(0x6FCA387Du, 0xAF0F3103u) + asuint(v.c1) * uint2(0xE4A056C7u, 0x841D8225u)) + 0xC9393C7Du); }
public static float2x2 float2x2(int2x2 v) { return(new float2x2(v)); }
public fix64p2x2(int2x2 v) { this.c0 = (fix64p2)v.c0; this.c1 = (fix64p2)v.c1; }
public static fix64p2x2 fix64p2x2(int2x2 v) { return(new fix64p2x2(v)); }
public static uint hash(int2x2 v) { return(csum(asuint(v.c0) * uint2(0xE191B035u, 0x68586FAFu) + asuint(v.c1) * uint2(0xD4DFF6D3u, 0xCB634F4Du)) + 0x9B13B92Du); }
public uint2x2(int2x2 v) { this.c0 = (uint2)v.c0; this.c1 = (uint2)v.c1; }
public static int2x2 transpose(int2x2 v) { return(int2x2( v.c0.x, v.c0.y, v.c1.x, v.c1.y)); }
public static uint hash(int2x2 v) { return(csum(asuint(v.c0) * uint2(0x4ABF0813u, 0x86068063u) + asuint(v.c1) * uint2(0xD75513F9u, 0x5AB3E8CDu)) + 0x676E8407u); }
public static uint hash(int2x2 v) { return(csum(asuint(v.c0) * uint2(0x7AF32C49u, 0xAE131389u) + asuint(v.c1) * uint2(0x5D1B165Bu, 0x87096CD7u)) + 0x4C7F6DD1u); }