Go to the documentation of this file.
29 #ifndef CASA_COMPLEX_H
30 #define CASA_COMPLEX_H
34 #include <casacore/casa/aips.h>
35 #include <casacore/casa/BasicSL/Complexfwd.h>
36 #include <casacore/casa/complex.h>
177 {
return left==right ?
True :
norm(left) >=
norm(right); }
181 {
return left==right ?
True :
norm(left) <=
norm(right); }
274 {
return near(val1, val2, tol); }
277 {
return near(val1, val2, tol); }
280 {
return nearAbs(val1, val2, tol); }
283 {
return nearAbs(val1, val2, tol); }
291 {
return x >= y ? x : y; }
293 {
return x >= y ? x : y; }
296 {
return x <= y ? x : y; }
298 {
return x <= y ? x : y; }
353 inline float conj(
float x) {
return x; }
354 inline double conj(
double x) {
return x; }
355 using casacore::operator>;
356 using casacore::operator>=;
357 using casacore::operator<;
358 using casacore::operator<=;
DComplex floor(const DComplex &x)
LatticeExprNode acos(const LatticeExprNode &expr)
Bool near(const Complex &val1, const Complex &val2, Double tol=1.0e-5)
The near functions.
DComplex fmod(const DComplex &in, const DComplex &f)
fmod
Complex floor(const Complex &x)
Complex erfc(const Complex &in)
T norm(const TableVector< T > &tv)
Bool isInf(const DComplex &val)
std::complex< Double > DComplex
TableExprNode isFinite(const TableExprNode &node)
Function to test if a scalar or array is finite.
bool allNear(const C1 &l, const C2 &r, U tolerance)
Test if all elements of the containers are relatively near each other.
DComplex operator+(const DComplex &d, const Complex &c)
ArrayMath::pow needs this pow function.
Bool allNear(const DComplex &val1, const DComplex &val2, Double tol=1.0e-13)
DComplex square(const DComplex &val)
LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
Bool near(const DComplex &val1, const DComplex &val2, Double tol=1.0e-13)
Complex acos(const Complex &in)
Complex operator*(Double f, const Complex &val)
LatticeExprNode abs(const LatticeExprNode &expr)
Numerical 1-argument functions which result in a real number regardless of input expression type.
void setNaN(Complex &val)
LatticeExprNode operator>=(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode operator<(const LatticeExprNode &left, const LatticeExprNode &right)
DComplex cube(const DComplex &val)
Complex max(const Complex &x, const Complex &y)
Max and min, floor and ceil functions.
LatticeExprNode atan(const LatticeExprNode &expr)
Complex atan2(const Complex &in, const Complex &t2)
void setInf(DComplex &val)
Complex operator/(Int f, const Complex &val)
TableExprNode isInf(const TableExprNode &node)
Complex square(const Complex &val)
Complex operator*(const Complex &val, Double f)
QMath and scimath need these operators * and /.
Bool nearAbs(const Complex &val1, const Complex &val2, Double tol=1.0e-5)
Complex operator*(Int f, const Complex &val)
Bool isFinite(const DComplex &val)
DComplex asin(const DComplex &in)
DComplex operator-(const DComplex &d, const Complex &c)
Bool operator>(const Complex &left, const Complex &right)
Bool isFinite(const Complex &val)
Complex min(const Complex &x, const Complex &y)
LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode atan2(const LatticeExprNode &left, const LatticeExprNode &right)
Numerical 2-argument functions.
DComplex erfc(const DComplex &in)
Bool isNaN(const DComplex &val)
DComplex NaN and Infinity.
Float fabs(const Complex &val)
Double fabs(const DComplex &val)
Additional complex mathematical functions.
Bool near(const GaussianBeam &left, const GaussianBeam &other, const Double relWidthTol, const Quantity &absPaTol)
LatticeExprNode ceil(const LatticeExprNode &expr)
DComplex atan(const DComplex &in)
Inverse trigonometry.
Bool operator>=(const Complex &left, const Complex &right)
Complex comparisons.
Complex asin(const Complex &in)
Complex operator/(const Complex &val, Double f)
void setNaN(DComplex &val)
LatticeExprNode asin(const LatticeExprNode &expr)
this file contains all the compiler specific defines
DComplex operator-(const Complex &c, const DComplex &d)
const Double c
Fundamental physical constants (SI units):
Bool operator<=(const Complex &left, const Complex &right)
DComplex atan2(const DComplex &in, const DComplex &t2)
DComplex max(const DComplex &x, const DComplex &y)
Complex atan(const Complex &in)
Bool operator<(const Complex &left, const Complex &right)
const Double e
e and functions thereof:
Bool nearAbs(const DComplex &val1, const DComplex &val2, Double tol=1.0e-13)
Complex ceil(const Complex &x)
Bool isNaN(const Complex &val)
Complex NaN and Infinity.
LatticeExprNode isNaN(const LatticeExprNode &expr)
Test if a value is a NaN.
Define real & complex conjugation for non-complex types and put comparisons into std namespace.
Complex fmod(const Complex &in, const Complex &f)
Complex operator*(const Complex &val, Int f)
These operators are useful, otherwise both Float and Double are applicable for Ints.
Bool isInf(const Complex &val)
LatticeExprNode operator<=(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode floor(const LatticeExprNode &expr)
bool Bool
Define the standard types used by Casacore.
DComplex operator+(const Complex &c, const DComplex &d)
std::complex< Float > Complex
Complex operator/(Double f, const Complex &val)
void setInf(Complex &val)
DComplex ceil(const DComplex &x)
Complex operator/(const Complex &val, Int f)
DComplex acos(const DComplex &in)
DComplex min(const DComplex &x, const DComplex &y)
Bool allNearAbs(const Complex &val1, const Complex &val2, Double tol=1.0e-5)
LatticeExprNode operator>(const LatticeExprNode &left, const LatticeExprNode &right)
Complex erf(const Complex &in)
Complex cube(const Complex &val)
bool allNearAbs(const C1 &l, const C2 &r, U tolerance)
Test if all elements of the containers are absolutely near each other.
Bool allNear(const Complex &val1, const Complex &val2, Double tol=1.0e-5)
Bool allNearAbs(const DComplex &val1, const DComplex &val2, Double tol=1.0e-13)
DComplex erf(const DComplex &in)
Error function.
TableExprNode nearAbs(const TableExprNode &left, const TableExprNode &right)