gmsm/sm9/bn256/gfp2_g1_decl.go

37 lines
777 B
Go

//go:build amd64 && !purego
// +build amd64,!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 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 curvePointDouble(c, a *curvePoint)
// Point addition. Sets res = in1 + in2. Returns one if the two input points
// were equal and zero otherwise. If in1 or in2 are the point at infinity, res
// and the return value are undefined.
//
//go:noescape
func curvePointAdd(c, a, b *curvePoint) int