* Added fxbit-set?
This commit is contained in:
parent
42866c21c3
commit
edb0abd366
|
@ -2888,7 +2888,8 @@
|
|||
(library (ikarus bitwise misc)
|
||||
(export fxfirst-bit-set bitwise-first-bit-set
|
||||
fxbit-count bitwise-bit-count
|
||||
fxlength)
|
||||
fxlength
|
||||
fxbit-set?)
|
||||
(import
|
||||
(ikarus system $fx)
|
||||
(ikarus system $bignums)
|
||||
|
@ -2896,7 +2897,8 @@
|
|||
(except (ikarus)
|
||||
fxfirst-bit-set bitwise-first-bit-set
|
||||
fxbit-count bitwise-bit-count
|
||||
fxlength))
|
||||
fxlength
|
||||
fxbit-set?))
|
||||
|
||||
(module (bitwise-first-bit-set fxfirst-bit-set)
|
||||
(define (byte-first-bit-set x i)
|
||||
|
@ -2988,7 +2990,6 @@
|
|||
[(bignum? n) (bnbitcount n)]
|
||||
[else (error 'bitwise-bit-count "not an exact integer" n)])))
|
||||
|
||||
|
||||
(define (fxlength x)
|
||||
(if (fixnum? x)
|
||||
(let ([fl ($fixnum->flonum
|
||||
|
@ -3001,6 +3002,16 @@
|
|||
[else ($fx- sbe 1022)])))
|
||||
(error 'fxlength "not a fixnum" x)))
|
||||
|
||||
(define (fxbit-set? x i)
|
||||
(define who 'fxbit-set?)
|
||||
(if (fixnum? x)
|
||||
(if (fixnum? i)
|
||||
(if (and ($fx<= 0 i) ($fx< i (fixnum-width)))
|
||||
(not ($fxzero? ($fxlogand ($fxsra x i) 1)))
|
||||
(error who "index out of range" i))
|
||||
(error who "index is not a fixnum" i))
|
||||
(error who "not a fixnum" x)))
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -788,7 +788,7 @@
|
|||
[fxarithmetic-shift-right i r fx]
|
||||
[fxbit-count i r fx]
|
||||
[fxbit-field r fx]
|
||||
[fxbit-set? r fx]
|
||||
[fxbit-set? i r fx]
|
||||
[fxcopy-bit r fx]
|
||||
[fxcopy-bit-field r fx]
|
||||
[fxdiv i r fx]
|
||||
|
|
|
@ -290,7 +290,7 @@
|
|||
[fxarithmetic-shift-right C fx]
|
||||
[fxbit-count C fx]
|
||||
[fxbit-field S fx]
|
||||
[fxbit-set? S fx]
|
||||
[fxbit-set? C fx]
|
||||
[fxcopy-bit S fx]
|
||||
[fxcopy-bit-field S fx]
|
||||
[fxdiv C fx]
|
||||
|
@ -298,7 +298,7 @@
|
|||
[fxdiv0 C fx]
|
||||
[fxdiv0-and-mod0 C fx]
|
||||
[fxeven? C fx]
|
||||
[fxfirst-bit-set S fx]
|
||||
[fxfirst-bit-set C fx]
|
||||
[fxif C fx]
|
||||
[fxior C fx]
|
||||
[fxlength C fx]
|
||||
|
|
Loading…
Reference in New Issue