Removing top-level sqrt

This isn't good enough, there are going to be bootstrap compilation problems undoing this...
This commit is contained in:
Justin Ethier 2024-03-11 19:29:54 -07:00
parent a2568d8589
commit 32af1bcd05

View file

@ -1437,10 +1437,10 @@
(error "exact non-negative integer required" k)) (error "exact non-negative integer required" k))
(let* ((s (if (bignum? k) (let* ((s (if (bignum? k)
(bignum-sqrt k) (bignum-sqrt k)
(exact (truncate (sqrt k))))) (exact (truncate (_sqrt k)))))
(r (- k (* s s)))) (r (- k (* s s))))
(values s r))) (values s r)))
(define-c sqrt (define-c _sqrt
"(void *data, int argc, closure _, object k, object z)" "(void *data, int argc, closure _, object k, object z)"
" return_inexact_double_op(data, k, sqrt, z);" " return_inexact_double_op(data, k, sqrt, z);"
"(void *data, object ptr, object z)" "(void *data, object ptr, object z)"