APFloat.cpp File Reference

#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/MathExtras.h"
#include <limits.h>
#include <cstring>

Classes

struct  llvm::fltSemantics
struct  decimalInfo

Namespaces

namespace  llvm
namespace  anonymous_namespace{APFloat.cpp}

Defines

#define convolve(lhs, rhs)   ((lhs) * 4 + (rhs))
#define COMPILE_TIME_ASSERT(cond)   extern int CTAssert[(cond) ? 1 : -1]

Functions

 COMPILE_TIME_ASSERT (integerPartWidth%4==0)
static unsigned int partCountForBits (unsigned int bits)
static unsigned int decDigitValue (unsigned int c)
static unsigned int hexDigitValue (unsigned int c)
static void assertArithmeticOK (const llvm::fltSemantics &semantics)
static int readExponent (StringRef::iterator begin, StringRef::iterator end)
static int totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment)
static StringRef::iterator skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator *dot)
static void interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo *D)
static lostFraction trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue)
static lostFraction lostFractionThroughTruncation (const integerPart *parts, unsigned int partCount, unsigned int bits)
static lostFraction shiftRight (integerPart *dst, unsigned int parts, unsigned int bits)
static lostFraction combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant)
static unsigned int HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2)
static integerPart ulpsFromBoundary (const integerPart *parts, unsigned int bits, bool isNearest)
static unsigned int powerOf5 (integerPart *dst, unsigned int power)
static unsigned int partAsHex (char *dst, integerPart part, unsigned int count, const char *hexDigitChars)
static char * writeUnsignedDecimal (char *dst, unsigned int n)
static char * writeSignedDecimal (char *dst, int value)
static void anonymous_namespace{APFloat.cpp}::append (SmallVectorImpl< char > &Buffer, unsigned N, const char *Str)
template<unsigned N>
void anonymous_namespace{APFloat.cpp}::append (SmallVectorImpl< char > &Buffer, const char(&Str)[N])
void anonymous_namespace{APFloat.cpp}::AdjustToPrecision (APInt &significand, int &exp, unsigned FormatPrecision)
 Removes data from the given significand until it is no more precise than is required for the desired precision.
void anonymous_namespace{APFloat.cpp}::AdjustToPrecision (SmallVectorImpl< char > &buffer, int &exp, unsigned FormatPrecision)

Variables

const unsigned int llvm::maxExponent = 16383
const unsigned int llvm::maxPrecision = 113
const unsigned int llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1
const unsigned int llvm::maxPowerOfFiveParts
static const char hexDigitsLower [] = "0123456789abcdef0"
static const char hexDigitsUpper [] = "0123456789ABCDEF0"
static const char infinityL [] = "infinity"
static const char infinityU [] = "INFINITY"
static const char NaNL [] = "nan"
static const char NaNU [] = "NAN"

Define Documentation

#define COMPILE_TIME_ASSERT ( cond   )     extern int CTAssert[(cond) ? 1 : -1]
#define convolve ( lhs,
rhs   )     ((lhs) * 4 + (rhs))

Function Documentation

static void assertArithmeticOK ( const llvm::fltSemantics semantics  )  [inline, static]
static lostFraction combineLostFractions ( lostFraction  moreSignificant,
lostFraction  lessSignificant 
) [static]
COMPILE_TIME_ASSERT ( integerPartWidth%  4 = =0  ) 
static unsigned int decDigitValue ( unsigned int  c  )  [inline, static]
static unsigned int hexDigitValue ( unsigned int  c  )  [static]
static unsigned int HUerrBound ( bool  inexactMultiply,
unsigned int  HUerr1,
unsigned int  HUerr2 
) [static]
static void interpretDecimal ( StringRef::iterator  begin,
StringRef::iterator  end,
decimalInfo D 
) [static]
static lostFraction lostFractionThroughTruncation ( const integerPart *  parts,
unsigned int  partCount,
unsigned int  bits 
) [static]
static unsigned int partAsHex ( char *  dst,
integerPart  part,
unsigned int  count,
const char *  hexDigitChars 
) [static]
static unsigned int partCountForBits ( unsigned int  bits  )  [inline, static]
static unsigned int powerOf5 ( integerPart *  dst,
unsigned int  power 
) [static]
static int readExponent ( StringRef::iterator  begin,
StringRef::iterator  end 
) [static]
static lostFraction shiftRight ( integerPart *  dst,
unsigned int  parts,
unsigned int  bits 
) [static]
static StringRef::iterator skipLeadingZeroesAndAnyDot ( StringRef::iterator  begin,
StringRef::iterator  end,
StringRef::iterator *  dot 
) [static]
static int totalExponent ( StringRef::iterator  p,
StringRef::iterator  end,
int  exponentAdjustment 
) [static]
static lostFraction trailingHexadecimalFraction ( StringRef::iterator  p,
StringRef::iterator  end,
unsigned int  digitValue 
) [static]
static integerPart ulpsFromBoundary ( const integerPart *  parts,
unsigned int  bits,
bool  isNearest 
) [static]
static char* writeSignedDecimal ( char *  dst,
int  value 
) [static]
static char* writeUnsignedDecimal ( char *  dst,
unsigned int  n 
) [static]

Variable Documentation

const char hexDigitsLower[] = "0123456789abcdef0" [static]
const char hexDigitsUpper[] = "0123456789ABCDEF0" [static]
const char infinityL[] = "infinity" [static]
const char infinityU[] = "INFINITY" [static]
const char NaNL[] = "nan" [static]
const char NaNU[] = "NAN" [static]

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1