# [plt-scheme] 205.6

The exp-tagged code in CVS for MzScheme and MrEd is now version 205.6.
The improvements, by Scott Owens and myself, are all related to bignum
arithmetic:
* Added `integer-sqrt', which takes an integer and returns its integer
square-root. For positive `n', the result is the largest positive
integer bounded by `(sqrt n)'. For negative `n', the result is `(*
(integer-sqrt (- n)) 0+i)'. Of course, the result is always exact
for an exact input.
* Added `integer-sqrt/remainder', where `(integer-sqrt/remainder n)'
returns two values: `(integer-sqrt n)' and `(- n (expt (integer-sqrt
n) 2))'.
* Added `quotient/remainder', where `(quotient/remainder n1 n2)' returns
two values: `(quotient n1 n2)' and `(remainder n1 n2)'.
* Improved performance of some other operations, notably `sqrt' and
`gcd' on bignums. See also the comp.lang.scheme post cited below. (A
reply with more details will appear on the newsgroup.)
If anyone knows better or more standard names for the new functions,
please let me know. I could only find a precedent for `integer-sqrt'
(from SLIB), and I didn't like the precedent I found for
`quotient/remainder' (called `divide' in VSCM).
Matthew
comp.lang.scheme post:
http://groups.google.com/groups?q=g:thl2022410197d&dq=&hl=en&lr=&ie=UTF-8&safe=off&selm=77776c11.0311101033.63194e64%40posting.google.com