Ifpack Package Browser (Single Doxygen Collection)
Development
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
euclid
Hash_i_dh.h
Go to the documentation of this file.
1
/*@HEADER
2
// ***********************************************************************
3
//
4
// Ifpack: Object-Oriented Algebraic Preconditioner Package
5
// Copyright (2002) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
//@HEADER
41
*/
42
43
/* This is similar to the Hash_i_dh class (woe, for a lack
44
of templates); this this class is for hashing data
45
consisting of single, non-negative integers.
46
*/
47
48
49
#ifndef HASH_I_DH
50
#define HASH_I_DH
51
52
#include "
euclid_common.h
"
53
54
55
#ifdef __cplusplus
56
extern
"C"
57
{
58
#endif
59
60
/*
61
class methods
62
note: all parameters are inputs; the only output
63
is the "int" returned by Hash_i_dhLookup.
64
*/
65
extern
void
Hash_i_dhCreate
(
Hash_i_dh
* h,
int
size
);
66
/* For proper operation, "size," which is the minimal
67
size of the hash table, must be a power of 2.
68
Or, pass "-1" to use the default.
69
*/
70
71
72
extern
void
Hash_i_dhDestroy
(
Hash_i_dh
h);
73
extern
void
Hash_i_dhReset
(
Hash_i_dh
h);
74
75
extern
void
Hash_i_dhInsert
(
Hash_i_dh
h,
int
key,
int
data
);
76
/* throws error if <data, data> is already inserted;
77
grows hash table if out of space.
78
*/
79
80
extern
int
Hash_i_dhLookup
(
Hash_i_dh
h,
int
key);
81
/* returns "data" associated with "key,"
82
or -1 if "key" is not found.
83
*/
84
85
#ifdef __cplusplus
86
}
87
#endif
88
#endif
Hash_i_dhReset
void Hash_i_dhReset(Hash_i_dh h)
Definition:
Hash_i_dh.c:160
Hash_i_dhInsert
void Hash_i_dhInsert(Hash_i_dh h, int key, int dataIN)
Definition:
Hash_i_dh.c:206
euclid_common.h
_hash_i_dh
Definition:
Hash_i_dh.c:79
Hash_i_dhCreate
void Hash_i_dhCreate(Hash_i_dh *h, int sizeIN)
Definition:
Hash_i_dh.c:95
_hash_i_dh::size
int size
Definition:
Hash_i_dh.c:81
_hash_i_dh::data
Hash_i_Record * data
Definition:
Hash_i_dh.c:84
Hash_i_dhDestroy
void Hash_i_dhDestroy(Hash_i_dh h)
Definition:
Hash_i_dh.c:146
Hash_i_dhLookup
int Hash_i_dhLookup(Hash_i_dh h, int key)
Definition:
Hash_i_dh.c:170
Generated by
1.8.5