Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
testing::internal::FloatingPoint< RawType > Class Template Reference

#include <gtest-internal.h>

Collaboration diagram for testing::internal::FloatingPoint< RawType >:

Public Types

typedef TypeWithSize< sizeof(RawType)>::UInt Bits
 

Public Member Functions

 FloatingPoint (const RawType &x)
 
const Bitsbits () const
 
Bits exponent_bits () const
 
Bits fraction_bits () const
 
Bits sign_bit () const
 
bool is_nan () const
 
bool AlmostEquals (const FloatingPoint &rhs) const
 
float Max ()
 
double Max ()
 

Static Public Member Functions

static RawType ReinterpretBits (const Bits bits)
 
static RawType Infinity ()
 
static RawType Max ()
 

Static Public Attributes

static const size_t kBitCount = 8*sizeof(RawType)
 
static const size_t kFractionBitCount
 
static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount
 
static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1)
 
static const Bits kFractionBitMask
 
static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask)
 
static const size_t kMaxUlps = 4
 

Detailed Description

template<typename RawType>
class testing::internal::FloatingPoint< RawType >

Definition at line 244 of file gtest-internal.h.

Member Typedef Documentation

◆ Bits

template<typename RawType >
TypeWithSize<sizeof(RawType)>::UInt testing::internal::FloatingPoint< RawType >::Bits

Definition at line 248 of file gtest-internal.h.

Constructor & Destructor Documentation

◆ FloatingPoint()

template<typename RawType >
testing::internal::FloatingPoint< RawType >::FloatingPoint ( const RawType & x)
inlineexplicit

Definition at line 292 of file gtest-internal.h.

292{ u_.value_ = x; }

Member Function Documentation

◆ AlmostEquals()

template<typename RawType >
bool testing::internal::FloatingPoint< RawType >::AlmostEquals ( const FloatingPoint< RawType > & rhs) const
inline

Definition at line 340 of file gtest-internal.h.

340 {
341 // The IEEE standard says that any comparison operation involving
342 // a NAN must return false.
343 if (is_nan() || rhs.is_nan()) return false;
344
345 return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)
346 <= kMaxUlps;
347 }
Here is the call graph for this function:

◆ bits()

template<typename RawType >
const Bits & testing::internal::FloatingPoint< RawType >::bits ( ) const
inline

Definition at line 316 of file gtest-internal.h.

316{ return u_.bits_; }
Here is the caller graph for this function:

◆ exponent_bits()

template<typename RawType >
Bits testing::internal::FloatingPoint< RawType >::exponent_bits ( ) const
inline

Definition at line 319 of file gtest-internal.h.

319{ return kExponentBitMask & u_.bits_; }
Here is the caller graph for this function:

◆ fraction_bits()

template<typename RawType >
Bits testing::internal::FloatingPoint< RawType >::fraction_bits ( ) const
inline

Definition at line 322 of file gtest-internal.h.

322{ return kFractionBitMask & u_.bits_; }
Here is the caller graph for this function:

◆ Infinity()

template<typename RawType >
static RawType testing::internal::FloatingPoint< RawType >::Infinity ( )
inlinestatic

Definition at line 306 of file gtest-internal.h.

306 {
308 }
static RawType ReinterpretBits(const Bits bits)
Here is the call graph for this function:

◆ is_nan()

template<typename RawType >
bool testing::internal::FloatingPoint< RawType >::is_nan ( ) const
inline

Definition at line 328 of file gtest-internal.h.

328 {
329 // It's a NAN if the exponent bits are all ones and the fraction
330 // bits are not entirely zeros.
331 return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0);
332 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Max() [1/3]

template<typename RawType >
static RawType testing::internal::FloatingPoint< RawType >::Max ( )
static

◆ Max() [2/3]

float testing::internal::FloatingPoint< float >::Max ( )
inline

Definition at line 396 of file gtest-internal.h.

396{ return FLT_MAX; }

◆ Max() [3/3]

double testing::internal::FloatingPoint< double >::Max ( )
inline

Definition at line 398 of file gtest-internal.h.

398{ return DBL_MAX; }

◆ ReinterpretBits()

template<typename RawType >
static RawType testing::internal::FloatingPoint< RawType >::ReinterpretBits ( const Bits bits)
inlinestatic

Definition at line 299 of file gtest-internal.h.

299 {
300 FloatingPoint fp(0);
301 fp.u_.bits_ = bits;
302 return fp.u_.value_;
303 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sign_bit()

template<typename RawType >
Bits testing::internal::FloatingPoint< RawType >::sign_bit ( ) const
inline

Definition at line 325 of file gtest-internal.h.

325{ return kSignBitMask & u_.bits_; }

Member Data Documentation

◆ kBitCount

template<typename RawType >
const size_t testing::internal::FloatingPoint< RawType >::kBitCount = 8*sizeof(RawType)
static

Definition at line 253 of file gtest-internal.h.

◆ kExponentBitCount

template<typename RawType >
const size_t testing::internal::FloatingPoint< RawType >::kExponentBitCount = kBitCount - 1 - kFractionBitCount
static

Definition at line 260 of file gtest-internal.h.

◆ kExponentBitMask

template<typename RawType >
const Bits testing::internal::FloatingPoint< RawType >::kExponentBitMask = ~(kSignBitMask | kFractionBitMask)
static

Definition at line 270 of file gtest-internal.h.

◆ kFractionBitCount

template<typename RawType >
const size_t testing::internal::FloatingPoint< RawType >::kFractionBitCount
static
Initial value:
=
std::numeric_limits<RawType>::digits - 1

Definition at line 256 of file gtest-internal.h.

◆ kFractionBitMask

template<typename RawType >
const Bits testing::internal::FloatingPoint< RawType >::kFractionBitMask
static
Initial value:
=
~static_cast<Bits>(0) >> (kExponentBitCount + 1)
static const size_t kExponentBitCount

Definition at line 266 of file gtest-internal.h.

◆ kMaxUlps

template<typename RawType >
const size_t testing::internal::FloatingPoint< RawType >::kMaxUlps = 4
static

Definition at line 284 of file gtest-internal.h.

◆ kSignBitMask

template<typename RawType >
const Bits testing::internal::FloatingPoint< RawType >::kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1)
static

Definition at line 263 of file gtest-internal.h.


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