The compiler inlined SQRT of negative number using the C sqrt function.

This commit is contained in:
jjgarcia 2005-11-04 09:45:42 +00:00
parent dcf915593e
commit 43967003d4
2 changed files with 5 additions and 2 deletions

View file

@ -37,6 +37,9 @@ ECL 0.9h
- SUBTYPEP formerly broken when handling (EQL #C(...))
- Fixed several type propagations: for instance, the compiler assumed that
SQRT of a real number is always real.
* Design:
- Simplified the structure of the frame stack, removing redundant fields.

View file

@ -867,8 +867,8 @@
(def-inline log :always (fixnum-float) :float "(float)log((double)(#0))")
(proclaim-function sqrt (number) number :no-side-effects t)
(def-inline sqrt :always (fixnum-float) :double "sqrt((double)(#0))")
(def-inline sqrt :always (fixnum-float) :float "(float)sqrt((double)(#0))")
(def-inline sqrt :always ((or (long-float 0.0 *) (double-float 0.0 *))) :double "sqrt((double)(#0))")
(def-inline sqrt :always ((or (single-float 0.0 *) (short-float 0.0 *))) :float "(float)sqrt((double)(#0))")
(proclaim-function sin (number) number :no-side-effects t)
(def-inline sin :always (fixnum-float) :double "sin((double)(#0))")