示例#1
0
 public static fp3x3 mul(fp3x2 a, fp2x3 b)
 {
     return(fp3x3(
                a.c0 * b.c0.x + a.c1 * b.c0.y,
                a.c0 * b.c1.x + a.c1 * b.c1.y,
                a.c0 * b.c2.x + a.c1 * b.c2.y));
 }
示例#2
0
 public static fp3x4 mul(fp3x2 a, fp2x4 b)
 {
     return(fp3x4(
                a.c0 * b.c0.x + a.c1 * b.c0.y,
                a.c0 * b.c1.x + a.c1 * b.c1.y,
                a.c0 * b.c2.x + a.c1 * b.c2.y,
                a.c0 * b.c3.x + a.c1 * b.c3.y));
 }
示例#3
0
 public static fp2 mul(fp3 a, fp3x2 b)
 {
     return(fp2(
                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));
 }
示例#4
0
 public static fp4x2 mul(fp4x3 a, fp3x2 b)
 {
     return(fp4x2(
                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));
 }
示例#5
0
 public static fp3x2 mul(fp3x2 a, fp2x2 b)
 {
     return(fp3x2(
                a.c0 * b.c0.x + a.c1 * b.c0.y,
                a.c0 * b.c1.x + a.c1 * b.c1.y));
 }
示例#6
0
 public static fp3 mul(fp3x2 a, fp2 b)
 {
     return(a.c0 * b.x + a.c1 * b.y);
 }
示例#7
0
 public static uint3 hashwide(fp3x2 v)
 {
     return((fpmath.asuint(v.c0) * uint3(0x676E8407u, 0xB36DE767u, 0x6FCA387Du) +
             fpmath.asuint(v.c1) * uint3(0xAF0F3103u, 0xE4A056C7u, 0x841D8225u)) + 0xC9393C7Du);
 }
示例#8
0
 public static uint hash(fp3x2 v)
 {
     return(math.csum(fpmath.asuint(v.c0) * uint3(0xD4DFF6D3u, 0xCB634F4Du, 0x9B13B92Du) +
                      fpmath.asuint(v.c1) * uint3(0x4ABF0813u, 0x86068063u, 0xD75513F9u)) + 0x5AB3E8CDu);
 }
示例#9
0
 public static fp2x3 transpose(fp3x2 v)
 {
     return(fp2x3(
                v.c0.x, v.c0.y, v.c0.z,
                v.c1.x, v.c1.y, v.c1.z));
 }