Commit 2527de5e authored by Raymond Toy's avatar Raymond Toy
Browse files

Make %sincos consistently return sin and cos instead of cos and sin.

Update users accordingly.
parent d669c129
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -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)))
)


@@ -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))))))
+5 −6
Original line number Diff line number Diff line
@@ -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) *)