(p *extendedGroupElement, q *cachedGroupElement)
| 178 | } |
| 179 | |
| 180 | func (c *completedGroupElement) Add(p *extendedGroupElement, q *cachedGroupElement) { |
| 181 | var t0 fieldElement |
| 182 | |
| 183 | feAdd(&c.X, &p.Y, &p.X) |
| 184 | feSub(&c.Y, &p.Y, &p.X) |
| 185 | feMul(&c.Z, &c.X, &q.yPlusX) |
| 186 | feMul(&c.Y, &c.Y, &q.yMinusX) |
| 187 | feMul(&c.T, &q.T2d, &p.T) |
| 188 | feMul(&c.X, &p.Z, &q.Z) |
| 189 | feAdd(&t0, &c.X, &c.X) |
| 190 | feSub(&c.X, &c.Z, &c.Y) |
| 191 | feAdd(&c.Y, &c.Z, &c.Y) |
| 192 | feAdd(&c.Z, &t0, &c.T) |
| 193 | feSub(&c.T, &t0, &c.T) |
| 194 | } |
| 195 | |
| 196 | func (c *completedGroupElement) Sub(p *extendedGroupElement, q *cachedGroupElement) { |
| 197 | var t0 fieldElement |
no test coverage detected