VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions
vlMath.h File Reference

This file defines math constants and methods which may be useful in simulations. More...

Go to the source code of this file.

Macros

#define DtEPico   1.0E-12
 DtMin/DtMax via vlUtil.h.
#define DtENano   1.0E-09
#define DtEMicro   1.0E-06
#define DtEMilli   1.0E-03
#define DtECenti   1.0E-02
#define DtEDeci   1.0E-01
#define DtEHalf   5.0E-01
#define DtENineTenths   9.0E-01
#define DtEOne   1.0
#define DtEDeca   1.0E01
#define DtEHecto   1.0E02
#define DtEKilo   1.0E03
#define DtEMega   1.0E06
#define DtEGiga   1.0E09
#define DtEq(x, y, e)   ((DtAbs((x) - (y)) <= (e)) ? true : false)
 A macro to make use of these tolerances.
#define M_2PI   6.28318530717958647693 /* 2Pi */
#define M_E   2.7182818284590452354 /* Euler constant "e" */
#define M_1_E   0.36787944117144232160 /* 1/e */
#define M_LN2   0.69314718055994530942 /* ln(2) */
#define M_LN10   2.30258509299404568402 /* ln(10) */
#define M_LOG2E   1.4426950408889634074 /* log2(e) = 1/ln(2) */
#define M_LOG10E   0.43429448190325182765 /* log10(e) = 1/ln(10) */
#define M_PI   3.14159265358979323846 /* Pythagorean constant "Pi" */
#define M_PI_2   1.57079632679489661923 /* Pi/2 */
#define M_PI_3   1.04719755119659774615 /* Pi/3 */
#define M_PI_4   0.78539816339744830962 /* Pi/4 */
#define M_1_PI   0.31830988618379067154 /* 1/Pi */
#define M_2_PI   0.63661977236758134308 /* 2/Pi */
#define M_3_PI   0.954929658551372014613 /* 3/Pi */
#define M_4_PI   1.27323954473516268615 /* 4/Pi */
#define M_SQRTPI   1.77245385090551602730 /* Sqrt(Pi) */
#define M_1_SQRTPI   0.564189583547756286948 /* 1/Sqrt(Pi) */
#define M_2_SQRTPI   1.12837916709551257390 /* 2/Sqrt(Pi) */
#define M_3_SQRTPI   1.69256875064326886084 /* 3/Sqrt(Pi) */
#define M_4_SQRTPI   2.25675833419102514779 /* 4/Sqrt(Pi) */
#define M_SQRT2PI   2.50662827463100050242 /* Sqrt(2Pi) */
#define M_1_SQRT2PI   0.39894228040143267794 /* 1/Sqrt(2Pi) */
#define M_RAD2DEG   57.2957795130823208768 /* 180/Pi radians --> degrees */
#define M_DEG2RAD   0.0174532925199432957692 /* Pi/180 degrees --> radians */
#define M_SQRT2   1.41421356237309504880 /* Sqrt(2) */
#define M_SQRT_2   0.707106781186547524401 /* 1/Sqrt(2) */
#define M_GOLDEN_R   0.6180339887498948482046 /* GoldenRatio: (Sqrt(5) - 1)/2 */

Functions

double DtRad2Deg (double rad)
 Converts Radians to Degrees.
double DtDeg2Rad (double deg)
 Converts Degrees to Radians.
template<typename T >
DtAbs (T x)
 Returns the absolute value of x for type T.
template<typename T >
int DtSgn (T x)
 Returns the sign of X for type T.
template<typename T >
DtPos (T x)
 Returns x if greater than zero.
template<typename T >
DtNeg (const T &val)
 Returns x if x is less than zero for type T.
template<typename T >
DtSquare (const T &val)
 Returns the square of x for type T.
template<typename T >
DtLimit (T x, T lo, T hi)
 if x is outside the limits (hi and lo) then x is set to the nearest limit
template<typename T >
DtMod (T a, T b)
 Returns the remainder of a / b for type T.
template<>
float DtMod (float a, float b)
 Returns the remainder of a / b for float.
template<>
double DtMod (double a, double b)
 Returns the remainder of a / b for double.
template<typename T >
DtGCD (T a, T b)
 Returns the greatest common divisor of a and b for type T.
template<typename T >
DtLCM (T a, T b)
 Returns the least common multiple of a and b for Type T.

Detailed Description

This file defines math constants and methods which may be useful in simulations.

Macro Definition Documentation

