Lines Matching refs:fnum
120 (defun fashl (fnum) ; floating-point arithmetic shift left
121 (cons (ash (car fnum) 1) (1- (cdr fnum))))
123 (defun fashr (fnum) ; floating point arithmetic shift right
124 (cons (ash (car fnum) -1) (1+ (cdr fnum))))
126 (defun normalize (fnum)
127 (if (> (car fnum) 0) ; make sure next-to-highest bit is set
128 (while (zerop (logand (car fnum) second-bit-mask))
129 (setq fnum (fashl fnum)))
130 (if (< (car fnum) 0) ; make sure highest bit is set
131 (while (zerop (logand (car fnum) high-bit-mask))
132 (setq fnum (fashl fnum)))
133 (setq fnum _f0))) ; "standard 0"
134 fnum)
139 (defun fabs (fnum) ; re-normalize after taking abs value
140 (normalize (cons (abs (car fnum)) (cdr fnum))))
275 (defun fzerop (fnum)
277 (= (car fnum) 0))
279 (defun floatp (fnum)
281 (and (consp fnum) (integerp (car fnum)) (integerp (cdr fnum))))
300 (defun ftrunc (fnum) ; truncate fractional part
302 (cond ((natnump (cdr fnum)) ; it's all integer, return number as is
303 fnum)
304 ((<= (cdr fnum) (- maxbit)) ; it's all fractional, return 0
307 (let ((mant (car fnum)) (exp (cdr fnum)))
314 (defun fint (fnum) ; truncate and convert to integer
317 (let* ((tf (ftrunc fnum)) (tint (car tf)) (texp (cdr tf)))
325 (defun float-to-string (fnum &optional sci)
328 (let* ((value (fabs fnum)) (sign (< (car fnum) 0))
332 (if (f= fnum _f0)