- Timestamp:
- Oct 12, 2007, 2:23:29 AM (17 years ago)
- File:
-
- 1 edited
-
branches/working-0710/ccl/level-0/l0-bignum64.lisp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/working-0710/ccl/level-0/l0-bignum64.lisp
r5837 r7391 2068 2068 2069 2069 2070 (defun %bignum-random (number state) 2071 (let* ((ndigits (%bignum-length number)) 2072 (sign-index (1- ndigits))) 2073 (declare (fixnum ndigits sign-index)) 2074 (with-bignum-buffers ((bignum ndigits)) 2075 (dotimes (i sign-index) 2076 (setf (bignum-ref bignum i) (%next-random-seed state))) 2077 (setf (bignum-ref bignum sign-index) 2078 (logand #x7fffffff (the (unsigned-byte 32) 2079 (%next-random-seed state)))) 2080 (let* ((result (mod bignum number))) 2081 (if (eq result bignum) 2082 (copy-uvector bignum) 2083 result))))) 2084 2085 2086 2070 2087 (defun logbitp (index integer) 2071 2088 "Predicate returns T if bit index of integer is a 1."
Note:
See TracChangeset
for help on using the changeset viewer.
