Go to the source code of this file.
|  | 
| #define | MAKEU64(a,  b)   ((UINT64) (((UINT32) (a)) | ((UINT64) ((UINT32) (b))) << 32)) | 
|  | Make 64 bit unsigned integer from two 32 bit unsigned integers.  More... 
 | 
|  | 
|  | 
| void | SetBit (UINT32 *stream, UINT32 pos) | 
|  | 
| void | ClearBit (UINT32 *stream, UINT32 pos) | 
|  | 
| bool | GetBit (UINT32 *stream, UINT32 pos) | 
|  | 
| bool | CompareBitBlock (UINT32 *stream, UINT32 pos, UINT32 k, UINT32 val) | 
|  | 
| void | SetValueBlock (UINT32 *stream, UINT32 pos, UINT32 val, UINT32 k) | 
|  | 
| UINT32 | GetValueBlock (UINT32 *stream, UINT32 pos, UINT32 k) | 
|  | 
| void | ClearBitBlock (UINT32 *stream, UINT32 pos, UINT32 len) | 
|  | 
| void | SetBitBlock (UINT32 *stream, UINT32 pos, UINT32 len) | 
|  | 
| UINT32 | SeekBitRange (UINT32 *stream, UINT32 pos, UINT32 len) | 
|  | 
| UINT32 | SeekBit1Range (UINT32 *stream, UINT32 pos, UINT32 len) | 
|  | 
| UINT32 | AlignWordPos (UINT32 pos) | 
|  | 
| UINT32 | NumberOfWords (UINT32 pos) | 
|  | 
|  | 
| static const UINT32 | Filled = 0xFFFFFFFF | 
|  | 
◆ MAKEU64
      
        
          | #define MAKEU64 | ( |  | a, | 
        
          |  |  |  | b | 
        
          |  | ) |  | ((UINT64) (((UINT32) (a)) | ((UINT64) ((UINT32) (b))) << 32)) | 
      
 
Make 64 bit unsigned integer from two 32 bit unsigned integers. 
Definition at line 41 of file BitStream.h.
 
 
◆ AlignWordPos()
  
  | 
        
          | UINT32 AlignWordPos | ( | UINT32 | pos | ) |  |  | inline | 
 
Compute bit position of the next 32-bit word 
- Parameters
- 
  
    | pos | current bit stream position |  
 
- Returns
- bit position of next 32-bit word 
Definition at line 328 of file BitStream.h.
 
 
◆ ClearBit()
  
  | 
        
          | void ClearBit | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos |  
          |  | ) |  |  |  | inline | 
 
Set one bit of a bit stream to 0 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  
 
Definition at line 70 of file BitStream.h.
 
 
◆ ClearBitBlock()
  
  | 
        
          | void ClearBitBlock | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | len |  
          |  | ) |  |  |  | inline | 
 
Clear block of size at least len at position pos in stream 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | len | Number of bits set to 0 |  
 
Definition at line 169 of file BitStream.h.
  172         const UINT32 iLastInt = (pos + len - 1) >> 
WordWidthLog;
   177         if (iFirstInt == iLastInt) {
   178                 stream[iFirstInt] &= ~(startMask );
   180                 stream[iFirstInt] &= ~startMask;
   181                 for (UINT32 i = iFirstInt + 1; i <= iLastInt; i++) { 
 
static const UINT32 Filled
 
 
◆ CompareBitBlock()
  
  | 
        
          | bool CompareBitBlock | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | k, |  
          |  |  | UINT32 | val |  
          |  | ) |  |  |  | inline | 
 
Compare k-bit binary representation of stream at position pos with val 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | k | Number of bits to compare |  | val | Value to compare with |  
 
- Returns
- true if equal 
Definition at line 91 of file BitStream.h.
   94         ASSERT(iLoInt <= iHiInt);
    97         if (iLoInt == iHiInt) {
   101                 return (stream[iLoInt] & val) == val;
   104                 UINT64 v1 = 
MAKEU64(stream[iLoInt], stream[iHiInt]);
   105                 UINT64 v2 = UINT64(val & mask) << (pos%
WordWidth);
   106                 return (v1 & v2) == v2;
 #define MAKEU64(a, b)
Make 64 bit unsigned integer from two 32 bit unsigned integers.
static const UINT32 Filled
 
 
◆ GetBit()
  
  | 
        
          | bool GetBit | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos |  
          |  | ) |  |  |  | inline | 
 
Return one bit of a bit stream 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  
 
- Returns
- bit at position pos of bit stream stream 
Definition at line 79 of file BitStream.h.
 
 
◆ GetValueBlock()
  
  | 
        
          | UINT32 GetValueBlock | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | k |  
          |  | ) |  |  |  | inline | 
 
