|
| 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) |
| |
| 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) |
| |
| Int | ceil (const Int &val) |
| | Functions to implement integer ceil/floor and others
|
| |
| Int | floor (const Int &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.
Intended use:
Public interface
Review Status
- Reviewed By:
- UNKNOWN
- Date Reviewed:
- before2004/08/25
- Test programs:
- tQuantum
Prerequisite
Etymology
QMath derived from Quantum Mathematical functions
Synopsis
Quantities are values with a unit. Their basic specification can be one of two forms:
String: the storage and methods of handling collections of characters.
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
Quantum< Double > Quantity
A unit is a string of known unit fields separated by a space or a. (to indicate multiply) or a / (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:
-
unary
+(Quantum<T>)
-
unary
-(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;
Motivation
To separate the mathematical operations from Quantum.
To Do
-
Some inlining (did not work first go)
Definition at line 117 of file QMath.h.