//go:build (amd64 && !purego && !plugin) || (arm64 && !purego) package bn256 // gfP2 multiplication. // //go:noescape func gfp2Mul(c, a, b *gfP2) // gfP2 multiplication. c = a*b*u // //go:noescape func gfp2MulU(c, a, b *gfP2) // gfP2 multiplication. c = a*u // //go:noescape func gfp2MulU1(c, a *gfP2) // gfP2 square. // //go:noescape func gfp2Square(c, a *gfP2) // gfP2 square and mult u. // //go:noescape func gfp2SquareU(c, a *gfP2) // Point doubling. Sets res = in + in. in can be the point at infinity. // //go:noescape func curvePointDoubleComplete(c, a *curvePoint) // Point addition. Sets res = in1 + in2. in1 can be same as in2, also can be at infinity. // //go:noescape func curvePointAddComplete(c, a, b *curvePoint)