Read k-bit number from stream at position pos 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | k | Number of bits to read: 1 <= k <= 32 |  
 
Definition at line 142 of file BitStream.h.
  143         UINT32 count, hiCount;
   149         if (iLoInt == iHiInt) {
   151                 count = stream[iLoInt] & (loMask & hiMask);
   155                 count = stream[iLoInt] & loMask;
   157                 hiCount = stream[iHiInt] & hiMask;
 
static const UINT32 Filled
 
 
◆ NumberOfWords()
  
  | 
        
          | UINT32 NumberOfWords | ( | UINT32 | pos | ) |  |  | inline | 
 
Compute number of the 32-bit words 
- Parameters
- 
  
    | pos | Current bit stream position |  
 
- Returns
- Number of 32-bit words 
Definition at line 337 of file BitStream.h.
 
 
◆ SeekBit1Range()
  
  | 
        
          | UINT32 SeekBit1Range | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | len |  
          |  | ) |  |  |  | inline | 
 
Returns the distance to the next 0 in stream at position pos. If no 0 is found within len bits, then len is returned. 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | len | size of search area (in bits) return The distance to the next 0 in stream at position pos |  
 
Definition at line 249 of file BitStream.h.
  254         while (((*word & testMask) != 0) && (count < len)) {
   258                         word++; testMask = 1;
 
static const UINT32 Filled
 
 
◆ SeekBitRange()
  
  | 
        
          | UINT32 SeekBitRange | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | len |  
          |  | ) |  |  |  | inline | 
 
Returns the distance to the next 1 in stream at position pos. If no 1 is found within len bits, then len is returned. 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | len | size of search area (in bits) return The distance to the next 1 in stream at position pos |  
 
Definition at line 220 of file BitStream.h.
  225         while (((*word & testMask) == 0) && (count < len)) {
   229                         word++; testMask = 1;
   232                         while ((count + 
WordWidth <= len) && (*word == 0)) {
 
 
 
◆ SetBit()
  
  | 
        
          | void SetBit | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos |  
          |  | ) |  |  |  | inline | 
 
Set one bit of a bit stream to 1 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  
 
Definition at line 62 of file BitStream.h.
 
 
◆ SetBitBlock()
  
  | 
        
          | void SetBitBlock | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | len |  
          |  | ) |  |  |  | inline | 
 
Set block of size at least len at position pos in stream 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | len | Number of bits set to 1 |  
 
Definition at line 193 of file BitStream.h.
  197         const UINT32 iLastInt = (pos + len - 1) >> 
WordWidthLog;
   202         if (iFirstInt == iLastInt) {
   203                 stream[iFirstInt] |= (startMask );
   205                 stream[iFirstInt] |= startMask;
   206                 for (UINT32 i = iFirstInt + 1; i <= iLastInt; i++) { 
 
static const UINT32 Filled
 
 
◆ SetValueBlock()
  
  | 
        
          | void SetValueBlock | ( | UINT32 * | stream, |  
          |  |  | UINT32 | pos, |  
          |  |  | UINT32 | val, |  
          |  |  | UINT32 | k |  
          |  | ) |  |  |  | inline | 
 
Store k-bit binary representation of val in stream at position pos 
- Parameters
- 
  
    | stream | A bit stream stored in array of unsigned integers |  | pos | A valid zero-based position in the bit stream |  | val | Value to store in stream at position pos |  | k | Number of bits of integer representation of val |  
 
Definition at line 116 of file BitStream.h.
  120         ASSERT(iLoInt <= iHiInt);
   121         const UINT32 loMask = 
Filled << offset;
   124         if (iLoInt == iHiInt) {
   126                 stream[iLoInt] &= ~(loMask & hiMask); 
   127                 stream[iLoInt] |= val << offset; 
   130                 stream[iLoInt] &= ~loMask; 
   131                 stream[iLoInt] |= val << offset; 
   132                 stream[iHiInt] &= ~hiMask; 
   133                 stream[iHiInt] |= val >> (
WordWidth - offset); 
 
static const UINT32 Filled
 
 
◆ Filled
  
  | 
        
          | const UINT32 Filled = 0xFFFFFFFF |  | static |