// Simple helper to compute G^{ab-cd} for Theta vector computation. func thenc(grp abstract.Group, G abstract.Point, a, b, c, d abstract.Scalar) abstract.Point { var ab, cd abstract.Scalar if a != nil { ab = grp.Scalar().Mul(a, b) } else { ab = grp.Scalar().Zero() } if c != nil { if d != nil { cd = grp.Scalar().Mul(c, d) } else { cd = c } } else { cd = grp.Scalar().Zero() } return grp.Point().Mul(G, ab.Sub(ab, cd)) }