Lines Matching full:floating

1 //===--- Floating.h - Types for the constexpr VM ----------------*- C++ -*-===//
26 class Floating final {
32 /// Zero-initializes a Floating.
33 Floating() : F(0.0f) {}
34 Floating(const APFloat &F) : F(F) {}
36 // Static constructors for special floating point values.
37 static Floating getInf(const llvm::fltSemantics &Sem) {
38 return Floating(APFloat::getInf(Sem));
42 bool operator<(Floating RHS) const { return F < RHS.F; }
43 bool operator>(Floating RHS) const { return F > RHS.F; }
44 bool operator<=(Floating RHS) const { return F <= RHS.F; }
45 bool operator>=(Floating RHS) const { return F >= RHS.F; }
46 bool operator==(Floating RHS) const { return F == RHS.F; }
47 bool operator!=(Floating RHS) const { return F != RHS.F; }
48 Floating operator-() const { return Floating(-F); }
55 Floating toSemantics(const llvm::fltSemantics *Sem,
61 return Floating(Copy);
64 /// Convert this Floating to one with the same semantics as \Other.
65 Floating toSemantics(const Floating &Other, llvm::RoundingMode RM) const {
104 ComparisonCategoryResult compare(const Floating &RHS) const {
122 Floating &Result) {
125 Result = Floating(F);
129 static Floating bitcastFromMemory(const std::byte *Buff,
135 return Floating(APFloat(Sem, API));
153 static Floating deserialize(const std::byte *Buff) {
159 static Floating abs(const Floating &F) {
163 return Floating(V);
168 static APFloat::opStatus add(const Floating &A, const Floating &B,
169 llvm::RoundingMode RM, Floating *R) {
170 *R = Floating(A.F);
174 static APFloat::opStatus increment(const Floating &A, llvm::RoundingMode RM,
175 Floating *R) {
177 *R = Floating(A.F);
181 static APFloat::opStatus sub(const Floating &A, const Floating &B,
182 llvm::RoundingMode RM, Floating *R) {
183 *R = Floating(A.F);
187 static APFloat::opStatus decrement(const Floating &A, llvm::RoundingMode RM,
188 Floating *R) {
190 *R = Floating(A.F);
194 static APFloat::opStatus mul(const Floating &A, const Floating &B,
195 llvm::RoundingMode RM, Floating *R) {
196 *R = Floating(A.F);
200 static APFloat::opStatus div(const Floating &A, const Floating &B,
201 llvm::RoundingMode RM, Floating *R) {
202 *R = Floating(A.F);
206 static bool neg(const Floating &A, Floating *R) {
212 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, Floating F);
213 Floating getSwappedBytes(Floating F);