LLVM 20.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
APFloat.h File Reference

This file declares a class to represent arbitrary precision floating point values and provide a variety of arithmetic operations on them. More...

#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/FloatingPointMode.h"
#include "llvm/Support/ErrorHandling.h"
#include <memory>

Go to the source code of this file.

Classes

struct  llvm::APFloatBase
 A self-contained host- and target-independent arbitrary-precision floating-point software implementation. More...
 
class  llvm::detail::IEEEFloat
 
class  llvm::detail::DoubleAPFloat
 
class  llvm::APFloat
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.
 

Macros

#define APFLOAT_DISPATCH_ON_SEMANTICS(METHOD_CALL)
 

Enumerations

enum  llvm::lostFraction { llvm::lfExactlyZero , llvm::lfLessThanHalf , llvm::lfExactlyHalf , llvm::lfMoreThanHalf }
 Enum that represents what fraction of the LSB truncated bits of an fp number represent. More...
 

Functions

hash_code llvm::detail::hash_value (const IEEEFloat &Arg)
 
int llvm::detail::ilogb (const IEEEFloat &Arg)
 
IEEEFloat llvm::detail::scalbn (IEEEFloat X, int Exp, IEEEFloat::roundingMode)
 
IEEEFloat llvm::detail::frexp (const IEEEFloat &Val, int &Exp, IEEEFloat::roundingMode RM)
 
hash_code llvm::detail::hash_value (const DoubleAPFloat &Arg)
 
DoubleAPFloat llvm::detail::scalbn (const DoubleAPFloat &Arg, int Exp, IEEEFloat::roundingMode RM)
 
DoubleAPFloat llvm::detail::frexp (const DoubleAPFloat &X, int &Exp, IEEEFloat::roundingMode)
 
hash_code llvm::hash_value (const APFloat &Arg)
 See friend declarations above.
 
APFloat llvm::scalbn (APFloat X, int Exp, APFloat::roundingMode RM)
 
APFloat llvm::frexp (const APFloat &X, int &Exp, APFloat::roundingMode RM)
 Equivalent of C standard library function.
 
APFloat llvm::abs (APFloat X)
 Returns the absolute value of the argument.
 
APFloat llvm::neg (APFloat X)
 Returns the negated value of the argument.
 
LLVM_READONLY APFloat llvm::minnum (const APFloat &A, const APFloat &B)
 Implements IEEE-754 2019 minimumNumber semantics.
 
LLVM_READONLY APFloat llvm::maxnum (const APFloat &A, const APFloat &B)
 Implements IEEE-754 2019 maximumNumber semantics.
 
LLVM_READONLY APFloat llvm::minimum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 minimum semantics.
 
LLVM_READONLY APFloat llvm::minimumnum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 minimumNumber semantics.
 
LLVM_READONLY APFloat llvm::maximum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 maximum semantics.
 
LLVM_READONLY APFloat llvm::maximumnum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 maximumNumber semantics.
 

Detailed Description

This file declares a class to represent arbitrary precision floating point values and provide a variety of arithmetic operations on them.

Definition in file APFloat.h.

Macro Definition Documentation

◆ APFLOAT_DISPATCH_ON_SEMANTICS

#define APFLOAT_DISPATCH_ON_SEMANTICS (   METHOD_CALL)
Value:
do { \
if (usesLayout<IEEEFloat>(getSemantics())) \
return U.IEEE.METHOD_CALL; \
if (usesLayout<DoubleAPFloat>(getSemantics())) \
return U.Double.METHOD_CALL; \
llvm_unreachable("Unexpected semantics"); \
} while (false)

Definition at line 24 of file APFloat.h.