示例#1
0
 public static fp3x3 mul(fp3x4 a, fp4x3 b)
 {
     return(fp3x3(
                a.c0 * b.c0.x + a.c1 * b.c0.y + a.c2 * b.c0.z + a.c3 * b.c0.w,
                a.c0 * b.c1.x + a.c1 * b.c1.y + a.c2 * b.c1.z + a.c3 * b.c1.w,
                a.c0 * b.c2.x + a.c1 * b.c2.y + a.c2 * b.c2.z + a.c3 * b.c2.w));
 }
示例#2
0
 public static uint3 hashwide(fp3x4 v)
 {
     return((fpmath.asuint(v.c0) * uint3(0x6BF6693Fu, 0x9D1B1D9Bu, 0xF842F5C1u) +
             fpmath.asuint(v.c1) * uint3(0xA47EC335u, 0xA477DF57u, 0xC4B1493Fu) +
             fpmath.asuint(v.c2) * uint3(0xBA0966D3u, 0xAFBEE253u, 0x5B419C01u) +
             fpmath.asuint(v.c3) * uint3(0x515D90F5u, 0xEC9F68F3u, 0xF9EA92D5u)) + 0xC2FAFCB9u);
 }
示例#3
0
 public static uint hash(fp3x4 v)
 {
     return(math.csum(fpmath.asuint(v.c0) * uint3(0x48125549u, 0xEEE2123Bu, 0xE3AD9FE5u) +
                      fpmath.asuint(v.c1) * uint3(0xCE1CF8BFu, 0x7BE39F3Bu, 0xFAB9913Fu) +
                      fpmath.asuint(v.c2) * uint3(0xB4501269u, 0xE04B89FDu, 0xDB3DE101u) +
                      fpmath.asuint(v.c3) * uint3(0x7B6D1B4Bu, 0x58399E77u, 0x5EAC29C9u)) + 0xFC6014F9u);
 }
示例#4
0
 public static fp4 mul(fp3 a, fp3x4 b)
 {
     return(fp4(
                a.x * b.c0.x + a.y * b.c0.y + a.z * b.c0.z,
                a.x * b.c1.x + a.y * b.c1.y + a.z * b.c1.z,
                a.x * b.c2.x + a.y * b.c2.y + a.z * b.c2.z,
                a.x * b.c3.x + a.y * b.c3.y + a.z * b.c3.z));
 }
示例#5
0
 public static fp4x4 mul(fp4x3 a, fp3x4 b)
 {
     return(fp4x4(
                a.c0 * b.c0.x + a.c1 * b.c0.y + a.c2 * b.c0.z,
                a.c0 * b.c1.x + a.c1 * b.c1.y + a.c2 * b.c1.z,
                a.c0 * b.c2.x + a.c1 * b.c2.y + a.c2 * b.c2.z,
                a.c0 * b.c3.x + a.c1 * b.c3.y + a.c2 * b.c3.z));
 }
示例#6
0
 public static fp3x4 mul(fp3x4 a, fp4x4 b)
 {
     return(fp3x4(
                a.c0 * b.c0.x + a.c1 * b.c0.y + a.c2 * b.c0.z + a.c3 * b.c0.w,
                a.c0 * b.c1.x + a.c1 * b.c1.y + a.c2 * b.c1.z + a.c3 * b.c1.w,
                a.c0 * b.c2.x + a.c1 * b.c2.y + a.c2 * b.c2.z + a.c3 * b.c2.w,
                a.c0 * b.c3.x + a.c1 * b.c3.y + a.c2 * b.c3.z + a.c3 * b.c3.w));
 }
示例#7
0
 public static fp4x3 transpose(fp3x4 v)
 {
     return(fp4x3(
                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));
 }
示例#8
0
 public static fp3x2 mul(fp3x4 a, fp4x2 b)
 {
     return(fp3x2(
                a.c0 * b.c0.x + a.c1 * b.c0.y + a.c2 * b.c0.z + a.c3 * b.c0.w,
                a.c0 * b.c1.x + a.c1 * b.c1.y + a.c2 * b.c1.z + a.c3 * b.c1.w));
 }
示例#9
0
 public static fp3 mul(fp3x4 a, fp4 b)
 {
     return(a.c0 * b.x + a.c1 * b.y + a.c2 * b.z + a.c3 * b.w);
 }