Function: calcFunc-vunpack
calcFunc-vunpack is an autoloaded and byte-compiled function defined
in calc-vec.el.gz.
Signature
(calcFunc-vunpack A &optional W)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-vec.el.gz
(defun calcFunc-vunpack (a &optional w)
(or (math-num-integerp a) (math-reject-arg a 'integerp))
(if w (setq a (math-clip a w)))
(if (math-messy-integerp a) (setq a (math-trunc a)))
(let* ((calc-number-radix 2)
(calc-twos-complement-mode nil)
(neg (math-negp a))
(aa (if neg (math-sub -1 a) a))
(str (if (eq aa 0)
""
(math-format-binary aa)))
(zero (if neg ?1 ?0))
(one (if neg ?0 ?1))
(len (length str))
(vec (list 'vec))
(pos (1- len)) pos2)
(while (>= pos 0)
(if (eq (aref str pos) zero)
(setq pos (1- pos))
(setq pos2 pos)
(while (and (>= pos 0) (eq (aref str pos) one))
(setq pos (1- pos)))
(setq vec (cons (if (= pos (1- pos2))
(- len pos2 1)
(list 'intv 3 (- len pos2 1) (- len pos 2)))
vec))))
(if neg
(setq vec (cons (list 'intv 2 len '(var inf var-inf)) vec)))
(math-clean-set (nreverse vec))))