1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
package fourq
func fqAddGeneric(c, a, b *Fq) {
fpAddGeneric(&c[0], &a[0], &b[0])
fpAddGeneric(&c[1], &a[1], &b[1])
}
func fqSubGeneric(c, a, b *Fq) {
fpSubGeneric(&c[0], &a[0], &b[0])
fpSubGeneric(&c[1], &a[1], &b[1])
}
func fqMulGeneric(c, a, b *Fq) {
var a0b0, a0b1, a1b0, a1b1 Fp
fpMulGeneric(&a0b0, &a[0], &b[0])
fpMulGeneric(&a0b1, &a[0], &b[1])
fpMulGeneric(&a1b0, &a[1], &b[0])
fpMulGeneric(&a1b1, &a[1], &b[1])
fpSubGeneric(&c[0], &a0b0, &a1b1)
fpAddGeneric(&c[1], &a0b1, &a1b0)
}
func fqSqrGeneric(c, a *Fq) {
var aa0, a01, aa1 Fp
fpSqrGeneric(&aa0, &a[0])
fpMulGeneric(&a01, &a[0], &a[1])
fpSqrGeneric(&aa1, &a[1])
fpSubGeneric(&c[0], &aa0, &aa1)
fpAddGeneric(&c[1], &a01, &a01)
}
|