A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
int64x64.h
Go to the documentation of this file.
1
#ifndef INT64X64_H
2
#define INT64X64_H
3
4
#include "ns3/core-config.h"
5
6
#if defined (INT64X64_USE_DOUBLE) || defined (PYTHON_SCAN)
7
#include "
int64x64-double.h
"
8
#elif defined (INT64X64_USE_CAIRO)
9
#include "
int64x64-cairo.h
"
10
#elif defined (INT64X64_USE_128)
11
#include "
int64x64-128.h
"
12
#endif
13
14
#include <iostream>
15
16
namespace
ns3 {
17
18
#define INT64X64_OP_ARITH_TYPE(op,type) \
19
inline int64x64_t operator op (const int64x64_t &lhs, const type rhs) \
20
{ \
21
int64x64_t tmp = lhs; \
22
tmp op ## = int64x64_t (rhs); \
23
return tmp; \
24
} \
25
inline int64x64_t operator op (const type lhs, const int64x64_t &rhs) \
26
{ \
27
int64x64_t tmp = int64x64_t (lhs); \
28
tmp op ## = rhs; \
29
return tmp; \
30
}
31
32
#define INT64X64_OP_ARITH(op) \
33
inline int64x64_t operator op (const int64x64_t &lhs, const int64x64_t &rhs) \
34
{ \
35
int64x64_t tmp = lhs; \
36
tmp op ## = rhs; \
37
return tmp; \
38
} \
39
INT64X64_OP_ARITH_TYPE (op,double) \
40
INT64X64_OP_ARITH_TYPE (op,signed char) \
41
INT64X64_OP_ARITH_TYPE (op,signed short) \
42
INT64X64_OP_ARITH_TYPE (op,signed int) \
43
INT64X64_OP_ARITH_TYPE (op,signed long int) \
44
INT64X64_OP_ARITH_TYPE (op,signed long long int) \
45
INT64X64_OP_ARITH_TYPE (op,unsigned char) \
46
INT64X64_OP_ARITH_TYPE (op,unsigned short) \
47
INT64X64_OP_ARITH_TYPE (op,unsigned int) \
48
INT64X64_OP_ARITH_TYPE (op,unsigned long int) \
49
INT64X64_OP_ARITH_TYPE (op,unsigned long long int)
50
51
#define INT64X64_OP_CMP_TYPE(op,type) \
52
inline bool operator op (const int64x64_t &lhs, const type &rhs) \
53
{ \
54
return lhs op int64x64_t (rhs); \
55
} \
56
inline bool operator op (const type &lhs, const int64x64_t &rhs) \
57
{ \
58
return int64x64_t (lhs) op rhs; \
59
}
60
61
#define INT64X64_OP_CMP(op) \
62
INT64X64_OP_CMP_TYPE (op,double) \
63
INT64X64_OP_CMP_TYPE (op,signed int) \
64
INT64X64_OP_CMP_TYPE (op,signed long int) \
65
INT64X64_OP_CMP_TYPE (op,signed long long int) \
66
INT64X64_OP_CMP_TYPE (op,unsigned int) \
67
INT64X64_OP_CMP_TYPE (op,unsigned long int) \
68
INT64X64_OP_CMP_TYPE (op,unsigned long long int)
69
70
71
INT64X64_OP_ARITH
(+)
72
INT64X64_OP_ARITH
(-)
73
INT64X64_OP_ARITH
(*)
74
INT64X64_OP_ARITH
(/)
75
INT64X64_OP_CMP
(==)
76
INT64X64_OP_CMP
(!=)
77
INT64X64_OP_CMP
(<)
78
INT64X64_OP_CMP
(<=)
79
INT64X64_OP_CMP
(>)
80
INT64X64_OP_CMP
(>=)
81
82
std::ostream &operator << (std::ostream &os, const int64x64_t &val);
83
std::istream &operator >> (std::istream &is, int64x64_t &val);
84
85
inline int64x64_t
Abs
(const int64x64_t &value)
86
{
87
return
(value < 0) ? -value : value;
88
}
89
90
inline
int64x64_t
Min
(
const
int64x64_t &a,
const
int64x64_t &b)
91
{
92
return
(a < b) ? a : b;
93
}
94
95
inline
int64x64_t
Max
(
const
int64x64_t &a,
const
int64x64_t &b)
96
{
97
return
(a > b) ? a : b;
98
}
99
100
}
// namespace ns3
101
102
#endif
/* INT64X64_H */
int64x64-cairo.h
ns3::Abs
int64x64_t Abs(const int64x64_t &value)
Definition:
int64x64.h:85
INT64X64_OP_CMP
#define INT64X64_OP_CMP(op)
Definition:
int64x64.h:61
int64x64-128.h
ns3::Min
int64x64_t Min(const int64x64_t &a, const int64x64_t &b)
Definition:
int64x64.h:90
ns3::Max
int64x64_t Max(const int64x64_t &a, const int64x64_t &b)
Definition:
int64x64.h:95
INT64X64_OP_ARITH
#define INT64X64_OP_ARITH(op)
Definition:
int64x64.h:32
int64x64-double.h
src
core
model
int64x64.h
Generated on Sat Apr 19 2014 14:06:51 for ns-3 by
1.8.6