Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
multi-precision.h File Reference
#include <boost/version.hpp>
#include "boost_multiprecision/cpp_int.hpp"
#include "boost_multiprecision/cpp_dec_float.hpp"
#include <limits>
Include dependency graph for multi-precision.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 impala
 This file contains type definitions that are used throughout the code base.
 

Macros

#define BOOST_NOEXCEPT
 
#define BOOST_NOEXCEPT_IF(Predicate)
 
#define BOOST_FORCEINLINE   inline __attribute__ ((__always_inline__))
 
#define BOOST_NO_CXX11_CONSTEXPR
 
#define BOOST_NO_CXX11_DECLTYPE
 
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 
#define BOOST_NO_CXX11_HDR_ARRAY
 
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 

Typedefs

typedef __int128_t impala::int128_t
 We use the c++ int128_t type. This is stored using 16 bytes and very performant. More...
 
typedef
boost::multiprecision::number
< boost::multiprecision::cpp_int_backend
< 256, 256, boost::multiprecision::signed_magnitude,
boost::multiprecision::unchecked,
void > > 
impala::int256_t
 Define 256 bit int type. More...
 

Functions

int256_t impala::ConvertToInt256 (const int128_t &x)
 
int128_t impala::ConvertToInt128 (int256_t x, int128_t max_value, bool *overflow)
 
int128_t impala::abs (const int128_t &x)
 
uint64_t impala::HighBits (int128_t x)
 Get the high and low bits of an int128_t. More...
 
uint64_t impala::LowBits (int128_t x)
 
std::ostream & impala::operator<< (std::ostream &os, const int128_t &val)
 Prints v in base 10. More...
 

Macro Definition Documentation

#define BOOST_FORCEINLINE   inline __attribute__ ((__always_inline__))

Definition at line 27 of file multi-precision.h.

#define BOOST_NO_CXX11_CONSTEXPR

Definition at line 29 of file multi-precision.h.

#define BOOST_NO_CXX11_DECLTYPE

Definition at line 30 of file multi-precision.h.

#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS

Definition at line 31 of file multi-precision.h.

#define BOOST_NO_CXX11_HDR_ARRAY

Definition at line 32 of file multi-precision.h.

#define BOOST_NO_CXX11_RVALUE_REFERENCES

Definition at line 33 of file multi-precision.h.

#define BOOST_NO_CXX11_USER_DEFINED_LITERALS

Definition at line 34 of file multi-precision.h.

#define BOOST_NO_CXX11_VARIADIC_TEMPLATES

Definition at line 35 of file multi-precision.h.

#define BOOST_NOEXCEPT

We want to use boost's multi precision library which is only available starting in boost 1.5. For older version of boost we will use the copy in thirdparty. The boost library is for C++11 on a newer version of boost than we use. We need to make these #defines to compile for pre c++11

Definition at line 25 of file multi-precision.h.

#define BOOST_NOEXCEPT_IF (   Predicate)

Definition at line 26 of file multi-precision.h.