Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

hash_table.c File Reference

#include <volume_io/internal_volume_io.h>
#include <bicpl/data_structures.h>

Include dependency graph for hash_table.c:

Include dependency graph

Go to the source code of this file.

Defines

#define HASH_FUNCTION_CONSTANT   0.6180339887498948482

Functions

public void initialize_hash_table (hash_table_struct *hash_table, int size, int data_size, Real enlarge_threshold, Real new_density)
private void delete_hash_table_list (hash_table_struct *hash_table)
public void delete_hash_table (hash_table_struct *hash_table)
private int hash_function (hash_table_struct *hash_table, int key)
private hash_entry_struct ** lookup (hash_table_struct *hash_table, int key)
public void insert_in_hash_table (hash_table_struct *hash_table, int key, void *data_ptr)
public BOOLEAN lookup_in_hash_table (hash_table_struct *hash_table, int key, void *data_ptr)
public BOOLEAN remove_from_hash_table (hash_table_struct *hash_table, int key, void *data_ptr)
private void move_hash_entries_to_new_table (hash_table_struct *dest, hash_table_struct *src)
public void increase_hash_table_size (hash_table_struct *hash_table, int new_size)
public void initialize_hash_pointer (hash_table_pointer *ptr)
public BOOLEAN get_next_hash_entry (hash_table_struct *hash_table, hash_table_pointer *ptr, void *data_ptr)


Define Documentation

#define HASH_FUNCTION_CONSTANT   0.6180339887498948482
 

Definition at line 22 of file hash_table.c.

Referenced by hash_function().


Function Documentation

public void delete_hash_table hash_table_struct hash_table  ) 
 

Definition at line 95 of file hash_table.c.

References delete_hash_table_list(), hash_entry_struct::next, hash_table_struct::size, and hash_table_struct::table.

Referenced by delete_lookup_volume_coeficients().

private void delete_hash_table_list hash_table_struct hash_table  ) 
 

Definition at line 75 of file hash_table.c.

References hash_table_struct::size, and hash_table_struct::table.

Referenced by delete_hash_table(), and increase_hash_table_size().

public BOOLEAN get_next_hash_entry hash_table_struct hash_table,
hash_table_pointer ptr,
void *  data_ptr
 

Definition at line 440 of file hash_table.c.

References hash_table_pointer::current_entry, hash_table_pointer::current_index, hash_entry_struct::data, hash_table_struct::data_size, hash_entry_struct::next, hash_table_struct::size, and hash_table_struct::table.

private int hash_function hash_table_struct hash_table,
int  key
 

Definition at line 131 of file hash_table.c.

References HASH_FUNCTION_CONSTANT, and hash_table_struct::size.

Referenced by lookup(), and move_hash_entries_to_new_table().

public void increase_hash_table_size hash_table_struct hash_table,
int  new_size
 

Definition at line 387 of file hash_table.c.

References hash_table_struct::data_size, delete_hash_table_list(), hash_table_struct::enlarge_threshold, initialize_hash_table(), move_hash_entries_to_new_table(), and hash_table_struct::new_density.

Referenced by insert_in_hash_table().

public void initialize_hash_pointer hash_table_pointer ptr  ) 
 

Definition at line 418 of file hash_table.c.

References hash_table_pointer::current_entry, and hash_table_pointer::current_index.

public void initialize_hash_table hash_table_struct hash_table,
int  size,
int  data_size,
Real  enlarge_threshold,
Real  new_density
 

Definition at line 41 of file hash_table.c.

References hash_table_struct::data_size, hash_table_struct::enlarge_threshold, hash_table_struct::n_entries, hash_table_struct::new_density, hash_table_struct::size, and hash_table_struct::table.

Referenced by increase_hash_table_size(), and lookup_volume_coeficients().

public void insert_in_hash_table hash_table_struct hash_table,
int  key,
void *  data_ptr
 

Definition at line 192 of file hash_table.c.

References hash_entry_struct::data, hash_table_struct::data_size, hash_table_struct::enlarge_threshold, increase_hash_table_size(), hash_entry_struct::key, lookup(), hash_table_struct::n_entries, hash_table_struct::new_density, hash_entry_struct::next, and hash_table_struct::size.

Referenced by lookup_volume_coeficients().

private hash_entry_struct** lookup hash_table_struct hash_table,
int  key
 

Definition at line 160 of file hash_table.c.

References hash_function(), hash_entry_struct::key, hash_entry_struct::next, and hash_table_struct::table.

Referenced by insert_in_hash2_table(), insert_in_hash_table(), lookup_in_hash2_table(), lookup_in_hash_table(), remove_from_hash2_table(), and remove_from_hash_table().

public BOOLEAN lookup_in_hash_table hash_table_struct hash_table,
int  key,
void *  data_ptr
 

Definition at line 248 of file hash_table.c.

References hash_entry_struct::data, hash_table_struct::data_size, FALSE, lookup(), and TRUE.

Referenced by lookup_volume_coeficients().

private void move_hash_entries_to_new_table hash_table_struct dest,
hash_table_struct src
 

Definition at line 344 of file hash_table.c.

References hash_function(), hash_entry_struct::key, hash_table_struct::n_entries, hash_entry_struct::next, hash_table_struct::size, and hash_table_struct::table.

Referenced by increase_hash_table_size().

public BOOLEAN remove_from_hash_table hash_table_struct hash_table,
int  key,
void *  data_ptr
 

Definition at line 294 of file hash_table.c.

References hash_entry_struct::data, hash_table_struct::data_size, FALSE, lookup(), hash_table_struct::n_entries, hash_entry_struct::next, and TRUE.

Referenced by lookup_volume_coeficients().


Generated on Wed Jul 28 09:11:06 2004 for BICPL by doxygen 1.3.7