func (e *E2) Sub(cs *frontend.ConstraintSystem, e1, e2 *E2) *E2 {
	e.A0 = cs.Sub(e1.A0, e2.A0)
	e.A1 = cs.Sub(e1.A1, e2.A1)
	return e
}
Sub e2 elmts
package fields
import (
	bls12377 "github.com/consensys/gnark-crypto/ecc/bls12-377"
	"github.com/consensys/gnark-crypto/ecc/bls12-377/fp"
	"github.com/consensys/gnark-crypto/ecc/bw6-761/fr"
	"github.com/consensys/gnark/frontend"
)
type E2 struct {
	A0, A1 frontend.Variable
}
func (e *E2) Neg(cs *frontend.ConstraintSystem, e1 *E2) *E2 {
	e.A0 = cs.Sub(0, e1.A0)
	e.A1 = cs.Sub(0, e1.A1)
	return e
}
func (e *E2) Add(cs *frontend.ConstraintSystem, e1, e2 *E2) *E2 {
	e.A0 = cs.Add(e1.A0, e2.A0)
	e.A1 = cs.Add(e1.A1, e2.A1)
	return e
}