code: func (c *curvePoint) IsOnCurve() bool {
  	yy := new(big.Int).Mul(c.y, c.y)
  	xxx := new(big.Int).Mul(c.x, c.x)
  	xxx.Mul(xxx, c.x)
  	yy.Sub(yy, xxx)
  	yy.Sub(yy, curveB)
  	if yy.Sign() < 0 || yy.Cmp(P) >= 0 {
  		yy.Mod(yy, P)
  	}
  	return yy.Sign() == 0
  }
docs: // IsOnCurve returns true iff c is on the curve where c must be in affine form.