FLANG
Fortran::evaluate::value::Integer< BITS, IS_LITTLE_ENDIAN, PARTBITS, PART, BIGPART, ALIGNMENT > Class Template Reference

Classes

struct  PowerWithErrors
struct  Product
struct  QuotientWithRemainder
struct  ValueWithCarry
struct  ValueWithOverflow

Public Types

using Part = PART
using BigPart = BIGPART

Public Member Functions

constexpr Integer (const Integer &)=default
constexpr Integer (Integer &&)=default
template<typename INT, typename = std::enable_if_t<std::is_integral_v<INT>>>
constexpr Integer (INT n)
constexpr Integeroperator= (const Integer &)=default
constexpr bool operator< (const Integer &that) const
constexpr bool operator<= (const Integer &that) const
constexpr bool operator== (const Integer &that) const
constexpr bool operator!= (const Integer &that) const
constexpr bool operator>= (const Integer &that) const
constexpr bool operator> (const Integer &that) const
std::string UnsignedDecimal () const
std::string SignedDecimal () const
std::string Hexadecimal () const
constexpr bool IsZero () const
constexpr bool IsNegative () const
constexpr Ordering CompareToZeroSigned () const
constexpr int LEADZ () const
constexpr int POPCNT () const
constexpr bool POPPAR () const
constexpr int TRAILZ () const
constexpr bool BTEST (int pos) const
constexpr Ordering CompareUnsigned (const Integer &y) const
constexpr bool BGE (const Integer &y) const
constexpr bool BGT (const Integer &y) const
constexpr bool BLE (const Integer &y) const
constexpr bool BLT (const Integer &y) const
constexpr Ordering CompareSigned (const Integer &y) const
template<typename UINT = std::uint64_t>
constexpr UINT ToUInt () const
template<typename SINT = std::int64_t, typename UINT = std::uint64_t>
constexpr SINT ToSInt () const
constexpr std::uint64_t ToUInt64 () const
constexpr std::int64_t ToInt64 () const
constexpr Integer NOT () const
constexpr ValueWithOverflow Negate () const
constexpr ValueWithOverflow ABS () const
constexpr Integer ISHFT (int count) const
constexpr Integer SHIFTL (int count) const
constexpr Integer ISHFTC (int count, int size=bits) const
constexpr Integer SHIFTLWithFill (const Integer &fill, int count) const
constexpr Integer SHIFTRWithFill (const Integer &fill, int count) const
constexpr Integer DSHIFTL (const Integer &fill, int count) const
constexpr Integer DSHIFTR (const Integer &value, int count) const
constexpr Integer SHIFTR (int count) const
constexpr Integer SHIFTA (int count) const
constexpr Integer IBCLR (int pos) const
constexpr Integer IBSET (int pos) const
constexpr Integer IBITS (int pos, int size) const
constexpr Integer IAND (const Integer &y) const
constexpr Integer IOR (const Integer &y) const
constexpr Integer IEOR (const Integer &y) const
constexpr Integer MERGE_BITS (const Integer &y, const Integer &mask) const
constexpr Integer MAX (const Integer &y) const
constexpr Integer MIN (const Integer &y) const
constexpr ValueWithCarry AddUnsigned (const Integer &y, bool carryIn=false) const
constexpr ValueWithOverflow AddSigned (const Integer &y) const
constexpr ValueWithOverflow SubtractSigned (const Integer &y) const
constexpr ValueWithOverflow DIM (const Integer &y) const
constexpr ValueWithOverflow SIGN (bool toNegative) const
constexpr ValueWithOverflow SIGN (const Integer &sign) const
constexpr Product MultiplyUnsigned (const Integer &y) const
constexpr Product MultiplySigned (const Integer &y) const
constexpr QuotientWithRemainder DivideUnsigned (const Integer &divisor) const
constexpr QuotientWithRemainder DivideSigned (Integer divisor) const
constexpr ValueWithOverflow MODULO (const Integer &divisor) const
constexpr PowerWithErrors Power (const Integer &exponent) const

Static Public Member Functions

static constexpr Integer MASKL (int places)
static constexpr Integer MASKR (int places)
static constexpr ValueWithOverflow Read (const char *&pp, std::uint64_t base=10, bool isSigned=false)
template<typename FROM>
static constexpr ValueWithOverflow ConvertUnsigned (const FROM &that)
template<typename FROM>
static constexpr ValueWithOverflow ConvertSigned (const FROM &that)
static constexpr Integer HUGE ()
static constexpr Integer Least ()

Static Public Attributes

static constexpr int bits {BITS}
static constexpr int partBits {PARTBITS}
static constexpr bool littleEndian {IS_LITTLE_ENDIAN}
static constexpr int alignment {ALIGNMENT}
static constexpr int DIGITS {bits - 1}
static constexpr int RANGE {DecimalRange(bits - 1)}
static constexpr int UnsignedRANGE {DecimalRange(bits)}

The documentation for this class was generated from the following file: