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 uint2x2(int2x2 v) { this.c0 = (uint2)v.c0; this.c1 = (uint2)v.c1; }
public static uint2x2 uint2x2(int2x2 v) { return(new uint2x2(v)); }
public float2x2(int2x2 v) { this.c0 = v.c0; this.c1 = v.c1; }
public static float2x2 float2x2(int2x2 v) { return(new float2x2(v)); }
public static uint2 hashwide(int2x2 v) { return((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(0xE191B035u, 0x68586FAFu) + asuint(v.c1) * uint2(0xD4DFF6D3u, 0xCB634F4Du)) + 0x9B13B92Du); }
public static int2x2 transpose(int2x2 v) { return(int2x2( v.c0.x, v.c0.y, v.c1.x, v.c1.y)); }