tlds
Transactional Operations for Linked Data Structures
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
set.h
Go to the documentation of this file.
1
/* =============================================================================
2
*
3
* set.h
4
* -- Utility defines to use various data structures as set
5
*
6
* =============================================================================
7
*
8
* Copyright (C) Stanford University, 2006. All Rights Reserved.
9
* Author: Chi Cao Minh
10
*
11
* =============================================================================
12
*
13
* For the license of bayes/sort.h and bayes/sort.c, please see the header
14
* of the files.
15
*
16
* ------------------------------------------------------------------------
17
*
18
* For the license of kmeans, please see kmeans/LICENSE.kmeans
19
*
20
* ------------------------------------------------------------------------
21
*
22
* For the license of ssca2, please see ssca2/COPYRIGHT
23
*
24
* ------------------------------------------------------------------------
25
*
26
* For the license of lib/mt19937ar.c and lib/mt19937ar.h, please see the
27
* header of the files.
28
*
29
* ------------------------------------------------------------------------
30
*
31
* For the license of lib/rbtree.h and lib/rbtree.c, please see
32
* lib/LEGALNOTICE.rbtree and lib/LICENSE.rbtree
33
*
34
* ------------------------------------------------------------------------
35
*
36
* Unless otherwise noted, the following license applies to STAMP files:
37
*
38
* Copyright (c) 2007, Stanford University
39
* All rights reserved.
40
*
41
* Redistribution and use in source and binary forms, with or without
42
* modification, are permitted provided that the following conditions are
43
* met:
44
*
45
* * Redistributions of source code must retain the above copyright
46
* notice, this list of conditions and the following disclaimer.
47
*
48
* * Redistributions in binary form must reproduce the above copyright
49
* notice, this list of conditions and the following disclaimer in
50
* the documentation and/or other materials provided with the
51
* distribution.
52
*
53
* * Neither the name of Stanford University nor the names of its
54
* contributors may be used to endorse or promote products derived
55
* from this software without specific prior written permission.
56
*
57
* THIS SOFTWARE IS PROVIDED BY STANFORD UNIVERSITY ``AS IS'' AND ANY
58
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
59
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
60
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL STANFORD UNIVERSITY BE LIABLE
61
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
62
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
63
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
64
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
65
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
66
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
67
* THE POSSIBILITY OF SUCH DAMAGE.
68
*
69
* =============================================================================
70
*/
71
72
73
#ifndef SET_H
74
#define SET_H 1
75
76
77
#include <stdlib.h>
78
#include "
tm.h
"
79
#include "
types.h
"
80
81
82
#if defined(SET_USE_RBTREE)
83
84
# include "
rbtree.h
"
85
86
# define SET_T rbtree_t
87
# define SET_ALLOC(hash, cmp) rbtree_alloc(cmp)
88
# define SET_FREE(map) rbtree_free(map)
89
# define TMSET_ALLOC(hash, cmp) TMrbtree_alloc(TM_ARG cmp)
90
# define TMSET_FREE(map) TMrbtree_free(map)
91
92
# define SET_CONTAINS(map, key) rbtree_contains(map, (void*)(key))
93
# define SET_INSERT(map, key) rbtree_insert(map, (void*)(key), NULL)
94
# define SET_REMOVE(map, key) rbtree_delete(map, (void*)(key))
95
96
# define TMSET_CONTAINS(map, key) TMRBTREE_CONTAINS(map, (void*)(key))
97
# define TMSET_INSERT(map, key) TMRBTREE_INSERT(map, (void*)(key), NULL)
98
# define TMSET_REMOVE(map, key) TMRBTREE_DELETE(map, (void*)(key))
99
100
#else
101
102
# error "SET type is not specified"
103
104
#endif
105
106
107
#endif
/* SET_H */
108
109
110
/* =============================================================================
111
*
112
* End of set.h
113
*
114
* =============================================================================
115
*/
types.h
rbtree.h
tm.h
rstm
rstm-dev
stamp-0.9.10
lib
set.h
Generated on Thu Sep 8 2016 13:28:39 for tlds by
1.8.6