Beispiel #1
0
 public static uint hash(fix64p3x4 v)
 {
     return(csum(fold_to_uint(v.c0) * uint3(0x6E624EB7u, 0x7383ED49u, 0xDD49C23Bu) +
                 fold_to_uint(v.c1) * uint3(0xEBD0D005u, 0x91475DF7u, 0x55E84827u) +
                 fold_to_uint(v.c2) * uint3(0x90A285BBu, 0x5D19E1D5u, 0xFAAF07DDu) +
                 fold_to_uint(v.c3) * uint3(0x625C45BDu, 0xC9F27FCBu, 0x6D2523B1u)) + 0x6E2BF6A9u);
 }
Beispiel #2
0
 public static uint3 hashwide(fix64p3x4 v)
 {
     return((fold_to_uint(v.c0) * uint3(0xCC74B3B7u, 0x83B58237u, 0x833E3E29u) +
             fold_to_uint(v.c1) * uint3(0xA9D919BFu, 0xC3EC1D97u, 0xB8B208C7u) +
             fold_to_uint(v.c2) * uint3(0x5D3ED947u, 0x4473BBB1u, 0xCBA11D5Fu) +
             fold_to_uint(v.c3) * uint3(0x685835CFu, 0xC3D32AE1u, 0xB966942Fu)) + 0xFE9856B3u);
 }
Beispiel #3
0
 public static fix64p4x3 transpose(fix64p3x4 v)
 {
     return(fix64p4x3(
                v.c0.x, v.c0.y, v.c0.z,
                v.c1.x, v.c1.y, v.c1.z,
                v.c2.x, v.c2.y, v.c2.z,
                v.c3.x, v.c3.y, v.c3.z));
 }