Function: calcFunc-scf

calcFunc-scf is an autoloaded and byte-compiled function defined in calc-arith.el.gz.

Signature

(calcFunc-scf X N)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-arith.el.gz
(defun calcFunc-scf (x n)
  (if (integerp n)
      (cond ((eq n 0)
	     x)
	    ((Math-integerp x)
	     (if (> n 0)
		 (math-scale-int x n)
	       (math-div x (math-scale-int 1 (- n)))))
	    ((eq (car x) 'frac)
	     (if (> n 0)
		 (math-make-frac (math-scale-int (nth 1 x) n) (nth 2 x))
	       (math-make-frac (nth 1 x) (math-scale-int (nth 2 x) (- n)))))
	    ((eq (car x) 'float)
	     (math-make-float (nth 1 x) (+ (nth 2 x) n)))
	    ((memq (car x) '(cplx sdev))
	     (math-normalize
	      (list (car x)
		    (calcFunc-scf (nth 1 x) n)
		    (calcFunc-scf (nth 2 x) n))))
	    ((memq (car x) '(polar mod))
	     (math-normalize
	      (list (car x)
		    (calcFunc-scf (nth 1 x) n)
		    (nth 2 x))))
	    ((eq (car x) 'intv)
	     (math-normalize
	      (list (car x)
		    (nth 1 x)
		    (calcFunc-scf (nth 2 x) n)
		    (calcFunc-scf (nth 3 x) n))))
	    ((eq (car x) 'vec)
             (math-map-vec (lambda (x) (calcFunc-scf x n)) x))
	    ((math-infinitep x)
	     x)
	    (t
	     (calc-record-why 'realp x)
	     (list 'calcFunc-scf x n)))
    (if (math-messy-integerp n)
	(if (< (nth 2 n) 10)
	    (calcFunc-scf x (math-trunc n))
	  (math-overflow n))
      (if (math-integerp n)
	  (math-overflow n)
	(calc-record-why 'integerp n)
	(list 'calcFunc-scf x n)))))