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
utility.h
Go to the documentation of this file.
1
/* =============================================================================
2
*
3
* utility.h
4
* -- Collection of utility macros
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 UTILITY_H
74
#define UTILITY_H
75
76
77
#ifdef SIMULATOR
78
# undef MAX
79
# undef MIN
80
#endif
81
82
83
#define MAX(a,b) \
84
({ \
85
__typeof(a) _a = (a); \
86
__typeof(b) _b = (b); \
87
(_a > _b) ? (_a) : (_b); \
88
})
89
90
#define MIN(a,b) \
91
({ \
92
__typeof(a) _a = (a); \
93
__typeof(b) _b = (b); \
94
(_a < _b) ? (_a) : (_b); \
95
})
96
97
#define DIVIDE_AND_ROUND_UP(a,b) \
98
({ \
99
__typeof(a) _a = (a); \
100
__typeof(b) _b = (b); \
101
(_a / _b) + (((_a % _b) > 0) ? (1) : (0)); \
102
})
103
104
105
#endif
/* UTILITY_H */
106
107
108
/* =============================================================================
109
*
110
* End of utility.h
111
*
112
* =============================================================================
113
*/
114
rstm
rstm-dev
stamp-0.9.10
lib
utility.h
Generated on Thu Sep 8 2016 13:28:39 for tlds by
1.8.6