10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_UINT128_H 11 #define EIGEN_CXX11_TENSOR_TENSOR_UINT128_H 32 template <
typename HIGH = u
int64_t,
typename LOW = u
int64_t>
38 template<
typename OTHER_HIGH,
typename OTHER_LOW>
45 template<
typename OTHER_HIGH,
typename OTHER_LOW>
77 template <
typename HL,
typename LL,
typename HR,
typename LR>
84 template <
typename HL,
typename LL,
typename HR,
typename LR>
91 template <
typename HL,
typename LL,
typename HR,
typename LR>
101 template <
typename HL,
typename LL,
typename HR,
typename LR>
105 if (lhs.high != rhs.high) {
106 return lhs.
high < rhs.high;
108 return lhs.low < rhs.low;
111 template <
typename HL,
typename LL,
typename HR,
typename LR>
116 if (result.
low < rhs.
low) {
122 template <
typename HL,
typename LL,
typename HR,
typename LR>
127 if (result.
low > lhs.
low) {
134 template <
typename HL,
typename LL,
typename HR,
typename LR>
149 const uint64_t LOW = 0x00000000FFFFFFFFLL;
150 const uint64_t HIGH = 0xFFFFFFFF00000000LL;
176 low |= (acc << 32LL);
180 acc2 = (acc >> 32LL) | (carry << 32LL);
198 acc2 = (acc >> 32LL) | (carry << 32LL);
204 high |= (acc2 << 32LL);
209 template <
typename HL,
typename LL,
typename HR,
typename LR>
215 }
else if (lhs < rhs) {
225 power2 = power2 + power2;
233 result = result + power2;
249 #endif // EIGEN_CXX11_TENSOR_TENSOR_UINT128_H
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T operator/(const T &numerator, const TensorIntDivisor< T, div_gt_one > &divisor)
#define EIGEN_ALWAYS_INLINE
#define EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE TensorUInt128< uint64_t, uint64_t > operator-(const TensorUInt128< HL, LL > &lhs, const TensorUInt128< HR, LR > &rhs)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE LOW lower() const
Namespace containing all symbols from the Eigen library.
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool operator==(const TensorUInt128< HL, LL > &lhs, const TensorUInt128< HR, LR > &rhs)
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE HIGH upper() const
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE static_val()
void g(const string &key, int i)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE TensorUInt128(const TensorUInt128< OTHER_HIGH, OTHER_LOW > &other)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool operator!=(const TensorUInt128< HL, LL > &lhs, const TensorUInt128< HR, LR > &rhs)
static const uint64_t value
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE static_val(const T &v)
Array< int, Dynamic, 1 > v
unsigned __int64 uint64_t
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
Array< double, 1, 3 > e(1./3., 0.5, 2.)
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorUInt128< uint64_t, uint64_t > operator*(const TensorUInt128< HL, LL > &lhs, const TensorUInt128< HR, LR > &rhs)
#define EIGEN_DEVICE_FUNC
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE TensorUInt128(const T &x)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE TensorUInt128< uint64_t, uint64_t > operator+(const TensorUInt128< HL, LL > &lhs, const TensorUInt128< HR, LR > &rhs)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE bool operator>=(const TensorUInt128< HL, LL > &lhs, const TensorUInt128< HR, LR > &rhs)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE TensorUInt128(HIGH y, LOW x)
Generic expression where a coefficient-wise unary operator is applied to an expression.
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
#define EIGEN_UNUSED_VARIABLE(var)