sigma  0.0.0
Loading...
Searching...
No Matches
sigma Namespace Reference

The primary namespace for the sigma library. More...

Namespaces

namespace  detail_
 The namespace that contains the implementation details of the library.
 

Classes

class  Uncertain
 Models an unceratin variable. More...
 

Typedefs

using UFloat = Uncertain<float>
 Typedef for an uncertain float.
 
using UDouble = Uncertain<double>
 Typedef for an uncertain double.
 

Functions

template<typename T>
Uncertain< T > operator- (const Uncertain< T > &a)
 Negation Operation.
 
template<typename T>
Uncertain< T > operator+ (const Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Addition Operation.
 
template<typename T>
Uncertain< T > operator+ (const Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > operator+ (double lhs, const Uncertain< T > &rhs)
 
template<typename T>
Uncertain< T > & operator+= (Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Inplace Addition Operation.
 
template<typename T>
Uncertain< T > & operator+= (Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > operator- (const Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Subtraction Operation.
 
template<typename T>
Uncertain< T > operator- (const Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > operator- (double lhs, const Uncertain< T > &rhs)
 
template<typename T>
Uncertain< T > & operator-= (Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Inplace Subtraction Operation.
 
template<typename T>
Uncertain< T > & operator-= (Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > operator* (const Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Multiplication Operation.
 
template<typename T>
Uncertain< T > operator* (const Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > operator* (double lhs, const Uncertain< T > &rhs)
 
template<typename T>
Uncertain< T > & operator*= (Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Inplace Multiplication Operation.
 
template<typename T>
Uncertain< T > & operator*= (Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > operator/ (const Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Division Operation.
 
template<typename T>
Uncertain< T > operator/ (double lhs, const Uncertain< T > &rhs)
 
template<typename T>
Uncertain< T > operator/ (const Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > & operator/= (Uncertain< T > &lhs, const Uncertain< T > &rhs)
 Inplace Division Operation.
 
template<typename T>
Uncertain< T > & operator/= (Uncertain< T > &lhs, double rhs)
 
template<typename T>
Uncertain< T > abs (const Uncertain< T > &a)
 Absolute Value.
 
template<typename T>
Uncertain< T > fabs (const Uncertain< T > &a)
 Absolute Value.
 
template<typename T>
Uncertain< T > abs2 (const Uncertain< T > &a)
 The Square of the Absolute Value.
 
template<typename T>
Uncertain< T > ceil (const Uncertain< T > &a)
 Nearest integer not less than the given value.
 
template<typename T>
Uncertain< T > floor (const Uncertain< T > &a)
 Nearest integer not greater than the given value.
 
template<typename T>
Uncertain< T > fmod (const Uncertain< T > &a, const Uncertain< T > &b)
 Floating point module.
 
template<typename T>
Uncertain< T > fmod (const Uncertain< T > &a, double b)
 
template<typename T>
Uncertain< T > fmod (double a, const Uncertain< T > &b)
 
template<typename T>
Uncertain< T > copysign (const Uncertain< T > &a, const Uncertain< T > &b)
 Copy the sign of one value to another.
 
template<typename T, typename U>
Uncertain< T > copysign (const Uncertain< T > &a, const U &b)
 Copy the sign of one value to another.
 
template<typename T, typename U>
copysign (const U &a, const Uncertain< T > &b)
 Copy the sign of one value to another.
 
template<typename T>
Uncertain< T > trunc (const Uncertain< T > &a)
 Remove the fractional part from a variable.
 
template<typename T>
Uncertain< T > round (const Uncertain< T > &a)
 Round to the nearest integar, away from zero in halfway case.
 
template<typename T>
const Uncertain< T > & conj (const Uncertain< T > &a)
 Complex Conjugate.
 
template<typename T>
const Uncertain< T > & real (const Uncertain< T > &a)
 Get the real part of a value.
 
template<typename T>
Uncertain< T > imag (const Uncertain< T > &a)
 Get the imaginary part of a value.
 
template<typename T>
Uncertain< T > erf (const Uncertain< T > &a)
 Error function.
 
template<typename T>
Uncertain< T > erfc (const Uncertain< T > &a)
 Complementary error function.
 
template<typename T>
Uncertain< T > tgamma (const Uncertain< T > &a)
 Gamma function.
 
template<typename T>
Uncertain< T > lgamma (const Uncertain< T > &a)
 Gamma function Natural Logarithm.
 
template<typename T, typename U>
Uncertain< T > pow (const Uncertain< T > &a, const U &exp)
 Exponentiation of a variable.
 
template<typename T>
Uncertain< T > pow (const Uncertain< T > &a, const Uncertain< T > &exp)
 Exponentiation of a variable by an uncertain variable.
 
template<typename T>
Uncertain< T > sqrt (const Uncertain< T > &a)
 Calculate the square root of an uncertain variable.
 
template<typename T>
Uncertain< T > cbrt (const Uncertain< T > &a)
 Calculate the cube root of an uncertain variable.
 
template<typename T>
Uncertain< T > exp (const Uncertain< T > &a)
 Calculate the Euler's number raised to the power of an uncertain variable.
 
template<typename T>
Uncertain< T > exp2 (const Uncertain< T > &a)
 Calculate 2 raised to the power of an uncertain variable.
 
template<typename T>
Uncertain< T > expm1 (const Uncertain< T > &a)
 Calculate the Euler's number raised to the power of an uncertain variable, then subtract 1.
 
template<typename T>
Uncertain< T > log (const Uncertain< T > &a)
 Calculate the natural logarithm of a variable.
 
template<typename T>
Uncertain< T > log10 (const Uncertain< T > &a)
 Calculate the base 10 logarithm of a variable.
 
template<typename T>
Uncertain< T > log2 (const Uncertain< T > &a)
 Calculate the base 2 logarithm of a variable.
 
template<typename T>
Uncertain< T > log1p (const Uncertain< T > &a)
 Calculate the natural logarithm of one plus a variable.
 
template<typename T>
Uncertain< T > hypot (const Uncertain< T > &a, const Uncertain< T > &b)
 Calculate the square root of the sum of squared arguments.
 
template<typename T, typename U>
Uncertain< T > hypot (const Uncertain< T > &a, const U &b)
 Calculate the square root of the sum of squared arguments.
 
template<typename T, typename U>
Uncertain< T > hypot (const U &a, const Uncertain< T > &b)
 Calculate the square root of the sum of squared arguments.
 
template<typename T>
Uncertain< T > sinh (const Uncertain< T > &a)
 Hyperbolic sine of the variable.
 
template<typename T>
Uncertain< T > cosh (const Uncertain< T > &a)
 Hyperbolic cosine of the variable.
 
template<typename T>
Uncertain< T > tanh (const Uncertain< T > &a)
 Hyperbolic tangent of the variable.
 
template<typename T>
Uncertain< T > asinh (const Uncertain< T > &a)
 Hyperbolic arcsine of the variable.
 
template<typename T>
Uncertain< T > acosh (const Uncertain< T > &a)
 Hyperbolic arccosine of the variable.
 
template<typename T>
Uncertain< T > atanh (const Uncertain< T > &a)
 Hyperbolic arctangent of the variable.
 
template<typename T>
Uncertain< T > degrees (const Uncertain< T > &a)
 Convert from radians to degrees.
 
template<typename T>
Uncertain< T > radians (const Uncertain< T > &a)
 Convert from degrees to radians.
 
template<typename T>
Uncertain< T > sin (const Uncertain< T > &a)
 Sine of the variable.
 
template<typename T>
Uncertain< T > cos (const Uncertain< T > &a)
 Cosine of the variable.
 
template<typename T>
Uncertain< T > tan (const Uncertain< T > &a)
 Tangent of the variable.
 
template<typename T>
Uncertain< T > asin (const Uncertain< T > &a)
 Arcsine of the variable.
 
template<typename T>
Uncertain< T > acos (const Uncertain< T > &a)
 Arccosine of the variable.
 
template<typename T>
Uncertain< T > atan (const Uncertain< T > &a)
 Arctangent of the variable.
 
template<typename T>
Uncertain< T > atan2 (const Uncertain< T > &y, const Uncertain< T > &x)
 Two argument arctangent.
 
template<typename T, typename U>
Uncertain< T > atan2 (const Uncertain< T > &y, const U &x)
 Two argument arctangent.
 
template<typename T, typename U>
Uncertain< T > atan2 (const U &y, const Uncertain< T > &x)
 Two argument arctangent.
 
template<typename ValueType>
std::ostream & operator<< (std::ostream &os, const Uncertain< ValueType > &u)
 Overload stream insertion to print uncertain variable.
 
template<typename ValueType1, typename ValueType2>
bool operator== (const Uncertain< ValueType1 > &lhs, const Uncertain< ValueType2 > &rhs)
 Compare two variables for equality.
 
template<typename ValueType1, typename ValueType2>
bool operator!= (const Uncertain< ValueType1 > &lhs, const Uncertain< ValueType2 > &rhs)
 Compare two variables for inequality.
 
template<typename ValueType1, typename ValueType2>
bool operator< (const Uncertain< ValueType1 > &lhs, const Uncertain< ValueType2 > &rhs)
 Whether one variable is less than another.
 
template<typename ValueType1, typename ValueType2>
bool operator> (const Uncertain< ValueType1 > &lhs, const Uncertain< ValueType2 > &rhs)
 Whether one variable is greater than another.
 
template<typename ValueType1, typename ValueType2>
bool operator<= (const Uncertain< ValueType1 > &lhs, const Uncertain< ValueType2 > &rhs)
 Whether one variable is less than or equal to another.
 
template<typename ValueType1, typename ValueType2>
bool operator>= (const Uncertain< ValueType1 > &lhs, const Uncertain< ValueType2 > &rhs)
 Whether one variable is greater than or equal to another.
 

Detailed Description

The primary namespace for the sigma library.

This is the primary namespace that contains the class used to represent uncertain variables and the functions that act on them.

Function Documentation

◆ abs()

template<typename T>
Uncertain< T > sigma::abs ( const Uncertain< T > & a)

Absolute Value.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The absolute value of a
Exceptions
noneNo throw guarantee

◆ abs2()

template<typename T>
Uncertain< T > sigma::abs2 ( const Uncertain< T > & a)

The Square of the Absolute Value.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The square of the absolute value of a
Exceptions
noneNo throw guarantee

◆ acos()

template<typename T>
Uncertain< T > sigma::acos ( const Uncertain< T > & a)

Arccosine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the arccosine value of a
Exceptions
noneNo throw guarantee

◆ acosh()

template<typename T>
Uncertain< T > sigma::acosh ( const Uncertain< T > & a)

Hyperbolic arccosine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the hyperbolic arccosine value of a
Exceptions
noneNo throw guarantee

◆ asin()

template<typename T>
Uncertain< T > sigma::asin ( const Uncertain< T > & a)

Arcsine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the arcsine value of a
Exceptions
noneNo throw guarantee

◆ asinh()

template<typename T>
Uncertain< T > sigma::asinh ( const Uncertain< T > & a)

Hyperbolic arcsine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the hyperbolic arcsine value of a
Exceptions
noneNo throw guarantee

◆ atan()

template<typename T>
Uncertain< T > sigma::atan ( const Uncertain< T > & a)

Arctangent of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the arctangent value of a
Exceptions
noneNo throw guarantee

◆ atan2() [1/3]

template<typename T, typename U>
Uncertain< T > sigma::atan2 ( const U & y,
const Uncertain< T > & x )

Two argument arctangent.

Template Parameters
TThe value type of the variable
UThe numeric type of y
Parameters
yThe first variable
xThe first variable
Returns
The two argument arctangent value of y and x
Exceptions
noneNo throw guarantee

◆ atan2() [2/3]

template<typename T, typename U>
Uncertain< T > sigma::atan2 ( const Uncertain< T > & y,
const U & x )

Two argument arctangent.

Template Parameters
TThe value type of the variable
UThe numeric type of x
Parameters
yThe first variable
xThe first variable
Returns
The two argument arctangent value of y and x
Exceptions
noneNo throw guarantee

◆ atan2() [3/3]

template<typename T>
Uncertain< T > sigma::atan2 ( const Uncertain< T > & y,
const Uncertain< T > & x )

Two argument arctangent.

Template Parameters
TThe value type of the variable
Parameters
yThe first variable
xThe first variable
Returns
The two argument arctangent value of y and x
Exceptions
noneNo throw guarantee

◆ atanh()

template<typename T>
Uncertain< T > sigma::atanh ( const Uncertain< T > & a)

Hyperbolic arctangent of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the hyperbolic arctangent value of a
Exceptions
noneNo throw guarantee

◆ cbrt()

template<typename T>
Uncertain< T > sigma::cbrt ( const Uncertain< T > & a)

Calculate the cube root of an uncertain variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose root is computed
Returns
A variable whose value is the cube root of a
Exceptions
noneNo throw guarantee

◆ ceil()

template<typename T>
Uncertain< T > sigma::ceil ( const Uncertain< T > & a)

Nearest integer not less than the given value.

Note that this returns an Uncertain<T> value with no dependencies

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The nearest integer not greater than a
Exceptions
noneNo throw guarantee

◆ conj()

template<typename T>
const Uncertain< T > & sigma::conj ( const Uncertain< T > & a)

Complex Conjugate.

This is a stub to satisfy Eigen

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The complex conjugate of a
Exceptions
noneNo throw guarantee

◆ copysign() [1/3]

template<typename T, typename U>
U sigma::copysign ( const U & a,
const Uncertain< T > & b )

Copy the sign of one value to another.

Template Parameters
TThe value type of b
UThe numeric type of a
Parameters
aThe variable whose magnitude is copied
bThe variable whose sign is copied
Returns
The copy of a with the sign of b
Exceptions
noneNo throw guarantee

◆ copysign() [2/3]

template<typename T, typename U>
Uncertain< T > sigma::copysign ( const Uncertain< T > & a,
const U & b )

Copy the sign of one value to another.

Template Parameters
TThe value type of a
UThe numeric type of b
Parameters
aThe variable whose magnitude is copied
bThe variable whose sign is copied
Returns
The copy of a with the sign of b
Exceptions
noneNo throw guarantee

◆ copysign() [3/3]

template<typename T>
Uncertain< T > sigma::copysign ( const Uncertain< T > & a,
const Uncertain< T > & b )

Copy the sign of one value to another.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose magnitude is copied
bThe variable whose sign is copied
Returns
The copy of a with the sign of b
Exceptions
noneNo throw guarantee

◆ cos()

template<typename T>
Uncertain< T > sigma::cos ( const Uncertain< T > & a)

Cosine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the cosine value of a
Exceptions
noneNo throw guarantee

◆ cosh()

template<typename T>
Uncertain< T > sigma::cosh ( const Uncertain< T > & a)

Hyperbolic cosine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the hyperbolic cosine value of a
Exceptions
noneNo throw guarantee

◆ degrees()

template<typename T>
Uncertain< T > sigma::degrees ( const Uncertain< T > & a)

Convert from radians to degrees.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The variable a in degrees
Exceptions
noneNo throw guarantee

◆ erf()

template<typename T>
Uncertain< T > sigma::erf ( const Uncertain< T > & a)

Error function.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The error function value of a
Exceptions
noneNo throw guarantee

◆ erfc()

template<typename T>
Uncertain< T > sigma::erfc ( const Uncertain< T > & a)

Complementary error function.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The complementary error function value of a
Exceptions
noneNo throw guarantee

◆ exp()

template<typename T>
Uncertain< T > sigma::exp ( const Uncertain< T > & a)

Calculate the Euler's number raised to the power of an uncertain variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable that is the exponent
Returns
A variable whose value is Euler's number raised by the mean of a
Exceptions
noneNo throw guarantee

◆ exp2()

template<typename T>
Uncertain< T > sigma::exp2 ( const Uncertain< T > & a)

Calculate 2 raised to the power of an uncertain variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable that is the exponent
Returns
A variable whose value is 2 raised by the mean of a
Exceptions
noneNo throw guarantee

◆ expm1()

template<typename T>
Uncertain< T > sigma::expm1 ( const Uncertain< T > & a)

Calculate the Euler's number raised to the power of an uncertain variable, then subtract 1.

Template Parameters
TThe value type of the variable
Parameters
aThe variable that is the exponent
Returns
A variable whose value is Euler's number raised by the mean of a, then subtract 1.
Exceptions
noneNo throw guarantee

◆ fabs()

template<typename T>
Uncertain< T > sigma::fabs ( const Uncertain< T > & a)

Absolute Value.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The absolute value of a
Exceptions
noneNo throw guarantee

◆ floor()

template<typename T>
Uncertain< T > sigma::floor ( const Uncertain< T > & a)

Nearest integer not greater than the given value.

Note that this returns an Uncertain<T> value with no dependencies

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The nearest integer not greater than u
Exceptions
noneNo throw guarantee

◆ fmod() [1/3]

template<typename T>
Uncertain< T > sigma::fmod ( const Uncertain< T > & a,
const Uncertain< T > & b )

Floating point module.

Template Parameters
TThe value type of the variable
Parameters
aThe first variable
bThe first variable
Returns
A variable that is the floating point remainder of a / b
Exceptions
noneNo throw guarantee

◆ fmod() [2/3]

template<typename T>
Uncertain< T > sigma::fmod ( const Uncertain< T > & a,
double b )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ fmod() [3/3]

template<typename T>
Uncertain< T > sigma::fmod ( double a,
const Uncertain< T > & b )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ hypot() [1/3]

template<typename T, typename U>
Uncertain< T > sigma::hypot ( const U & a,
const Uncertain< T > & b )

Calculate the square root of the sum of squared arguments.

Template Parameters
TThe value type of the variable
UThe numeric type of a
Parameters
aThe first variable
bThe second variable
Returns
A variable whose value is the base 10 logarithm of a
Exceptions
noneNo throw guarantee

◆ hypot() [2/3]

template<typename T, typename U>
Uncertain< T > sigma::hypot ( const Uncertain< T > & a,
const U & b )

Calculate the square root of the sum of squared arguments.

Template Parameters
TThe value type of the variable
UThe numeric type of b
Parameters
aThe first variable
bThe second variable
Returns
A variable whose value is the base 10 logarithm of a
Exceptions
noneNo throw guarantee

◆ hypot() [3/3]

template<typename T>
Uncertain< T > sigma::hypot ( const Uncertain< T > & a,
const Uncertain< T > & b )

Calculate the square root of the sum of squared arguments.

Template Parameters
TThe value type of the variable
Parameters
aThe first variable
bThe second variable
Returns
A variable whose value is the base 10 logarithm of a
Exceptions
noneNo throw guarantee

◆ imag()

template<typename T>
Uncertain< T > sigma::imag ( const Uncertain< T > & a)

Get the imaginary part of a value.

This is a stub to satisfy Eigen

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The imaginary part of a
Exceptions
noneNo throw guarantee

◆ lgamma()

template<typename T>
Uncertain< T > sigma::lgamma ( const Uncertain< T > & a)

Gamma function Natural Logarithm.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The natural logarithm of the gamma function value of a
Exceptions
noneNo throw guarantee

◆ log()

template<typename T>
Uncertain< T > sigma::log ( const Uncertain< T > & a)

Calculate the natural logarithm of a variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose logarithm is determined
Returns
A variable whose value is the natural logarithm of a
Exceptions
noneNo throw guarantee

◆ log10()

template<typename T>
Uncertain< T > sigma::log10 ( const Uncertain< T > & a)

Calculate the base 10 logarithm of a variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose logarithm is determined
Returns
A variable whose value is the base 10 logarithm of a
Exceptions
noneNo throw guarantee

◆ log1p()

template<typename T>
Uncertain< T > sigma::log1p ( const Uncertain< T > & a)

Calculate the natural logarithm of one plus a variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose logarithm is determined
Returns
A variable whose value is the natural logarithm of a + 1
Exceptions
noneNo throw guarantee

◆ log2()

template<typename T>
Uncertain< T > sigma::log2 ( const Uncertain< T > & a)

Calculate the base 2 logarithm of a variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose logarithm is determined
Returns
A variable whose value is the base 2 logarithm of a
Exceptions
noneNo throw guarantee

◆ operator*() [1/3]

template<typename T>
Uncertain< T > sigma::operator* ( const Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Multiplication Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable
rhsThe right-hand variable
Returns
A variable that is the product of lhs and rhs
Exceptions
noneNo throw guarantee

◆ operator*() [2/3]

template<typename T>
Uncertain< T > sigma::operator* ( const Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator*() [3/3]

template<typename T>
Uncertain< T > sigma::operator* ( double lhs,
const Uncertain< T > & rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator*=() [1/2]

template<typename T>
Uncertain< T > & sigma::operator*= ( Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Inplace Multiplication Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable being modified
rhsThe right-hand variable
Returns
lhs as the product of itself and rhs
Exceptions
noneNo throw guarantee

◆ operator*=() [2/2]

template<typename T>
Uncertain< T > & sigma::operator*= ( Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator+() [1/3]

template<typename T>
Uncertain< T > sigma::operator+ ( const Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Addition Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable
rhsThe right-hand variable
Returns
A variable that is the sum of lhs and rhs
Exceptions
noneNo throw guarantee

◆ operator+() [2/3]

template<typename T>
Uncertain< T > sigma::operator+ ( const Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator+() [3/3]

template<typename T>
Uncertain< T > sigma::operator+ ( double lhs,
const Uncertain< T > & rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator+=() [1/2]

template<typename T>
Uncertain< T > & sigma::operator+= ( Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Inplace Addition Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable being modified
rhsThe right-hand variable
Returns
lhs as the sum of itself and rhs
Exceptions
noneNo throw guarantee

◆ operator+=() [2/2]

template<typename T>
Uncertain< T > & sigma::operator+= ( Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator-() [1/4]

template<typename T>
Uncertain< T > sigma::operator- ( const Uncertain< T > & a)

Negation Operation.

Template Parameters
TThe value type of the variable
Parameters
aThe variable being negated
Returns
A copy of a, but with the sign of the mean reversed
Exceptions
noneNo throw guarantee

◆ operator-() [2/4]

template<typename T>
Uncertain< T > sigma::operator- ( const Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Subtraction Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable
rhsThe right-hand variable
Returns
A variable that is the difference of lhs and rhs
Exceptions
noneNo throw guarantee

◆ operator-() [3/4]

template<typename T>
Uncertain< T > sigma::operator- ( const Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator-() [4/4]

template<typename T>
Uncertain< T > sigma::operator- ( double lhs,
const Uncertain< T > & rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator-=() [1/2]

template<typename T>
Uncertain< T > & sigma::operator-= ( Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Inplace Subtraction Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable being modified
rhsThe right-hand variable
Returns
lhs as the difference of itself and rhs
Exceptions
noneNo throw guarantee

◆ operator-=() [2/2]

template<typename T>
Uncertain< T > & sigma::operator-= ( Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator/() [1/3]

template<typename T>
Uncertain< T > sigma::operator/ ( const Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Division Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable
rhsThe right-hand variable
Returns
A variable that is the quotient of lhs and rhs
Exceptions
noneNo throw guarantee

◆ operator/() [2/3]

template<typename T>
Uncertain< T > sigma::operator/ ( const Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator/() [3/3]

template<typename T>
Uncertain< T > sigma::operator/ ( double lhs,
const Uncertain< T > & rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator/=() [1/2]

template<typename T>
Uncertain< T > & sigma::operator/= ( Uncertain< T > & lhs,
const Uncertain< T > & rhs )

Inplace Division Operation.

Template Parameters
TThe value type of the variables
Parameters
lhsThe left-hand variable being modified
rhsThe right-hand variable
Returns
lhs as the quotient of itself and rhs
Exceptions
noneNo throw guarantee

◆ operator/=() [2/2]

template<typename T>
Uncertain< T > & sigma::operator/= ( Uncertain< T > & lhs,
double rhs )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ pow() [1/2]

template<typename T, typename U>
Uncertain< T > sigma::pow ( const Uncertain< T > & a,
const U & exp )

Exponentiation of a variable.

Template Parameters
TThe value type of the variable
UThe numeric type of the exponent
Parameters
aThe base variable
expThe exponent to raise the base by
Returns
A variable that is a raise to the power exp
Exceptions
noneNo throw guarantee

◆ pow() [2/2]

template<typename T>
Uncertain< T > sigma::pow ( const Uncertain< T > & a,
const Uncertain< T > & exp )

Exponentiation of a variable by an uncertain variable.

Template Parameters
TThe value type of the variables
Parameters
aThe base variable
expThe uncertain exponent to raise the base by
Returns
A variable that is a raise to the power exp
Exceptions
noneNo throw guarantee

◆ radians()

template<typename T>
Uncertain< T > sigma::radians ( const Uncertain< T > & a)

Convert from degrees to radians.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The variable a in radians
Exceptions
noneNo throw guarantee

◆ real()

template<typename T>
const Uncertain< T > & sigma::real ( const Uncertain< T > & a)

Get the real part of a value.

This is a stub to satisfy Eigen

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The real part of a
Exceptions
noneNo throw guarantee

◆ round()

template<typename T>
Uncertain< T > sigma::round ( const Uncertain< T > & a)

Round to the nearest integar, away from zero in halfway case.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose value is truncated
Returns
A variable whose value is the rounded value of a
Exceptions
noneNo throw guarantee

◆ sin()

template<typename T>
Uncertain< T > sigma::sin ( const Uncertain< T > & a)

Sine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the sine value of a
Exceptions
noneNo throw guarantee

◆ sinh()

template<typename T>
Uncertain< T > sigma::sinh ( const Uncertain< T > & a)

Hyperbolic sine of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the hyperbolic sine value of a
Exceptions
noneNo throw guarantee

◆ sqrt()

template<typename T>
Uncertain< T > sigma::sqrt ( const Uncertain< T > & a)

Calculate the square root of an uncertain variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose root is computed
Returns
A variable whose value is the square root of a
Exceptions
noneNo throw guarantee

◆ tan()

template<typename T>
Uncertain< T > sigma::tan ( const Uncertain< T > & a)

Tangent of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the tangent value of a
Exceptions
noneNo throw guarantee

◆ tanh()

template<typename T>
Uncertain< T > sigma::tanh ( const Uncertain< T > & a)

Hyperbolic tangent of the variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
A variable that is the hyperbolic tangent value of a
Exceptions
noneNo throw guarantee

◆ tgamma()

template<typename T>
Uncertain< T > sigma::tgamma ( const Uncertain< T > & a)

Gamma function.

Template Parameters
TThe value type of the variable
Parameters
aThe variable
Returns
The gamma function value of a
Exceptions
noneNo throw guarantee

◆ trunc()

template<typename T>
Uncertain< T > sigma::trunc ( const Uncertain< T > & a)

Remove the fractional part from a variable.

Template Parameters
TThe value type of the variable
Parameters
aThe variable whose value is truncated
Returns
A variable whose value is the truncated value of a
Exceptions
noneNo throw guarantee