376 
(complexsqrt number) 
(complexsqrt number) 
377 
(coerce (%sqrt (coerce number 'doublefloat)) 'singlefloat))) 
(coerce (%sqrt (coerce number 'doublefloat)) 'singlefloat))) 
378 
(((foreach singlefloat doublefloat)) 
(((foreach singlefloat doublefloat)) 
379 
;; NOTE there is a problem with (at least x86 NPX) of what result 
(if (< (floatsign number) 

;; should be returned for (sqrt 0.0). The x86 hardware FSQRT 


;; instruction returns 0d0. The result is that Python will perhaps 


;; note the following test in generic sqrt, nonnegatively constrained 


;; float types will be passed to FSQRT (or libm on other boxes). 


;; So, in the interest of consistency of compiled and interpreted 


;; codes, the following test is disabled for now. Maybe the floatsign 


;; test could be moved to the optimization codes. 


(if (< (#+nil floatsign #nil identity number) 

380 
(coerce 0 '(dispatchtype number))) 
(coerce 0 '(dispatchtype number))) 
381 
(complexsqrt number) 
(complexsqrt number) 
382 
(coerce (%sqrt (coerce number 'doublefloat)) 
(coerce (%sqrt (coerce number 'doublefloat)) 