28 #ifndef LATTICES_LATTICEEXPRNODE_H
29 #define LATTICES_LATTICEEXPRNODE_H
47 template <
class T>
class LatticeExpr;
48 template <
class T>
class Lattice;
49 template <
class T>
class MaskedLattice;
50 template <
class T>
class Block;
53 class LattRegionHolder;
54 class LatticeExprNode;
60 LatticeExprNode
operator+ (
const LatticeExprNode& expr);
61 LatticeExprNode
operator- (
const LatticeExprNode& expr);
62 LatticeExprNode
operator! (
const LatticeExprNode& expr);
67 LatticeExprNode
operator+ (
const LatticeExprNode& left,
68 const LatticeExprNode& right);
69 LatticeExprNode
operator- (
const LatticeExprNode& left,
70 const LatticeExprNode& right);
71 LatticeExprNode
operator* (
const LatticeExprNode& left,
72 const LatticeExprNode& right);
73 LatticeExprNode
operator/ (
const LatticeExprNode& left,
74 const LatticeExprNode& right);
75 LatticeExprNode
operator% (
const LatticeExprNode& left,
76 const LatticeExprNode& right);
77 LatticeExprNode
operator^ (
const LatticeExprNode& left,
78 const LatticeExprNode& right);
83 LatticeExprNode
operator== (
const LatticeExprNode& left,
84 const LatticeExprNode& right);
85 LatticeExprNode
operator> (
const LatticeExprNode& left,
86 const LatticeExprNode& right);
87 LatticeExprNode
operator>= (
const LatticeExprNode& left,
88 const LatticeExprNode& right);
89 LatticeExprNode
operator< (
const LatticeExprNode& left,
90 const LatticeExprNode& right);
91 LatticeExprNode
operator<= (
const LatticeExprNode& left,
92 const LatticeExprNode& right);
93 LatticeExprNode
operator!= (
const LatticeExprNode& left,
94 const LatticeExprNode& right);
99 LatticeExprNode
operator&& (
const LatticeExprNode& left,
100 const LatticeExprNode& right);
101 LatticeExprNode
operator|| (
const LatticeExprNode& left,
102 const LatticeExprNode& right);
107 LatticeExprNode
sin (
const LatticeExprNode& expr);
108 LatticeExprNode
sinh (
const LatticeExprNode& expr);
109 LatticeExprNode
asin (
const LatticeExprNode& expr);
110 LatticeExprNode
cos (
const LatticeExprNode& expr);
111 LatticeExprNode
cosh (
const LatticeExprNode& expr);
112 LatticeExprNode
acos (
const LatticeExprNode& expr);
113 LatticeExprNode
tan (
const LatticeExprNode& expr);
114 LatticeExprNode
tanh (
const LatticeExprNode& expr);
115 LatticeExprNode
atan (
const LatticeExprNode& expr);
116 LatticeExprNode
exp (
const LatticeExprNode& expr);
117 LatticeExprNode
log (
const LatticeExprNode& expr);
118 LatticeExprNode
log10(
const LatticeExprNode& expr);
119 LatticeExprNode
sqrt (
const LatticeExprNode& expr);
120 LatticeExprNode
sign (
const LatticeExprNode& expr);
121 LatticeExprNode
round(
const LatticeExprNode& expr);
122 LatticeExprNode
ceil (
const LatticeExprNode& expr);
123 LatticeExprNode
floor(
const LatticeExprNode& expr);
124 LatticeExprNode
conj (
const LatticeExprNode& expr);
129 LatticeExprNode
atan2 (
const LatticeExprNode& left,
130 const LatticeExprNode& right);
131 LatticeExprNode
pow (
const LatticeExprNode& left,
132 const LatticeExprNode& right);
133 LatticeExprNode
fmod (
const LatticeExprNode& left,
134 const LatticeExprNode& right);
135 LatticeExprNode
min (
const LatticeExprNode& left,
136 const LatticeExprNode& right);
137 LatticeExprNode
max (
const LatticeExprNode& left,
138 const LatticeExprNode& right);
142 LatticeExprNode
formComplex (
const LatticeExprNode& left,
143 const LatticeExprNode& right);
148 LatticeExprNode
abs (
const LatticeExprNode& expr);
149 LatticeExprNode
arg (
const LatticeExprNode& expr);
150 LatticeExprNode
real (
const LatticeExprNode& expr);
151 LatticeExprNode
imag (
const LatticeExprNode& expr);
157 LatticeExprNode
min (
const LatticeExprNode& expr);
158 LatticeExprNode
max (
const LatticeExprNode& expr);
159 LatticeExprNode
sum (
const LatticeExprNode& expr);
160 LatticeExprNode
median (
const LatticeExprNode& expr);
161 LatticeExprNode
mean (
const LatticeExprNode& expr);
162 LatticeExprNode
variance (
const LatticeExprNode& expr);
163 LatticeExprNode
stddev (
const LatticeExprNode& expr);
164 LatticeExprNode
avdev (
const LatticeExprNode& expr);
170 LatticeExprNode
fractile (
const LatticeExprNode& expr,
171 const LatticeExprNode& fraction);
180 const LatticeExprNode& fraction1,
181 const LatticeExprNode& fraction2);
183 const LatticeExprNode& fraction);
189 LatticeExprNode
nelements (
const LatticeExprNode& expr);
194 LatticeExprNode
ndim (
const LatticeExprNode& expr);
204 LatticeExprNode
length (
const LatticeExprNode& expr,
205 const LatticeExprNode& axis);
216 LatticeExprNode
indexin (
const LatticeExprNode& axis,
217 const LatticeExprNode& indexFlags);
222 LatticeExprNode
rebin (
const LatticeExprNode& expr,
223 const LatticeExprNode& bin);
226 LatticeExprNode
isNaN (
const LatticeExprNode& expr);
233 LatticeExprNode
any (
const LatticeExprNode& expr);
234 LatticeExprNode
all (
const LatticeExprNode& expr);
235 LatticeExprNode
ntrue (
const LatticeExprNode& expr);
236 LatticeExprNode
nfalse(
const LatticeExprNode& expr);
241 LatticeExprNode
mask (
const LatticeExprNode& expr);
244 LatticeExprNode
value (
const LatticeExprNode& expr);
249 LatticeExprNode
amp (
const LatticeExprNode& left,
250 const LatticeExprNode& right);
255 LatticeExprNode
pa (
const LatticeExprNode& left,
256 const LatticeExprNode& right);
261 const LatticeExprNode& right);
267 LatticeExprNode
iif (
const LatticeExprNode& condition,
268 const LatticeExprNode& arg1,
269 const LatticeExprNode& arg2);
276 LatticeExprNode
replace (
const LatticeExprNode& arg1,
277 const LatticeExprNode& arg2);
288 LatticeExprNode
toFloat (
const LatticeExprNode& expr);
289 LatticeExprNode
toDouble (
const LatticeExprNode& expr);
290 LatticeExprNode
toComplex (
const LatticeExprNode& expr);
291 LatticeExprNode
toDComplex(
const LatticeExprNode& expr);
292 LatticeExprNode
toBool (
const LatticeExprNode& expr);
297 LatticeExprNode
convertType (
const LatticeExprNode& expr,
const Bool*);
844 {
return fmod (left, right); }
847 {
return pow (left, right); }
A Vector of integers, for indexing into Array<T> objects.
LatticeExprNode log10(const LatticeExprNode &expr)
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
friend LatticeExprNode tan(const LatticeExprNode &expr)
friend LatticeExprNode operator^(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode log(const LatticeExprNode &expr)
const LELAttribute & getAttribute() const
Get the attribute object of the expression.
static LatticeExprNode newLogBinary(LELBinaryEnums::Operation oper, const LatticeExprNode &left, const LatticeExprNode &right)
Create a new node for a logical binary operator.
friend LatticeExprNode all(const LatticeExprNode &expr)
This LEL class holds an array with a mask.
LatticeExprNode arg(const LatticeExprNode &expr)
friend LatticeExprNode ntrue(const LatticeExprNode &expr)
friend LatticeExprNode sqrt(const LatticeExprNode &expr)
friend LatticeExprNode real(const LatticeExprNode &expr)
LatticeExprNode median(const LatticeExprNode &expr)
std::complex< Float > Complex
LatticeExprNode toComplex(const LatticeExprNode &expr)
static LatticeExprNode newNumUnary(LELUnaryEnums::Operation oper, const LatticeExprNode &expr)
Create a new node for a numerical unary operation.
friend LatticeExprNode spectralindex(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds the spectral index alpha = log(s1/s2) / log(f1/f2).
friend LatticeExprNode median(const LatticeExprNode &expr)
friend LatticeExprNode pa(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds 180/pi*atan2(left,right)/2.
LatticeExprNode operator/(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
friend LatticeExprNode exp(const LatticeExprNode &expr)
friend LatticeExprNode operator>(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode imag(const LatticeExprNode &expr)
LatticeExprNode toBool(const LatticeExprNode &expr)
friend LatticeExprNode sign(const LatticeExprNode &expr)
friend LatticeExprNode operator*(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode floor(const LatticeExprNode &expr)
Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking of the LatticeExpr which is delegated to all of its parts.
LatticeExprNode sum(const LatticeExprNode &expr)
LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode round(const LatticeExprNode &expr)
friend LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode operator%(const LatticeExprNode &left, const LatticeExprNode &right)
Bool isScalar() const
Is the result of "eval" a scalar?
friend LatticeExprNode sinh(const LatticeExprNode &expr)
Bool isScalar() const
Is expression a scalar?
friend LatticeExprNode abs(const LatticeExprNode &expr)
Numerical 1-argument functions which result in a real number regardless of input expression type...
friend LatticeExprNode atan(const LatticeExprNode &expr)
CountedPtr< LELInterface< Double > > makeDouble() const
void doPrepare() const
Do the preparation for the evaluation.
LatticeExprNode ntrue(const LatticeExprNode &expr)
friend LatticeExprNode indexin(const LatticeExprNode &axis, const LatticeExprNode &indexFlags)
2-argument function telling per pixel if its index on the given axis is contained in the 2nd argument...
friend LatticeExprNode operator==(const LatticeExprNode &left, const LatticeExprNode &right)
Relational binary operators.
DataType dataType() const
Get the data type of the expression.
A templated, abstract base class for array-like objects with masks.
Bool isMasked() const
Is the expression result masked?
LatticeExprNode fractile(const LatticeExprNode &expr, const LatticeExprNode &fraction)
Determine the value of the element at the part fraction from the beginning of the given lattice...
static LatticeExprNode newNumReal1D(LELFunctionEnums::Function func, const LatticeExprNode &expr)
Create a new node for a numerical function with 1 argument that returns a real number.
Array< Float > getArrayFloat() const
Evaluate the expression (in case it is a constant array).
LatticeExprNode exp(const LatticeExprNode &expr)
Array< Complex > getArrayComplex() const
friend LatticeExprNode operator<(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode & operator=(const LatticeExprNode &other)
Assignment (reference semantics)
static LatticeExprNode newComplexFunc1D(LELFunctionEnums::Function func, const LatticeExprNode &expr)
Create a new node for a complex numerical function with 1 argument.
bool operator==(const casacore_allocator< T, ALIGNMENT > &, const casacore_allocator< T, ALIGNMENT > &)
LatticeExprNode toFloat(const LatticeExprNode &expr)
Functions to convert to the given data type.
friend LatticeExprNode operator>=(const LatticeExprNode &left, const LatticeExprNode &right)
This LEL class holds a possible referenced array with a mask.
friend LatticeExprNode operator%(const LatticeExprNode &left, const LatticeExprNode &right)
Bool replaceScalarExpr()
Replace a scalar subexpression by its result.
virtual ~LatticeExprNode()
Destructor, does nothing.
LatticeExprNode fractileRange(const LatticeExprNode &expr, const LatticeExprNode &fraction1, const LatticeExprNode &fraction2)
Determine the value range of the elements at the part fraction1 and fraction2 from the beginning of t...
LatticeExprNode any(const LatticeExprNode &expr)
Functions operating on a logical expression resulting in a scalar; Functions "any" (are any pixels "T...
LatticeExprNode floor(const LatticeExprNode &expr)
LatticeExprNode cos(const LatticeExprNode &expr)
static LatticeExprNode newNumBinary(LELBinaryEnums::Operation oper, const LatticeExprNode &left, const LatticeExprNode &right)
Create a new node for a numerical binary operator.
static LatticeExprNode newNumFunc1D(LELFunctionEnums::Function func, const LatticeExprNode &expr)
Create a new node for a numerical function with 1 argument.
friend LatticeExprNode fractile(const LatticeExprNode &expr, const LatticeExprNode &fraction)
Determine the value of the element at the part fraction from the beginning of the given lattice...
CountedPtr< LELInterface< Float > > makeFloat() const
Convert the expression to another data type.
friend LatticeExprNode log(const LatticeExprNode &expr)
DComplex getDComplex() const
static DataType resultDataType(DataType left, DataType right)
Determine the resulting data type from the given data types.
friend LatticeExprNode imag(const LatticeExprNode &expr)
LatticeExprNode operator>=(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode formComplex(const LatticeExprNode &left, const LatticeExprNode &right)
Form a complex number from two real numbers.
LatticeExprNode conj(const LatticeExprNode &expr)
friend LatticeExprNode operator/(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode min(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode asin(const LatticeExprNode &expr)
friend LatticeExprNode ndim(const LatticeExprNode &expr)
1-argument function to get the dimensionality of a lattice.
friend LatticeExprNode toFloat(const LatticeExprNode &expr)
Functions to convert to the given data type.
void evalRef(LELArrayRef< Double > &result, const Slicer §ion) const
LatticeExprNode nfalse(const LatticeExprNode &expr)
friend LatticeExprNode toBool(const LatticeExprNode &expr)
friend LatticeExprNode operator!=(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode operator!(const LatticeExprNode &expr)
friend LatticeExprNode log10(const LatticeExprNode &expr)
friend LatticeExprNode toComplex(const LatticeExprNode &expr)
friend LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.
void eval(LELArray< Float > &result, const Slicer §ion) const
Evaluate the expression.
LatticeExprNode pa(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds 180/pi*atan2(left,right)/2.
friend LatticeExprNode operator+(const LatticeExprNode &expr)
All global functions need to be declared as friends.
LatticeExprNode tanh(const LatticeExprNode &expr)
LatticeExprNode spectralindex(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds the spectral index alpha = log(s1/s2) / log(f1/f2).
Referenced counted pointer for constant data.
LatticeExprNode min(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode avdev(const LatticeExprNode &expr)
static LatticeExprNode newNumFunc2D(LELFunctionEnums::Function func, const LatticeExprNode &left, const LatticeExprNode &right)
Create a new node for a numerical function with 2 arguments.
friend LatticeExprNode isNaN(const LatticeExprNode &expr)
Test if a value is a NaN.
const LELAttribute * pAttr_p
void evalRef(LELArrayRef< Bool > &result, const Slicer §ion) const
friend LatticeExprNode cosh(const LatticeExprNode &expr)
LatticeExprNode replace(const LatticeExprNode &arg1, const LatticeExprNode &arg2)
This function replaces every masked-off element in the first argument with the corresponding element ...
friend LatticeExprNode conj(const LatticeExprNode &expr)
friend LatticeExprNode fractileRange(const LatticeExprNode &expr, const LatticeExprNode &fraction1, const LatticeExprNode &fraction2)
Determine the value range of the elements at the part fraction1 and fraction2 from the beginning of t...
Bool isRegion() const
Is the expression node a region?
LatticeExprNode operator[](const LatticeExprNode &cond) const
Masking operator using a condition.
std::complex< Double > DComplex
friend LatticeExprNode atan2(const LatticeExprNode &left, const LatticeExprNode &right)
Numerical 2-argument functions.
LatticeExprNode abs(const LatticeExprNode &expr)
Numerical 1-argument functions which result in a real number regardless of input expression type...
LatticeExprNode length(const LatticeExprNode &expr, const LatticeExprNode &axis)
2-argument function to get the length of an axis.
friend LatticeExprNode variance(const LatticeExprNode &expr)
LatticeExprNode ndim(const LatticeExprNode &expr)
1-argument function to get the dimensionality of a lattice.
LatticeExprNode operator<=(const LatticeExprNode &left, const LatticeExprNode &right)
void evalRef(LELArrayRef< Complex > &result, const Slicer §ion) const
Array< Double > getArrayDouble() const
LatticeExprNode toDouble(const LatticeExprNode &expr)
static LELAttribute checkArg(const Block< LatticeExprNode > &arg, const Block< Int > &argType, Bool expectArray, Bool matchAxes=True)
Check the arguments of a function and return the resulting attribute object.
LatticeExprNode amp(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds sqrt(left^2+right^2).
friend LatticeExprNode pow(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode()
Default constructor.
LatticeExprNode formComplex(const LatticeExprNode &left, const LatticeExprNode &right)
Form a complex number from two real numbers.
LatticeExprNode iif(const LatticeExprNode &condition, const LatticeExprNode &arg1, const LatticeExprNode &arg2)
Function resembling the ternary ?: construct in C++.
LatticeExprNode nelements(const LatticeExprNode &expr)
1-argument function to get the number of elements in a lattice.
friend LatticeExprNode toDouble(const LatticeExprNode &expr)
LatticeExprNode sign(const LatticeExprNode &expr)
LatticeExprNode sqrt(const LatticeExprNode &expr)
LatticeExprNode tan(const LatticeExprNode &expr)
friend LatticeExprNode ceil(const LatticeExprNode &expr)
LatticeExprNode atan(const LatticeExprNode &expr)
Class to hold a region of interest in an image.
friend LatticeExprNode operator&&(const LatticeExprNode &left, const LatticeExprNode &right)
Logical binary operators.
bool Bool
Define the standard types used by Casacore.
const IPosition & getIPosition() const
Get the IPosition.
static Bool areRegions(const LatticeExprNode &left, const LatticeExprNode &right)
Test if both operands represent a region.
LatticeExprNode convertType(const LatticeExprNode &expr, const Float *)
const IPosition & shape() const
Return the shape of the Lattice including all degenerate axes (ie.
LatticeExprNode stddev(const LatticeExprNode &expr)
friend LatticeExprNode nfalse(const LatticeExprNode &expr)
LatticeExprNode round(const LatticeExprNode &expr)
friend LatticeExprNode cos(const LatticeExprNode &expr)
CountedPtr< LELInterface< Complex > > makeComplex() const
CountedPtr< LELInterface< Double > > pExprDouble_p
CountedPtr< LELInterface< Bool > > pExprBool_p
Bool donePrepare_p
Member variables.
friend LatticeExprNode tanh(const LatticeExprNode &expr)
friend LatticeExprNode length(const LatticeExprNode &expr, const LatticeExprNode &axis)
2-argument function to get the length of an axis.
Bool isMasked() const
Is the result of "eval" masked?
Ancillary information for the LEL letter classes.
friend LatticeExprNode operator!(const LatticeExprNode &expr)
CountedPtr< LELInterface< DComplex > > pExprDComplex_p
LatticeExprNode operator>(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode atan2(const LatticeExprNode &left, const LatticeExprNode &right)
Numerical 2-argument functions.
Specify which elements to extract from an n-dimensional array.
LatticeExprNode toDComplex(const LatticeExprNode &expr)
friend LatticeExprNode replace(const LatticeExprNode &arg1, const LatticeExprNode &arg2)
This function replaces every masked-off element in the first argument with the corresponding element ...
Complex getComplex() const
friend LatticeExprNode operator-(const LatticeExprNode &expr)
CountedPtr< LELInterface< Bool > > makeBool() const
friend LatticeExprNode sum(const LatticeExprNode &expr)
Bool isInvalidScalar() const
Holds the node an invalid scalar?
LatticeExprNode operator+(const LatticeExprNode &expr)
Global functions operating on a LatticeExprNode.
static LatticeExprNode newRealFunc1D(LELFunctionEnums::Function func, const LatticeExprNode &expr)
Create a new node for a real numerical function with 1 argument.
friend LatticeExprNode stddev(const LatticeExprNode &expr)
friend LatticeExprNode mean(const LatticeExprNode &expr)
LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
Bridging class to allow C++ expressions involving lattices.
friend LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
LatticeExprNode asin(const LatticeExprNode &expr)
friend LatticeExprNode arg(const LatticeExprNode &expr)
LatticeExprNode mean(const LatticeExprNode &expr)
CountedPtr< LELInterface< Complex > > pExprComplex_p
const IPosition & shape() const
What is the shape of the expression?
void evalRef(LELArrayRef< DComplex > &result, const Slicer §ion) const
LatticeExprNode sinh(const LatticeExprNode &expr)
friend LatticeExprNode avdev(const LatticeExprNode &expr)
LatticeExprNode acos(const LatticeExprNode &expr)
friend LatticeExprNode iif(const LatticeExprNode &condition, const LatticeExprNode &arg1, const LatticeExprNode &arg2)
Function resembling the ternary ?: construct in C++.
Array< DComplex > getArrayDComplex() const
static Int makeEqualDim(LatticeExprNode &expr0, LatticeExprNode &expr1)
Make (if needed and if possible) the expression nodes such that the dimensionalities are equal...
LatticeExprNode operator-(const LatticeExprNode &expr)
Bool isRegion() const
Is expression a region?
friend LatticeExprNode nelements(const LatticeExprNode &expr)
1-argument function to get the number of elements in a lattice.
friend LatticeExprNode toDComplex(const LatticeExprNode &expr)
LatticeExprNode operator^(const LatticeExprNode &left, const LatticeExprNode &right)
Array< Bool > getArrayBool() const
LatticeExprNode operator<(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode isNaN(const LatticeExprNode &expr)
Test if a value is a NaN.
CountedPtr< LELInterface< DComplex > > makeDComplex() const
static LatticeExprNode newBinaryCmp(LELBinaryEnums::Operation oper, const LatticeExprNode &left, const LatticeExprNode &right)
Create a new node for a comparison binary operator.
friend LatticeExprNode operator<=(const LatticeExprNode &left, const LatticeExprNode &right)
Bool hasLock(FileLocker::LockType) const
LatticeExprNode variance(const LatticeExprNode &expr)
void evalRef(LELArrayRef< Float > &result, const Slicer §ion) const
Evaluate the expression.
LockType
Define the possible lock types.
LatticeExprNode ceil(const LatticeExprNode &expr)
LatticeExprNode pow(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode indexin(const LatticeExprNode &axis, const LatticeExprNode &indexFlags)
2-argument function telling per pixel if its index on the given axis is contained in the 2nd argument...
bool operator!=(const casacore_allocator< T, ALIGNMENT > &, const casacore_allocator< T, ALIGNMENT > &)
LatticeExprNode all(const LatticeExprNode &expr)
CountedPtr< LELInterface< Float > > pExprFloat_p
friend LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode operator||(const LatticeExprNode &left, const LatticeExprNode &right)
friend LatticeExprNode any(const LatticeExprNode &expr)
Functions operating on a logical expression resulting in a scalar; Functions "any" (are any pixels "T...
LatticeExprNode operator||(const LatticeExprNode &left, const LatticeExprNode &right)
MVBaseline operator*(const RotMatrix &left, const MVBaseline &right)
Rotate a Baseline vector with rotation matrix and other multiplications.
LatticeExprNode cosh(const LatticeExprNode &expr)
friend LatticeExprNode amp(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds sqrt(left^2+right^2).
LatticeExprNode real(const LatticeExprNode &expr)
friend LatticeExprNode rebin(const LatticeExprNode &expr, const LatticeExprNode &bin)
2-argument function rebinning Lattice by given factors.
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.
LatticeExprNode operator&&(const LatticeExprNode &left, const LatticeExprNode &right)
Logical binary operators.
friend LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
Abstract base class to define a region of interest in lattice coordinates.
friend LatticeExprNode acos(const LatticeExprNode &expr)
LatticeExprNode rebin(const LatticeExprNode &expr, const LatticeExprNode &bin)
2-argument function rebinning Lattice by given factors.