QuoRem calls (big.Int).QuoRem.
(x, y, r *BigInt)
| 767 | |
| 768 | // QuoRem calls (big.Int).QuoRem. |
| 769 | func (z *BigInt) QuoRem(x, y, r *BigInt) (*BigInt, *BigInt) { |
| 770 | if xVal, xNeg, ok := x.innerAsUint64(); ok { |
| 771 | if yVal, yNeg, ok := y.innerAsUint64(); ok { |
| 772 | if quoVal, quoNeg, ok := quoInline(xVal, yVal, xNeg, yNeg); ok { |
| 773 | if remVal, remNeg, ok := remInline(xVal, yVal, xNeg, yNeg); ok { |
| 774 | z.updateInnerFromUint64(quoVal, quoNeg) |
| 775 | r.updateInnerFromUint64(remVal, remNeg) |
| 776 | return z, r |
| 777 | } |
| 778 | } |
| 779 | } |
| 780 | } |
| 781 | var tmp1, tmp2, tmp3, tmp4 big.Int //gcassert:noescape |
| 782 | zi := z.inner(&tmp1) |
| 783 | ri := r.inner(&tmp2) |
| 784 | zi.QuoRem(x.inner(&tmp3), y.inner(&tmp4), ri) |
| 785 | z.updateInner(zi) |
| 786 | r.updateInner(ri) |
| 787 | return z, r |
| 788 | } |
| 789 | |
| 790 | // Rand calls (big.Int).Rand. |
| 791 | func (z *BigInt) Rand(rnd *rand.Rand, n *BigInt) *BigInt { |