#define DtECenti   1.0E-02
#define DtEDeca   1.0E01
#define DtEDeci   1.0E-01
#define DtEGiga   1.0E09
#define DtEHalf   5.0E-01
#define DtEHecto   1.0E02
#define DtEKilo   1.0E03
#define DtEMega   1.0E06
#define DtEMicro   1.0E-06
#define DtEMilli   1.0E-03
#define DtENano   1.0E-09
#define DtENineTenths   9.0E-01
#define DtEOne   1.0
#define DtEPico   1.0E-12

DtMin/DtMax via vlUtil.h.

Definitions A selection of constants useful as tolerance and threshold levels, etc.

#define DtEq (   x,
  y,
 
)    ((DtAbs((x) - (y)) <= (e)) ? true : false)

A macro to make use of these tolerances.

#define M_1_E   0.36787944117144232160 /* 1/e */
#define M_1_PI   0.31830988618379067154 /* 1/Pi */
#define M_1_SQRT2PI   0.39894228040143267794 /* 1/Sqrt(2Pi) */
#define M_1_SQRTPI   0.564189583547756286948 /* 1/Sqrt(Pi) */
#define M_2_PI   0.63661977236758134308 /* 2/Pi */
#define M_2_SQRTPI   1.12837916709551257390 /* 2/Sqrt(Pi) */
#define M_2PI   6.28318530717958647693 /* 2Pi */
#define M_3_PI   0.954929658551372014613 /* 3/Pi */
#define M_3_SQRTPI   1.69256875064326886084 /* 3/Sqrt(Pi) */
#define M_4_PI   1.27323954473516268615 /* 4/Pi */
#define M_4_SQRTPI   2.25675833419102514779 /* 4/Sqrt(Pi) */
#define M_DEG2RAD   0.0174532925199432957692 /* Pi/180 degrees --> radians */
#define M_E   2.7182818284590452354 /* Euler constant "e" */
#define M_GOLDEN_R   0.6180339887498948482046 /* GoldenRatio: (Sqrt(5) - 1)/2 */
#define M_LN10   2.30258509299404568402 /* ln(10) */
#define M_LN2   0.69314718055994530942 /* ln(2) */
#define M_LOG10E   0.43429448190325182765 /* log10(e) = 1/ln(10) */
#define M_LOG2E   1.4426950408889634074 /* log2(e) = 1/ln(2) */
#define M_PI   3.14159265358979323846 /* Pythagorean constant "Pi" */
#define M_PI_2   1.57079632679489661923 /* Pi/2 */
#define M_PI_3   1.04719755119659774615 /* Pi/3 */
#define M_PI_4   0.78539816339744830962 /* Pi/4 */
#define M_RAD2DEG   57.2957795130823208768 /* 180/Pi radians --> degrees */
#define M_SQRT2   1.41421356237309504880 /* Sqrt(2) */
#define M_SQRT2PI   2.50662827463100050242 /* Sqrt(2Pi) */
#define M_SQRT_2   0.707106781186547524401 /* 1/Sqrt(2) */
#define M_SQRTPI   1.77245385090551602730 /* Sqrt(Pi) */

Function Documentation

template<typename T >
T DtAbs ( x)

Returns the absolute value of x for type T.

double DtDeg2Rad ( double  deg)
inline

Converts Degrees to Radians.

References M_PI.

template<typename T >
T DtGCD ( a,
b 
)

Returns the greatest common divisor of a and b for type T.

References DtMod(), and DtTHROW_NEW.

Referenced by DtLCM().

template<typename T >
T DtLCM ( a,
b 
)

Returns the least common multiple of a and b for Type T.

References DtGCD(), and DtTHROW_NEW.

template<typename T >
T DtLimit ( x,
lo,
hi 
)

if x is outside the limits (hi and lo) then x is set to the nearest limit

Referenced by DtThresholder::setDfltRotationThreshold(), and DtArtPartThresholder::setDfltRotationThreshold().

template<typename T >
T DtMod ( a,
b 
)
inline

Returns the remainder of a / b for type T.

Referenced by DtGCD().

template<>
float DtMod ( float  a,
float  b 
)
inline

Returns the remainder of a / b for float.

template<>
double DtMod ( double  a,
double  b 
)
inline

Returns the remainder of a / b for double.

template<typename T >
T DtNeg ( const T &  val)

Returns x if x is less than zero for type T.

template<typename T >
T DtPos ( x)

Returns x if greater than zero.

double DtRad2Deg ( double  rad)
inline

Converts Radians to Degrees.

References M_PI.

Referenced by DtGeocentricToMgFlatEarth().

template<typename T >
int DtSgn ( x)

Returns the sign of X for type T.

template<typename T >
T DtSquare ( const T &  val)

Returns the square of x for type T.


Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)