Lines Matching refs:bitwise

3 @subsubsection[:tag "rnrs.arithmetic.bitwise.6"]{Exact bitwise arithmetic}
5 This section describes the @code{(rnrs arithmetic bitwise (6))}library.
6 The exact bitwise arithmetic provides generic operations on exact integer
10 @define[Library]{@name{(rnrs arithmetic bitwise (6))}}
11 @desc{[R6RS] This library exports procedures for exact bitwise arithmetic
14 @define[Function]{@name{bitwise-not} @args{ei}}
20 @define[Function]{@name{bitwise-and} @args{ei1 @dots{}}}
21 @define[Function]{@name{bitwise-ior} @args{ei1 @dots{}}}
22 @define[Function]{@name{bitwise-xor} @args{ei1 @dots{}}}
30 @define[Function]{@name{bitwise-if} @args{ei1 ei2 ei3}}
38 (bitwise-ior (bitwise-and @var{ei1} @var{ei2})
39 (bitwise-and (bitwise-not @var{ei1}) @var{ei3}))
43 @define[Function]{@name{bitwise-bit-count} @args{ei}}
48 @snipet{(bitwise-not (bitwise-bit-count (bitwise-not @var{ei})))}
51 @define[Function]{@name{bitwise-length} @args{ei}}
54 @code{(bitwise-not @var{ei})} if it is negative, which is the exact integer
60 (bitwise-not @var{ei})
62 (bitwise-arithmetic-shift bits -1)))
68 @define[Function]{@name{bitwise-first-bit-set} @args{ei}}
72 @define[Function]{@name{bitwise-bit-set?} @args{ei1 ei2}}
73 @desc{[R6RS] @var{Ei2} must be non-negative. The @code{bitwise-bit-set?}
80 (bitwise-and
81 (bitwise-arithmetic-shift-left 1 @var{ei2})
86 @define[Function]{@name{bitwise-copy-bit} @args{ei1 ei2 ei3}}
88 or 1. The @code{bitwise-copy-bit} procedure returns the result of replacing the
93 (let* ((mask (bitwise-arithmetic-shift-left 1 @var{ei2})))
94 (bitwise-if mask
95 (bitwise-arithmetic-shift-left @var{ei3} @var{ei2})
100 @define[Function]{@name{bitwise-bit-field} @args{ei1 ei2 ei3}}
102 less than or equal to @var{ei3}. The @code{bitwise-bit-field} procedure returns
108 (bitwise-not
109 (bitwise-arithmetic-shift-left -1 @var{ei3}))))
110 (bitwise-arithmetic-shift-right
111 (bitwise-and @var{ei1} mask)
116 @define[Function]{@name{bitwise-copy-bit-field} @args{ei1 ei2 ei3 ei4}}
118 be less than or equal to @var{ei3}. The @code{bitwise-copy-bit-field} procedure
129 (bitwise-arithmetic-shift-left -1 start))
131 (bitwise-not
132 (bitwise-arithmetic-shift-left -1 end)))
133 (mask (bitwise-and mask1 mask2)))
134 (bitwise-if mask
135 (bitwise-arithmetic-shift-left from
141 @define[Function]{@name{bitwise-arithmetic-shift} @args{ei1 ei2}}
149 @define[Function]{@name{bitwise-arithmetic-shift-left} @args{ei1 ei2}}
150 @define[Function]{@name{bitwise-arithmetic-shift-right} @args{ei1 ei2}}
152 @code{bitwise-arithmetic-shift-left} procedure returns the same result as
153 @code{bitwise-arithmetic-shift}, and
155 @snipet{(bitwise-arithmetic-shift-right @var{ei1} @var{ei2})}
159 @snipet{(bitwise-arithmetic-shift @var{ei1} (- @var{ei2}))}.
164 @define[Function]{@name{bitwise-rotate-bit-field} @args{ei1 ei2 ei3 ei4}}
167 The @code{bitwise-rotate-bit-field} procedure returns the result of cyclically
181 (bitwise-bit-field n start end))
182 (field1 (bitwise-arithmetic-shift-left
184 (field2 (bitwise-arithmetic-shift-right
187 (field (bitwise-ior field1 field2)))
188 (bitwise-copy-bit-field n start end field))
195 @define[Function]{@name{bitwise-reverse-bit-field} @args{ei1 ei2 ei3}}
197 less than or equal to @var{ei3}. The @code{bitwise-reverse-bit-field} procedure