"Fossies" - the Fresh Open Source Software Archive

Member "tesseract-ocr/doc/html/bitvec_8h.html" (26 Oct 2012, 30259 Bytes) of package /linux/misc/old/tesseract-ocr-3.02.02-doc-html.tar.gz:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the tesseract-ocr-3.02.02-doc-html.tar.gz project site itself.

Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
bitvec.h File Reference
#include "host.h"

Go to the source code of this file.

Macros

#define BITSINLONG   32
#define zero_all_bits(array, length)
#define set_all_bits(array, length)
#define copy_all_bits(source, dest, length)
#define SET_BIT(array, bit)   (array[bit/BITSINLONG]|=1<<(bit&(BITSINLONG-1)))
#define reset_bit(array, bit)   (array[bit/BITSINLONG]&=~(1<<(bit&(BITSINLONG-1))))
#define test_bit(array, bit)   (array[bit/BITSINLONG] & (1<<(bit&(BITSINLONG-1))))
#define WordsInVectorOfSize(NumBits)   (((NumBits) + BITSINLONG - 1) / BITSINLONG)

Typedefs

typedef uinT32BIT_VECTOR

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)

Macro Definition Documentation

#define BITSINLONG   32

no of bits in a long

Definition at line 27 of file bitvec.h.

#define copy_all_bits (   source,
  dest,
  length 
)
Value:
{\
register int index; /*temporary index*/\
\
for (index=0;index<length;index++)\
dest[index]=source[index]; /*copy all bits*/\
}

Definition at line 49 of file bitvec.h.

#define reset_bit (   array,
  bit 
)    (array[bit/BITSINLONG]&=~(1<<(bit&(BITSINLONG-1))))

Definition at line 59 of file bitvec.h.

#define set_all_bits (   array,
  length 
)
Value:
{\
register int index; /*temporary index*/\
\
for (index=0;index<length;index++)\
array[index]= ~0; /*set all bits*/\
}

Definition at line 41 of file bitvec.h.

#define SET_BIT (   array,
  bit 
)    (array[bit/BITSINLONG]|=1<<(bit&(BITSINLONG-1)))

Definition at line 57 of file bitvec.h.

#define test_bit (   array,
  bit 
)    (array[bit/BITSINLONG] & (1<<(bit&(BITSINLONG-1))))

Definition at line 61 of file bitvec.h.

#define WordsInVectorOfSize (   NumBits)    (((NumBits) + BITSINLONG - 1) / BITSINLONG)

Definition at line 63 of file bitvec.h.

#define zero_all_bits (   array,
  length 
)
Value:
{\
register int index; /*temporary index*/\
\
for (index=0;index<length;index++)\
array[index]=0; /*zero all bits*/\
}

Definition at line 33 of file bitvec.h.


Typedef Documentation

typedef uinT32* BIT_VECTOR

Definition at line 28 of file bitvec.h.


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.

{
return ((BIT_VECTOR) Erealloc(Vector,
sizeof(Vector[0]) * WordsInVectorOfSize(NewNumBits)));
} /* ExpandBitVector */
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.

{
if (BitVector) {
Efree(BitVector);
}
} /* FreeBitVector */
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.

{
register uinT32 diff; /*bit difference */
register int dist; /*total distance */
dist = 0;
for (; length > 0; length--) {
diff = *array1++ ^ *array2++;/*different bits */
while (diff) {
diff &= diff - 1; /*lose a bit */
dist++;
}
}
return dist; /*total distance */
}
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.

{
return ((BIT_VECTOR) Emalloc(sizeof(uinT32) *
WordsInVectorOfSize(NumBits)));
} /* NewBitVector */