Sub calls (big.Int).Sub.
(x, y *BigInt)
| 939 | |
| 940 | // Sub calls (big.Int).Sub. |
| 941 | func (z *BigInt) Sub(x, y *BigInt) *BigInt { |
| 942 | if xVal, xNeg, ok := x.innerAsUint64(); ok { |
| 943 | if yVal, yNeg, ok := y.innerAsUint64(); ok { |
| 944 | if zVal, zNeg, ok := addInline(xVal, yVal, xNeg, !yNeg); ok { |
| 945 | z.updateInnerFromUint64(zVal, zNeg) |
| 946 | return z |
| 947 | } |
| 948 | } |
| 949 | } |
| 950 | var tmp1, tmp2, tmp3 big.Int //gcassert:noescape |
| 951 | zi := z.inner(&tmp1) |
| 952 | zi.Sub(x.inner(&tmp2), y.inner(&tmp3)) |
| 953 | z.updateInner(zi) |
| 954 | return z |
| 955 | } |
| 956 | |
| 957 | // Text calls (big.Int).Text. |
| 958 | func (z *BigInt) Text(base int) string { |