libMVRgdtf 40bc00a
A library for GDTF and MVR
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MCFloat.h File Reference
#include <cfloat>
#include <cmath>
#include "GSUtil.h"

Go to the source code of this file.

Classes

struct  VectorworksMVR::extended80_gs
 

Namespaces

namespace  VectorworksMVR
 

Macros

#define double80(x)   Real64 x; short x##_pad
 
#define ASSERT4BYTEALIGNMENT(p, s)   DEBUG_DO_NOTHING
 
#define Fabs   fabs
 

Typedefs

typedef Real64 VectorworksMVR::double_gs
 
typedef Real32 VectorworksMVR::float_gs
 
typedef const float_gs VectorworksMVR::float_param
 
typedef const double_gs VectorworksMVR::double_param
 
typedef struct extended80_gs VectorworksMVR::extended80_gs
 
typedef Sint32 VectorworksMVR::NNAFixed
 
typedef Sint32 VectorworksMVR::NNAFract
 

Enumerations

enum  VectorworksMVR::EFPDirection { VectorworksMVR::kConvert64to80FP , VectorworksMVR::kConvert80to64FP }
 
enum  VectorworksMVR::EFPByteOrder { VectorworksMVR::kNeedsByteSwapping , VectorworksMVR::kNativeByteOrder }
 
enum  VectorworksMVR::EByteSwapFPMode { VectorworksMVR::kModernFP , VectorworksMVR::kArchaicFP }
 

Functions

 VectorworksMVR::BUG_ONLY (void AssertNum2Short(double x))
 
force_inline short VectorworksMVR::Num2Short (double x)
 
Sint32 VectorworksMVR::DoubleToLong (double x)
 
bool VectorworksMVR::IsNAN (double v)
 
bool VectorworksMVR::IsFinite (double v)
 
bool VectorworksMVR::IsInfinite (double v)
 
Sint32 VectorworksMVR::FPClassify (double v)
 
bool VectorworksMVR::IsLegal (double v)
 
bool VectorworksMVR::IsIllegal (double v)
 
bool VectorworksMVR::IsZeroOrDenormal (double v)
 
void GS_API VectorworksMVR::ByteSwapEXTENDED80 (extended80_gs *p)
 
void VectorworksMVR::ByteSwapDOUBLE80 (extended80_gs *p)
 
void VectorworksMVR::ByteSwapDoubleMAF (double *pld)
 
EByteSwapFPMode VectorworksMVR::ByteSwapFPMode (Bool8 archaicDouble)
 
void VectorworksMVR::ByteSwapFP (void *fpValue, EByteSwapFPMode fpFormat)
 
EFPByteOrder VectorworksMVR::ByteOrder (Bool8 needsSwapping)
 
force_inline Boolean VectorworksMVR::DoublesAreNearlyEqual (const double &n1, const double &n2, double epsilon=kNearlyEqualEpsilonForDoubles)
 
Boolean VectorworksMVR::DoubleIsNearlyZero (double n)
 
Boolean VectorworksMVR::DoublesAreNotNearlyEqual (double n1, double n2)
 
Boolean VectorworksMVR::Double1_GE_Double2 (double n1, double n2)
 
Boolean VectorworksMVR::Double1_GT_Double2 (double n1, double n2)
 
Boolean VectorworksMVR::Double1_LE_Double2 (double n1, double n2)
 
Boolean VectorworksMVR::Double1_LT_Double2 (double n1, double n2)
 
bool VectorworksMVR::NearlyEqualFixedTolerance (double a, double b, double tolerance)
 
Boolean VectorworksMVR::IsANormalizedValue (double n)
 
Boolean VectorworksMVR::NormalizedValuesAreNearlyEqual (double n1, double n2)
 
Boolean VectorworksMVR::NormalizedValueIsNearlyZero (double n)
 
Boolean VectorworksMVR::NormalizedValueIsNearlyOne (double n)
 
short VectorworksMVR::WholeNumberDigitsPin16 (double_param inValue)
 
double VectorworksMVR::WholeNumberDigitsPow10PinE16 (double_param inValue)
 
short VectorworksMVR::WholeNumberDigits (double_param inValue)
 
double VectorworksMVR::Modf (const double inNum, double *outIntegralPart, const double inEpsilon=kNearlyEqualEpsilonForDoubles)
 
force_inline float VectorworksMVR::DoubleToFloat (double dblVal)
 
double VectorworksMVR::NNAFrac2X (NNAFract x)
 
double VectorworksMVR::NNAFix2X (NNAFixed x)
 
NNAFixed VectorworksMVR::NNAX2Fix (double x)
 
NNAFract VectorworksMVR::NNAX2Frac (double x)
 
NNAFract VectorworksMVR::NNAFracMul (NNAFract x, NNAFract y)
 
NNAFixed VectorworksMVR::NNALong2Fix (Sint32 x)
 

Variables

const double VectorworksMVR::kNearlyEqualEpsilonForDoubles = 1e-10
 
const double VectorworksMVR::kNearlyEqualEpsilonForNormalizedValues = 1e-06
 

Macro Definition Documentation

◆ ASSERT4BYTEALIGNMENT

#define ASSERT4BYTEALIGNMENT (   p,
 
)    DEBUG_DO_NOTHING

◆ double80

#define double80 (   x)    Real64 x; short x##_pad

◆ Fabs

#define Fabs   fabs