public static uint hash(fix64p2x4 v) { return(csum(fold_to_uint(v.c0) * uint2(0x77E35E77u, 0x863E3729u) + fold_to_uint(v.c1) * uint2(0xE191B035u, 0x68586FAFu) + fold_to_uint(v.c2) * uint2(0xD4DFF6D3u, 0xCB634F4Du) + fold_to_uint(v.c3) * uint2(0x9B13B92Du, 0x4ABF0813u)) + 0x86068063u); }
public static uint2 hashwide(fix64p2x4 v) { return((fold_to_uint(v.c0) * uint2(0xD75513F9u, 0x5AB3E8CDu) + fold_to_uint(v.c1) * uint2(0x676E8407u, 0xB36DE767u) + fold_to_uint(v.c2) * uint2(0x6FCA387Du, 0xAF0F3103u) + fold_to_uint(v.c3) * uint2(0xE4A056C7u, 0x841D8225u)) + 0xC9393C7Du); }
public static fix64p4x2 transpose(fix64p2x4 v) { return(fix64p4x2( v.c0.x, v.c0.y, v.c1.x, v.c1.y, v.c2.x, v.c2.y, v.c3.x, v.c3.y)); }