50 inline int128 () noexcept : lo(0), hi(0) {};
51 inline int128 (
const int128 & a) noexcept : lo (a.lo), hi (a.hi) {};
53 inline int128 (
const unsigned int & a) noexcept : lo (a), hi (0ll) {};
54 inline int128 (
const signed int & a) noexcept : lo (a), hi (0ll) {
55 if (a < 0) this->hi = -1ll;
58 inline int128 (
const int64u & a) noexcept : lo (a), hi (0ll) {};
59 inline int128 (
const int64s & a) noexcept : lo (a), hi (0ll) {
60 if (a < 0) this->hi = -1ll;
63 int128 (
const float a) noexcept;
64 int128 (
const double & a) noexcept;
65 int128 (
const long double & a) noexcept;
67 int128 (
const char * sz) noexcept;
74 int128 (
const int64u & a,
const int64s & b) noexcept
81 int128 operator - () const noexcept;
82 int128 operator ~ () const noexcept;
92 int128 & operator >>= (
unsigned int n) noexcept;
93 int128 & operator <<= (
unsigned int n) noexcept;
100 inline const
int128 & operator + () const noexcept {
return *
this; };
104 return *
this += (-b);
108 *
this = this->
div (b, dummy);
112 this->
div (b, *
this);
117 int toInt () const noexcept {
return (
int) this->lo; };
118 int64s
toInt64 () const noexcept {
return (int64s) this->lo; };
120 const char *
toString (
unsigned int radix = 10) const noexcept;
121 float toFloat () const noexcept;
129 bool bit (
unsigned int n) const noexcept;
130 void bit (
unsigned int n,
bool val) noexcept;
132 #if defined(__GNUC__) && !defined(__ANDROID_API__)
133 __attribute__ ((__aligned__ (16), __packed__))
140 bool operator < (
const int128 & a,
const int128 & b) noexcept;
141 bool operator == (
const int128 & a,
const int128 & b) noexcept;
142 bool operator || (
const int128 & a,
const int128 & b) noexcept;
143 bool operator && (
const int128 & a,
const int128 & b) noexcept;
147 inline int128
operator + (
const int128 & a,
const int128 & b) noexcept {
149 inline int128
operator - (
const int128 & a,
const int128 & b) noexcept {
151 inline int128
operator * (
const int128 & a,
const int128 & b) noexcept {
153 inline int128
operator / (
const int128 & a,
const int128 & b) noexcept {
155 inline int128
operator % (
const int128 & a,
const int128 & b) noexcept {
158 inline int128
operator >> (
const int128 & a,
unsigned int n) noexcept {
159 return int128 (a) >>= n; }
160 inline int128
operator << (
const int128 & a,
unsigned int n) noexcept {
161 return int128 (a) <<= n; }
163 inline int128
operator & (
const int128 & a,
const int128 & b) noexcept {
165 inline int128
operator | (
const int128 & a,
const int128 & b) noexcept {
167 inline int128
operator ^ (
const int128 & a,
const int128 & b) noexcept {
170 inline bool operator > (
const int128 & a,
const int128 & b) noexcept {
172 inline bool operator <= (
const int128 & a,
const int128 & b) noexcept {
174 inline bool operator >= (
const int128 & a,
const int128 & b) noexcept {
176 inline bool operator != (
const int128 & a,
const int128 & b) noexcept {
int64s toInt64() const noexcept
Definition: int128s.h:118
int toInt() const noexcept
Definition: int128s.h:117
int128 & operator-=(const int128 &b) noexcept
Definition: int128s.h:103
int128 int128s
Definition: int128s.h:184
friend bool operator||(const int128 &, const int128 &) noexcept
int128 operator>>(const int128 &a, unsigned int n) noexcept
Definition: int128s.h:158
friend bool operator<(const int128 &, const int128 &) noexcept
int128 & operator/=(const int128 &b) noexcept
Definition: int128s.h:106
int128 div(const int128 &, int128 &) const noexcept
int128(const int64s &a) noexcept
Definition: int128s.h:59
int128 & operator%=(const int128 &b) noexcept
Definition: int128s.h:111
bool operator>(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:170
const int128 & operator+() const noexcept
Definition: int128s.h:100
long double toLongDouble() const noexcept
int128(const unsigned int &a) noexcept
Definition: int128s.h:53
int128(const int64u &a) noexcept
Definition: int128s.h:58
bool operator!() const noexcept
bool operator>=(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:174
friend bool operator==(const int128 &, const int128 &) noexcept
int128 operator|(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:165
int128 operator/(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:153
double toDouble() const noexcept
bool operator<=(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:172
bool bit(unsigned int n) const noexcept
int128 operator^(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:167
int128 operator*(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:151
float toFloat() const noexcept
bool operator!=(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:176
int128 operator&(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:163
int128 operator-() const noexcept
int128(const int128 &a) noexcept
Definition: int128s.h:51
int128() noexcept
Definition: int128s.h:50
int128(const signed int &a) noexcept
Definition: int128s.h:54
const char * toString(unsigned int radix=10) const noexcept
int128 operator<<(const int128 &a, unsigned int n) noexcept
Definition: int128s.h:160
friend bool operator&&(const int128 &, const int128 &) noexcept
int128 operator%(const int128 &a, const int128 &b) noexcept
Definition: int128s.h:155