/usr/include/ns3.17/ns3/int64x64.h is in libns3-dev 3.17+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | #ifndef INT64X64_H
#define INT64X64_H
#include "ns3/core-config.h"
#if defined (INT64X64_USE_DOUBLE) || defined (PYTHON_SCAN)
#include "int64x64-double.h"
#elif defined (INT64X64_USE_CAIRO)
#include "int64x64-cairo.h"
#elif defined (INT64X64_USE_128)
#include "int64x64-128.h"
#endif
#include <iostream>
namespace ns3 {
#define INT64X64_OP_ARITH_TYPE(op,type) \
inline int64x64_t operator op (const int64x64_t &lhs, const type rhs) \
{ \
int64x64_t tmp = lhs; \
tmp op ## = int64x64_t (rhs); \
return tmp; \
} \
inline int64x64_t operator op (const type lhs, const int64x64_t &rhs) \
{ \
int64x64_t tmp = int64x64_t (lhs); \
tmp op ## = rhs; \
return tmp; \
}
#define INT64X64_OP_ARITH(op) \
inline int64x64_t operator op (const int64x64_t &lhs, const int64x64_t &rhs) \
{ \
int64x64_t tmp = lhs; \
tmp op ## = rhs; \
return tmp; \
} \
INT64X64_OP_ARITH_TYPE (op,double) \
INT64X64_OP_ARITH_TYPE (op,signed char) \
INT64X64_OP_ARITH_TYPE (op,signed short) \
INT64X64_OP_ARITH_TYPE (op,signed int) \
INT64X64_OP_ARITH_TYPE (op,signed long int) \
INT64X64_OP_ARITH_TYPE (op,signed long long int) \
INT64X64_OP_ARITH_TYPE (op,unsigned char) \
INT64X64_OP_ARITH_TYPE (op,unsigned short) \
INT64X64_OP_ARITH_TYPE (op,unsigned int) \
INT64X64_OP_ARITH_TYPE (op,unsigned long int) \
INT64X64_OP_ARITH_TYPE (op,unsigned long long int)
#define INT64X64_OP_CMP_TYPE(op,type) \
inline bool operator op (const int64x64_t &lhs, const type &rhs) \
{ \
return lhs op int64x64_t (rhs); \
} \
inline bool operator op (const type &lhs, const int64x64_t &rhs) \
{ \
return int64x64_t (lhs) op rhs; \
}
#define INT64X64_OP_CMP(op) \
INT64X64_OP_CMP_TYPE (op,double) \
INT64X64_OP_CMP_TYPE (op,signed int) \
INT64X64_OP_CMP_TYPE (op,signed long int) \
INT64X64_OP_CMP_TYPE (op,signed long long int) \
INT64X64_OP_CMP_TYPE (op,unsigned int) \
INT64X64_OP_CMP_TYPE (op,unsigned long int) \
INT64X64_OP_CMP_TYPE (op,unsigned long long int)
INT64X64_OP_ARITH (+)
INT64X64_OP_ARITH (-)
INT64X64_OP_ARITH (*)
INT64X64_OP_ARITH (/)
INT64X64_OP_CMP (==)
INT64X64_OP_CMP (!=)
INT64X64_OP_CMP (<)
INT64X64_OP_CMP (<=)
INT64X64_OP_CMP (>)
INT64X64_OP_CMP (>=)
std::ostream &operator << (std::ostream &os, const int64x64_t &val);
std::istream &operator >> (std::istream &is, int64x64_t &val);
inline int64x64_t Abs (const int64x64_t &value)
{
return (value < 0) ? -value : value;
}
inline int64x64_t Min (const int64x64_t &a, const int64x64_t &b)
{
return (a < b) ? a : b;
}
inline int64x64_t Max (const int64x64_t &a, const int64x64_t &b)
{
return (a > b) ? a : b;
}
} // namespace ns3
#endif /* INT64X64_H */
|