casa
$Rev:20696$
|
Mathematical operations for the Quantum class. More...
#include <QMath.h>
Public Member Functions | |
template<class Qtype > | |
Quantum< Qtype > | min (const Quantum< Qtype > &left, const Quantum< Qtype > &other) |
min and max | |
template<class Qtype > | |
Quantum< Qtype > | max (const Quantum< Qtype > &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | operator+ (const Quantum< Qtype > &left, const Qtype &other) |
Unary operations. | |
template<class Qtype > | |
Quantum< Qtype > | operator+ (const Qtype &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | operator- (const Quantum< Qtype > &left, const Qtype &other) |
template<class Qtype > | |
Quantum< Qtype > | operator- (const Qtype &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | operator* (const Quantum< Qtype > &left, const Qtype &other) |
template<class Qtype > | |
Quantum< Qtype > | operator* (const Qtype &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | operator/ (const Quantum< Qtype > &left, const Qtype &other) |
template<class Qtype > | |
Quantum< Qtype > | operator/ (const Qtype &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | pow (const Quantum< Qtype > &left, Int p) |
Some useful arithmetic (linear) functions. | |
template<class Qtype > | |
Quantum< Qtype > | root (const Quantum< Qtype > &left, Int p) |
template<class Qtype > | |
Quantum< Qtype > | sqrt (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | abs (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | ceil (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | floor (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | sin (const Quantum< Qtype > &left) |
Trigonometric and exponential functions For direct functions input should be in angles, output will be empty units. | |
template<class Qtype > | |
Quantum< Qtype > | cos (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | tan (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | asin (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | acos (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | atan (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | atan2 (const Quantum< Qtype > &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | atan2 (const Quantum< Qtype > &left, const Qtype &other) |
template<class Qtype > | |
Quantum< Qtype > | atan2 (const Qtype &left, const Quantum< Qtype > &other) |
template<class Qtype > | |
Quantum< Qtype > | log (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | log10 (const Quantum< Qtype > &left) |
template<class Qtype > | |
Quantum< Qtype > | exp (const Quantum< Qtype > &left) |
Int | ceil (const Int &val) |
Functions to implement integer ceil/floor and others. | |
Int | floor (const Int &val) |
Float | real (const Float &val) |
Double | real (const Double &val) |
Array< Complex > | operator* (const Array< Complex > &in, Double f) |
Array< Complex > | operator/ (const Array< Complex > &in, Double f) |
Array< DComplex > | operator* (const Array< DComplex > &in, Double f) |
Array< DComplex > | operator/ (const Array< DComplex > &in, Double f) |
Array< Float > | operator* (const Array< Float > &in, Double f) |
Array< Float > | operator/ (const Array< Float > &in, Double f) |
Array< Int > | operator* (const Array< Int > &in, Double f) |
Array< Int > | operator/ (const Array< Int > &in, Double f) |
Mathematical operations for the Quantum class.
Public interface
QMath derived from Quantum Mathematical functions
Quantities are values with a unit. Their basic specification can be one of two forms:
Quantity( Double value, String unit); // or: Unit unit Quantum<Type> ( Type value, String unit) // or: Unit unit
A unit is a string of known unit fields separated by 'space' or '.' (to indicate multiply) or '/' (to indicate divide). See the Unit class for details. Example: km/s/(Mpc.s)2 is identical to km.s-1.Mpc-2.s-2
This file defines the mathematical operations that can be done on Quantum<T>
.
They can be subdivided into various groupings:
The operations/functions defined are:
+(Quantum<T>)
-(Quantum<T>)
+=Quantum<T>; +=T; -=Quantum<T>; -=T;
*=Quantum<T>, *=T; /=Quantum<T>; /=T;
+/-/*//
for Quantum<T>,Quantum<T>; T,Quantum<T>; Quantum<T>,T;
abs, ceil, floor(Quantum<T>)
pow(Quantum<T>, Int);
sin, cos, tan(Quantum<T>)
with proper unit handling asin, acos, atan, atan2(Quantum<T>)
with proper unit handling log, log10, exp, root, sqrt
with proper unit handling
Warning: Some operators are implemented as member functions, and can be found in the Quantum class;
To separate the mathematical operations from Quantum.
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::abs | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::acos | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::asin | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::atan | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::atan2 | ( | const Quantum< Qtype > & | left, |
const Quantum< Qtype > & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::atan2 | ( | const Quantum< Qtype > & | left, |
const Qtype & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::atan2 | ( | const Qtype & | left, |
const Quantum< Qtype > & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::ceil | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::cos | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::exp | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::floor | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::log | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::log10 | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::max | ( | const Quantum< Qtype > & | left, |
const Quantum< Qtype > & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::min | ( | const Quantum< Qtype > & | left, |
const Quantum< Qtype > & | other | ||
) |
min and max
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator* | ( | const Quantum< Qtype > & | left, |
const Qtype & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator* | ( | const Qtype & | left, |
const Quantum< Qtype > & | other | ||
) |
Array<Complex> casa::QMath_global_functions_Quantum_mathematical_operations::operator* | ( | const Array< Complex > & | in, |
Double | f | ||
) |
Array<DComplex> casa::QMath_global_functions_Quantum_mathematical_operations::operator* | ( | const Array< DComplex > & | in, |
Double | f | ||
) |
Array<Float> casa::QMath_global_functions_Quantum_mathematical_operations::operator* | ( | const Array< Float > & | in, |
Double | f | ||
) |
Array<Int> casa::QMath_global_functions_Quantum_mathematical_operations::operator* | ( | const Array< Int > & | in, |
Double | f | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator+ | ( | const Quantum< Qtype > & | left, |
const Qtype & | other | ||
) |
Unary operations.
See Quantum class In place arithmetic functions: left hand side changed in place
See Quantum class Arithmetic operators: return Quantum<T>
See Quantum class for equal argument types
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator+ | ( | const Qtype & | left, |
const Quantum< Qtype > & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator- | ( | const Quantum< Qtype > & | left, |
const Qtype & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator- | ( | const Qtype & | left, |
const Quantum< Qtype > & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator/ | ( | const Quantum< Qtype > & | left, |
const Qtype & | other | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::operator/ | ( | const Qtype & | left, |
const Quantum< Qtype > & | other | ||
) |
Array<Complex> casa::QMath_global_functions_Quantum_mathematical_operations::operator/ | ( | const Array< Complex > & | in, |
Double | f | ||
) |
Array<DComplex> casa::QMath_global_functions_Quantum_mathematical_operations::operator/ | ( | const Array< DComplex > & | in, |
Double | f | ||
) |
Array<Float> casa::QMath_global_functions_Quantum_mathematical_operations::operator/ | ( | const Array< Float > & | in, |
Double | f | ||
) |
Array<Int> casa::QMath_global_functions_Quantum_mathematical_operations::operator/ | ( | const Array< Int > & | in, |
Double | f | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::pow | ( | const Quantum< Qtype > & | left, |
Int | p | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::root | ( | const Quantum< Qtype > & | left, |
Int | p | ||
) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::sin | ( | const Quantum< Qtype > & | left | ) |
Trigonometric and exponential functions For direct functions input should be in angles, output will be empty units.
For inverse functions input should be empty, output in radians
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::sqrt | ( | const Quantum< Qtype > & | left | ) |
Quantum<Qtype> casa::QMath_global_functions_Quantum_mathematical_operations::tan | ( | const Quantum< Qtype > & | left | ) |