Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
bitvec.cpp File Reference
#include "bitvec.h"
#include <stdio.h>
#include "emalloc.h"
#include "freelist.h"
#include "tprintf.h"

Go to the source code of this file.

Functions

BIT_VECTOR ExpandBitVector (BIT_VECTOR Vector, int NewNumBits)
 
void FreeBitVector (BIT_VECTOR BitVector)
 
int hamming_distance (uinT32 *array1, uinT32 *array2, int length)
 
BIT_VECTOR NewBitVector (int NumBits)
 

Function Documentation

BIT_VECTOR ExpandBitVector ( BIT_VECTOR  Vector,
int  NewNumBits 
)

This routine uses realloc to increase the size of the specified bit vector.

Globals:

  • none
Parameters
Vectorbit vector to be expanded
NewNumBitsnew size of bit vector
Returns
New expanded bit vector.
Note
Exceptions: none
History: Fri Nov 16 10:11:16 1990, DSJ, Created.

Definition at line 48 of file bitvec.cpp.

48  {
49  return ((BIT_VECTOR) Erealloc(Vector,
50  sizeof(Vector[0]) * WordsInVectorOfSize(NewNumBits)));
51 } /* ExpandBitVector */
void * Erealloc(void *ptr, size_t size)
Definition: emalloc.cpp:70
#define WordsInVectorOfSize(NumBits)
Definition: bitvec.h:63
uinT32 * BIT_VECTOR
Definition: bitvec.h:28
void FreeBitVector ( BIT_VECTOR  BitVector)

This routine frees a bit vector. It also decrements the global counter that keeps track of the number of bit vectors allocated. If BitVector is NULL, then the count is printed to stderr.

Globals:

  • BitVectorCount count of number of bit vectors allocated
Parameters
BitVectorbit vector to be freed
Note
Exceptions: none
History: Tue Oct 23 16:46:09 1990, DSJ, Created.

Definition at line 55 of file bitvec.cpp.

55  {
70  if (BitVector) {
71  Efree(BitVector);
72  }
73 } /* FreeBitVector */
void Efree(void *ptr)
Definition: emalloc.cpp:85
int hamming_distance ( uinT32 array1,
uinT32 array2,
int  length 
)

hamming_distance(array1,array2,length) computes the hamming distance between two bit strings.

Definition at line 81 of file bitvec.cpp.

81  {
82  register uinT32 diff; /*bit difference */
83  register int dist; /*total distance */
84 
85  dist = 0;
86  for (; length > 0; length--) {
87  diff = *array1++ ^ *array2++;/*different bits */
88  while (diff) {
89  diff &= diff - 1; /*lose a bit */
90  dist++;
91  }
92  }
93  return dist; /*total distance */
94 }
unsigned int uinT32
Definition: host.h:103
BIT_VECTOR NewBitVector ( int  NumBits)

Allocate and return a new bit vector large enough to hold the specified number of bits.

Globals:

  • BitVectorCount number of bit vectors allocated
Parameters
NumBitsnumber of bits in new bit vector
Returns
New bit vector.
Note
Exceptions: none
History: Tue Oct 23 16:51:27 1990, DSJ, Created.

Definition at line 111 of file bitvec.cpp.

111  {
112  return ((BIT_VECTOR) Emalloc(sizeof(uinT32) *
113  WordsInVectorOfSize(NumBits)));
114 } /* NewBitVector */
#define WordsInVectorOfSize(NumBits)
Definition: bitvec.h:63
uinT32 * BIT_VECTOR
Definition: bitvec.h:28
void * Emalloc(size_t Size)
Definition: emalloc.cpp:35
unsigned int uinT32
Definition: host.h:103