public static int2x2 int2x2(bool2x2 v) { return(new int2x2(v)); }
public static uint2 hashwide(bool2x2 v) { return(select(uint2(0x88FCAB2Du, 0x614DA60Du), uint2(0x5BA2C50Bu, 0x8C455ACBu), v.c0) + select(uint2(0xCD266C89u, 0xF1852A33u), uint2(0x77E35E77u, 0x863E3729u), v.c1)); }
public int2x2(bool2x2 v) { this.c0 = math.select(new int2(0), new int2(1), v.c0); this.c1 = math.select(new int2(0), new int2(1), v.c1); }
public static bool2x2 transpose(bool2x2 v) { return(bool2x2( v.c0.x, v.c0.y, v.c1.x, v.c1.y)); }
public static uint hash(bool2x2 v) { return(csum(select(uint2(0x7AF32C49u, 0xAE131389u), uint2(0x5D1B165Bu, 0x87096CD7u), v.c0) + select(uint2(0x4C7F6DD1u, 0x4822A3E9u), uint2(0xAAC3C25Du, 0xD21D0945u), v.c1))); }
public uint2x2(bool2x2 v) { this.c0 = math.select(new uint2(0u), new uint2(1u), v.c0); this.c1 = math.select(new uint2(0u), new uint2(1u), v.c1); }
public static uint2 hashwide(bool2x2 v) { return(select(uint2(0x77E35E77u, 0x863E3729u), uint2(0xE191B035u, 0x68586FAFu), v.c0) + select(uint2(0xD4DFF6D3u, 0xCB634F4Du), uint2(0x9B13B92Du, 0x4ABF0813u), v.c1)); }
public fix64p2x2(bool2x2 v) { this.c0 = math.select(new fix64p2(fix64p.zero), new fix64p2(fix64p.One), v.c0); this.c1 = math.select(new fix64p2(fix64p.zero), new fix64p2(fix64p.One), v.c1); }
public static uint hash(bool2x2 v) { return(csum(select(uint2(0xB139D651u, 0xE7579997u), uint2(0xEF7D56C7u, 0x66F38F0Bu), v.c0) + select(uint2(0x624256A3u, 0x5292ADE1u), uint2(0xD2E590E5u, 0xF25BE857u), v.c1))); }
public static uint2 hash_wide(bool2x2 v) { return(select(uint2(0x841D8225u, 0xC9393C7Du), uint2(0xD42EAFA3u, 0xD9AFD06Du), v.c0) + select(uint2(0x97A65421u, 0x7809205Fu), uint2(0x9C9F0823u, 0x5A9CA13Bu), v.c1)); }
public static fix64p2x2 fix64p2x2(bool2x2 v) { return(new fix64p2x2(v)); }
public static uint hash(bool2x2 v) { return(csum(select(uint2(0x86068063u, 0xD75513F9u), uint2(0x5AB3E8CDu, 0x676E8407u), v.c0) + select(uint2(0xB36DE767u, 0x6FCA387Du), uint2(0xAF0F3103u, 0xE4A056C7u), v.c1))); }
public static uint hash(bool2x2 v) { return(csum(select(uint2(0xB8B208C7u, 0x5D3ED947u), uint2(0x4473BBB1u, 0xCBA11D5Fu), v.c0) + select(uint2(0x685835CFu, 0xC3D32AE1u), uint2(0xB966942Fu, 0xFE9856B3u), v.c1))); }
public static uint hash(bool2x2 v) { return(csum(select(uint2(0xA1E92D39u, 0x4583C801u), uint2(0x9536A0F5u, 0xAF816615u), v.c0) + select(uint2(0x9AF8D62Du, 0xE3600729u), uint2(0x5F17300Du, 0x670D6809u), v.c1))); }
public static double2x2 double2x2(bool2x2 v) { return(new double2x2(v)); }
public static float2x2 float2x2(bool2x2 v) { return(new float2x2(v)); }
public double2x2(bool2x2 v) { this.c0 = math.select(new double2(0.0), new double2(1.0), v.c0); this.c1 = math.select(new double2(0.0), new double2(1.0), v.c1); }
public float2x2(bool2x2 v) { this.c0 = math.select(new float2(0.0f), new float2(1.0f), v.c0); this.c1 = math.select(new float2(0.0f), new float2(1.0f), v.c1); }
public static uint2x2 uint2x2(bool2x2 v) { return(new uint2x2(v)); }
public static uint hash(bool2x2 v) { return(csum(select(uint2(0xAAC3C25Du, 0xD21D0945u), uint2(0x88FCAB2Du, 0x614DA60Du), v.c0) + select(uint2(0x5BA2C50Bu, 0x8C455ACBu), uint2(0xCD266C89u, 0xF1852A33u), v.c1))); }