ActiveLib
Loading...
Searching...
No Matches
Functions | Variables
active::math Namespace Reference

Functions

bool isLess (double val1, double val2, double prec=eps)
 
bool isEqual (double val1, double val2, double prec=eps)
 
bool isGreater (double val1, double val2, double prec=eps)
 
int compare (double val1, double val2, double prec=eps)
 
bool isLessOrEqual (double val1, double val2, double prec=eps)
 
bool isGreaterOrEqual (double val1, double val2, double prec=eps)
 
bool isLessZero (double val, double prec=eps)
 
bool isLessOrEqualZero (double val, double prec=eps)
 
bool isZero (double val, double prec=eps)
 
bool isGreaterOrEqualZero (double val, double prec=eps)
 
bool isGreaterZero (double val, double prec=eps)
 
bool isBetween (double val, double lower, double upper, double prec=eps)
 
bool isWithin (double val, double lower, double upper, double prec=eps)
 
double fMod (double val1, double val2, double prec=eps)
 
template<class T >
const T & minVal (const T &val1, const T &val2)
 
template<class T >
const T & maxVal (const T &val1, const T &val2)
 
double round (const double &val, double module=eps)
 Rounding functions.
 
double roundUp (const double &val, double module=eps, double tolerance=eps)
 
double roundDown (const double &val, double module=eps, double tolerance=eps)
 
double sign (const double &val, double prec=eps)
 
template<class T >
sgn (const T &val)
 
template<class T >
flow_sgn (const T &val)
 
double angleMod (double angle)
 Calculate an angle as a value between 0 to 2.pi radians.
 
bool dividesInto (double val, double div, double prec=eps)
 Determine if an angle divides cleanly into another angle.
 
bool isAngleBetween (double val, double lower, double upper, double prec=eps)
 Determine if an angle is bounded between two other angles.
 
bool isAngleWithin (double val, double lower, double upper, double prec=eps)
 Determine if an angle is bounded within two other angles.
 
bool isEqualAngle (double angle1, double angle2, double prec=eps)
 Determine if two angles are equal.
 
bool isParallelAngle (double angle1, double angle2, double prec=eps)
 Determine if two angles are parallel.
 
bool isPerpendicularAngle (double angle1, double angle2, double prec=eps)
 Determine if two angles are perpendicular.
 
double angleDelta (double angle1, double angle2)
 Get a change in angle from 180 to -180.
 

Variables

constexpr double pi = std::numbers::pi_v<double>
 
constexpr double eps = 1e-5
 Default length precision (0.01mm)
 
constexpr double epsAngle = pi / 1800
 Default angle precision (0.1 degrees)
 
constexpr double radianToDegree = 180.0 / pi
 Angle unit conversions.
 
constexpr double degreeToRadian = 1.0 / radianToDegree
 
constexpr double radianToMinute = radianToDegree * 60
 
constexpr double minuteToRadian = 1.0 / radianToMinute
 
constexpr double radianToSecond = radianToMinute * 60
 
constexpr double secondToRadian = 1.0 / radianToSecond
 
constexpr double radianToGrad = radianToDegree * 10.0 / 9.0
 
constexpr double gradToRadian = 1.0 / radianToGrad
 
constexpr double inchToMillimetre = 25.4
 Length unit conversions.
 
constexpr double pointToMillimetre = 0.3527777777778
 
constexpr double footToInch = 12
 
constexpr double yardToFoot = 3
 
constexpr double metreToKilometre = 1000
 
constexpr double metreToDecimetre = 10
 
constexpr double metreToCentimetre = 1e2
 
constexpr double metreToMillimetre = 1e3
 
constexpr double metreToInch = metreToMillimetre / inchToMillimetre
 
constexpr double metreToFoot = metreToInch / footToInch
 
constexpr double metreToYard = metreToFoot / yardToFoot
 
constexpr double metreToMile = 0.0006213712
 
constexpr double metre2ToMillimetre2 = metreToMillimetre * metreToMillimetre
 Area unit conversions.
 
constexpr double metre2ToCentimetre2 = metreToCentimetre * metreToCentimetre
 
constexpr double metre2ToAre = 0.01
 
constexpr double metre2ToHectare = 0.0001
 
constexpr double metre2ToInch2 = metreToInch * metreToInch
 
constexpr double metre2ToFoot2 = metreToFoot * metreToFoot
 
constexpr double metre2ToYard2 = metreToYard * metreToYard
 
constexpr double metre2ToMile2 = metreToMile * metreToMile
 
constexpr double metre3ToLitre = 1000.0
 Volume unit conversions.
 
constexpr double metre3ToCentimetre3 = metre2ToCentimetre2 * metreToMillimetre
 
constexpr double metre3ToMillimetre3 = metre2ToMillimetre2 * metreToCentimetre
 
constexpr double metre3ToInch3 = metre2ToInch2 * metreToInch
 
constexpr double metre3ToFoot3 = metre2ToFoot2 * metreToFoot
 
constexpr double metre3ToYard3 = metre2ToYard2 * metreToYard
 
constexpr double metre3ToGallon = 264.172051
 
constexpr double kilogramToMilligram = 1000000.0
 Mass unit conversions.
 
constexpr double kilogramToGram = 1000.0
 
constexpr double kilogramToTonne = 0.001
 
constexpr double kilogramToOunce = 35.2739619
 
constexpr double kilogramToPound = 2.204622622
 
constexpr double kilogramToStone = 0.15747304
 
constexpr double kilogramToTon = 0.001102311
 

Detailed Description

Copyright 2024 Ralph Wessel and Hugh Wessel Distributed under the MIT License (See accompanying file LICENSE.txt or copy at https://opensource.org/license/mit/)

A collection of commonly used maths contants and functions

Function Documentation

◆ compare()

int active::math::compare ( double val1,
double val2,
double prec = eps )
inline

Compare two floating point values (with precision)

Parameters
val1The first value
val2The second value
precThe comparison precision (tolerance)
Returns
-1 if the first value is less than the second, 0 if the values are equal, 1 if the first value is greater than the second
Here is the call graph for this function:

◆ isEqual()

bool active::math::isEqual ( double val1,
double val2,
double prec = eps )
inline

Determine if two floating point values are identical (with precision)

Parameters
val1The first value
val2The second value
precThe comparison precision (tolerance)
Returns
True if the two values are identical
Here is the caller graph for this function:

◆ isGreater()

bool active::math::isGreater ( double val1,
double val2,
double prec = eps )
inline

Determine if one floating point value is greater than another (with precision)

Parameters
val1The first value
val2The second value
precThe comparison precision (tolerance)
Returns
True if the first value is greater than the second
Here is the caller graph for this function:

◆ isLess()

bool active::math::isLess ( double val1,
double val2,
double prec = eps )
inline

Determine if one floating point value is less than another (with precision)

Parameters
val1The first value
val2The second value
precThe comparison precision (tolerance)
Returns
True if the first value is less than the second
Here is the caller graph for this function: