Add calls (big.Int).Add.
(x, y *BigInt)
| 369 | |
| 370 | // Add calls (big.Int).Add. |
| 371 | func (z *BigInt) Add(x, y *BigInt) *BigInt { |
| 372 | if xVal, xNeg, ok := x.innerAsUint64(); ok { |
| 373 | if yVal, yNeg, ok := y.innerAsUint64(); ok { |
| 374 | if zVal, zNeg, ok := addInline(xVal, yVal, xNeg, yNeg); ok { |
| 375 | z.updateInnerFromUint64(zVal, zNeg) |
| 376 | return z |
| 377 | } |
| 378 | } |
| 379 | } |
| 380 | var tmp1, tmp2, tmp3 big.Int //gcassert:noescape |
| 381 | zi := z.inner(&tmp1) |
| 382 | zi.Add(x.inner(&tmp2), y.inner(&tmp3)) |
| 383 | z.updateInner(zi) |
| 384 | return z |
| 385 | } |
| 386 | |
| 387 | // And calls (big.Int).And. |
| 388 | func (z *BigInt) And(x, y *BigInt) *BigInt { |