Loading src/code/irrat.lisp +14 −13 Original line number Diff line number Diff line Loading @@ -342,24 +342,25 @@ (- c (* s y)))) (case (logand n 3) (0 (values (cos2 s c y1) (sin2 s c y1))) (1 (values (- (sin2 s c y1)) (values (sin2 s c y1) (cos2 s c y1))) (2 (values (- (cos2 s c y1)) (1 (values (cos2 s c y1) (- (sin2 s c y1)))) (2 (values (- (sin2 s c y1)) (- (cos2 s c y1)))) (3 (values (sin2 s c y1) (- (cos2 s c y1))))))))) (values (- (cos2 s c y1)) (sin2 s c y1)))))))) #+sparc (declaim (inline %sinccos)) #+sparc (defun %sincos (theta) (multiple-value-bind (ignore s c) (%%sincos theta) (values c s))) (declare (ignore ignore)) (values s c))) ) Loading Loading @@ -1025,13 +1026,13 @@ (let ((arg (coerce theta 'double-float))) (multiple-value-bind (s c) (%sincos arg) (complex (coerce s 'single-float) (coerce c 'single-float))))) (complex (coerce c 'single-float) (coerce s 'single-float))))) (((foreach single-float double-float)) (multiple-value-bind (s c) (%sincos (coerce theta 'double-float)) (complex (coerce s '(dispatch-type theta)) (coerce c '(dispatch-type theta))))) (complex (coerce c '(dispatch-type theta)) (coerce s '(dispatch-type theta))))) #+double-double ((double-double-float) (complex (cos theta) (sin theta)))))) Loading src/compiler/float-tran.lisp +5 −6 Original line number Diff line number Diff line Loading @@ -740,14 +740,13 @@ (deftransform cis ((x) (single-float) * :when :both) `(multiple-value-bind (s c) (kernel::%sincos (coerce x 'double-float)) (complex (coerce s 'single-float) (coerce c 'single-float)))) (complex (coerce c 'single-float) (coerce s 'single-float)))) (deftransform cis ((x) (double-float) * :when :both) `(multiple-value-bind (ignore s c) (kernel::%%sincos x) (declare (ignore ignore)) (complex s c))) `(multiple-value-bind (s c) (kernel::%sincos x) (complex c s))) #+double-double (deftransform cis ((z) (double-double-float) *) Loading Loading
src/code/irrat.lisp +14 −13 Original line number Diff line number Diff line Loading @@ -342,24 +342,25 @@ (- c (* s y)))) (case (logand n 3) (0 (values (cos2 s c y1) (sin2 s c y1))) (1 (values (- (sin2 s c y1)) (values (sin2 s c y1) (cos2 s c y1))) (2 (values (- (cos2 s c y1)) (1 (values (cos2 s c y1) (- (sin2 s c y1)))) (2 (values (- (sin2 s c y1)) (- (cos2 s c y1)))) (3 (values (sin2 s c y1) (- (cos2 s c y1))))))))) (values (- (cos2 s c y1)) (sin2 s c y1)))))))) #+sparc (declaim (inline %sinccos)) #+sparc (defun %sincos (theta) (multiple-value-bind (ignore s c) (%%sincos theta) (values c s))) (declare (ignore ignore)) (values s c))) ) Loading Loading @@ -1025,13 +1026,13 @@ (let ((arg (coerce theta 'double-float))) (multiple-value-bind (s c) (%sincos arg) (complex (coerce s 'single-float) (coerce c 'single-float))))) (complex (coerce c 'single-float) (coerce s 'single-float))))) (((foreach single-float double-float)) (multiple-value-bind (s c) (%sincos (coerce theta 'double-float)) (complex (coerce s '(dispatch-type theta)) (coerce c '(dispatch-type theta))))) (complex (coerce c '(dispatch-type theta)) (coerce s '(dispatch-type theta))))) #+double-double ((double-double-float) (complex (cos theta) (sin theta)))))) Loading
src/compiler/float-tran.lisp +5 −6 Original line number Diff line number Diff line Loading @@ -740,14 +740,13 @@ (deftransform cis ((x) (single-float) * :when :both) `(multiple-value-bind (s c) (kernel::%sincos (coerce x 'double-float)) (complex (coerce s 'single-float) (coerce c 'single-float)))) (complex (coerce c 'single-float) (coerce s 'single-float)))) (deftransform cis ((x) (double-float) * :when :both) `(multiple-value-bind (ignore s c) (kernel::%%sincos x) (declare (ignore ignore)) (complex s c))) `(multiple-value-bind (s c) (kernel::%sincos x) (complex c s))) #+double-double (deftransform cis ((z) (double-double-float) *) Loading