Main Page | Modules | Class List | Directories | File List | Class Members | File Members

bit_array.h File Reference

#include <stdio.h>
#include <gandalf/common/misc_defs.h>
#include <gandalf/common/allocate.h>
#include <gandalf/common/memory_stack.h>

Go to the source code of this file.

Classes

struct  Gan_BitArray
 1-dimensional array of bits More...

Defines

#define GAN_BITWORD_SIZE   32
#define GAN_BITWORD_FULL   (gan_uint32) GAN_UINT32_MAX
#define GAN_MSB_SET   (gan_uint32) (1<<31)
#define GAN_LSB_SET   (gan_uint32) 1

Typedefs

typedef gan_uint32 Gan_BitWord
 32-bit word
typedef Gan_BitArray Gan_BitArray
 1-dimensional array of bits

Enumerations

enum  Gan_Alignment { GAN_WORD_ALIGNMENT, GAN_BYTE_ALIGNMENT, GAN_BIT_ALIGNMENT }
 Alignment options when computing bounds of a bit array.

Functions

Gan_BitArraygan_bit_array_form_data (Gan_BitArray *ba, Gan_BitWord *data, unsigned data_words, unsigned int no_bits)
 Form new bit array using pre-allocated data array.
Gan_BitArraygan_bit_array_ms_form (Gan_MemoryStack *ms, Gan_BitArray *ba, unsigned int no_bits)
 Form new bit array using stack memory style memory allocation.
Gan_Bool gan_bit_array_set_size (Gan_BitArray *ba, unsigned int no_bits)
 Reset size of existing bit array.
void gan_bit_array_free (Gan_BitArray *ba)
 Free bit array.
void gan_bit_array_free_va (Gan_BitArray *ba,...)
 Free NULL terminated list of bit arrays.
Gan_Bool gan_bit_array_invert_i (Gan_BitArray *ba)
 Invert all the bits in a bit array.
Gan_BitArraygan_bit_array_invert_s (const Gan_BitArray *ba)
 Invert all the bits in a bit array.
Gan_Bool gan_bit_array_and_i (Gan_BitArray *ba_dst, const Gan_BitArray *ba)
 Perform binary AND operation between two bit arrays.
Gan_Bool gan_bit_array_nand_i (Gan_BitArray *ba_dst, const Gan_BitArray *ba)
 Perform binary NAND (not and) operation between bit arrays.
Gan_Bool gan_bit_array_or_i (Gan_BitArray *ba_dst, const Gan_BitArray *ba)
Gan_Bool gan_bit_array_eor_i (Gan_BitArray *ba_dst, const Gan_BitArray *ba)
Gan_Bool gan_bit_array_andnot_i (Gan_BitArray *ba_dst, const Gan_BitArray *ba)
 Perform binary AND-NOT operation between bit arrays.
Gan_BitArraygan_bit_array_and_s (const Gan_BitArray *ba1, const Gan_BitArray *ba2)
Gan_BitArraygan_bit_array_nand_s (const Gan_BitArray *ba1, const Gan_BitArray *ba2)
Gan_BitArraygan_bit_array_or_s (const Gan_BitArray *ba1, const Gan_BitArray *ba2)
Gan_BitArraygan_bit_array_eor_s (const Gan_BitArray *ba1, const Gan_BitArray *ba2)
Gan_BitArraygan_bit_array_andnot_s (const Gan_BitArray *ba1, const Gan_BitArray *ba2)
Gan_Bool gan_bit_array_insert (const Gan_BitArray *src, unsigned int offset_src, Gan_BitArray *dst, unsigned int offset_dst, unsigned int no_bits)
 Insert part of one bit array in another.
Gan_Bool gan_bit_array_fill (Gan_BitArray *ba, Gan_Bool val)
 Set all bits in a bit array.
Gan_Bool gan_bit_array_copy_q (const Gan_BitArray *ba_source, Gan_BitArray *ba_dest)
 Copy one bit array to another.
Gan_BitArraygan_bit_array_copy_s (const Gan_BitArray *ba_source)
 Return a copy of a bit array.
Gan_BitArraygan_bit_array_expand_q (const Gan_BitArray *ba, const Gan_BitArray *ref_ba, Gan_BitArray *exp_ba)
 Expand bit array by padding it with zeros in a reference bit array.
Gan_BitArraygan_bit_array_expand_s (const Gan_BitArray *ba, const Gan_BitArray *ref_ba)
 Expand bit array by padding it with zeros in a reference bit array.
Gan_Bool gan_bit_array_dilate_q (Gan_BitArray *ba_source, unsigned int no_bits, Gan_BitArray *ba_dest)
 Dilate bit array and write result into another.
Gan_BitArraygan_bit_array_dilate_s (Gan_BitArray *ba, unsigned int no_bits)
 Dilate bit array in-place.
Gan_Bool gan_bit_array_shift_q (Gan_BitArray *ba_source, int no_bits, Gan_BitArray *ba_dest)
 Shift bit array and write result into another.
Gan_BitArraygan_bit_array_shift_s (Gan_BitArray *ba, int no_bits)
 Shift bit array in-place.
unsigned int gan_bit_array_get_first_set_bit (Gan_BitArray *ba)
 Get the first set bit in a bit array.
Gan_Bool gan_bit_array_fill_part (Gan_BitArray *ba, unsigned int offset, unsigned int no_bits, Gan_Bool val)
 Fill part of a bit array.
Gan_Bool gan_bit_array_invert_part (Gan_BitArray *ba, unsigned int offset, unsigned int no_bits)
 Invert part of a bit array.
void gan_bit_array_fprint (FILE *fp, const Gan_BitArray *ba, int indent)
 Print bit array in ASCII to file.
unsigned GAN_NO_BITWORDS (unsigned no_bits)
 Macro: Number of bit-words given number of bits.
Gan_BitArraygan_bit_array_form (Gan_BitArray *ba, unsigned int no_bits)
 Macro: Form bit array.
Gan_BitArraygan_bit_array_alloc (unsigned int no_bits)
 Macro: Allocate new bit array.
Gan_BitArraygan_bit_array_ms_malloc (unsigned int no_bits)
 Macro: Allocate new bit array using stack-style memory allocation.
Gan_Bool gan_bit_array_print (const Gan_BitArray *bit_array, int indent)
 Macro: Print bit array in ASCII to standard output.
Gan_Bool gan_bit_array_set_bit (Gan_BitArray *bit_array, int pos)
 Macro: Set bit in bit list to 1 (true).
Gan_Bool gan_bit_array_get_bit (const Gan_BitArray *bit_array, int pos)
 Macro: get bit of bit array.
Gan_Bool gan_bit_array_clear_bit (Gan_BitArray *bit_array, int pos)
 Macro: clear bit in bit list to 0 (false).
Gan_Bool gan_bit_array_twiddle_bit (Gan_BitArray *bit_array, int pos, Gan_Bool val)
 Macro: set/clear bit depending on Boolean argument.
Gan_Bool gan_bit_array_invert_bit (Gan_BitArray *bit_array, int pos)
 Macro: Invert bit.
Gan_Boolgan_bit_array_dilate_i (Gan_BitArray *ba, unsigned int no_pixels)
 Macro: Dilate bit array.


Detailed Description

Module: Binary array module

Part of: Gandalf Library

Version:
1.30
Date:
2005/02/10 20:19:17
Author:
pm
Copyright: (c) 2000 Imagineer Software Limited
Generated on Sat May 21 23:52:49 2005 by  doxygen 1.4.3