1797 |
;;; |
;;; |
1798 |
|
|
1799 |
;;; |
;;; |
1800 |
|
;;; integer-length |
1801 |
|
;;; |
1802 |
|
|
1803 |
|
(with-test-prefix "integer-length" |
1804 |
|
|
1805 |
|
(with-test-prefix "-2^i, ...11100..00" |
1806 |
|
(do ((n -1 (ash n 1)) |
1807 |
|
(i 0 (1+ i))) |
1808 |
|
((> i 256)) |
1809 |
|
(pass-if (list n "expect" i) |
1810 |
|
(= i (integer-length n))))) |
1811 |
|
|
1812 |
|
(with-test-prefix "-2^i+1 ...11100..01" |
1813 |
|
(do ((n -3 (logxor 3 (ash n 1))) |
1814 |
|
(i 2 (1+ i))) |
1815 |
|
((> i 256)) |
1816 |
|
(pass-if n |
1817 |
|
(= i (integer-length n))))) |
1818 |
|
|
1819 |
|
(with-test-prefix "-2^i-1 ...111011..11" |
1820 |
|
(do ((n -2 (1+ (ash n 1))) |
1821 |
|
(i 1 (1+ i))) |
1822 |
|
((> i 256)) |
1823 |
|
(pass-if n |
1824 |
|
(= i (integer-length n)))))) |
1825 |
|
|
1826 |
|
;;; |
1827 |
;;; logcount |
;;; logcount |
1828 |
;;; |
;;; |
1829 |
|
|