28 #ifndef LATTICES_LELFUNCTION_H
29 #define LATTICES_LELFUNCTION_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/lattices/LEL/LELInterface.h>
35 #include <casacore/lattices/LEL/LatticeExprNode.h>
36 #include <casacore/lattices/LEL/LELFunctionEnums.h>
37 #include <casacore/casa/Containers/Block.h>
120 const Slicer& section)
const;
222 const Slicer& section)
const;
327 const Slicer& section)
const;
433 const Slicer& section)
const;
545 const Slicer& section)
const;
647 const Slicer& section)
const;
744 const Slicer& section)
const;
840 const Slicer& section)
const;
869 #ifndef CASACORE_NO_AUTO_TEMPLATES
870 #include <casacore/lattices/LEL/LELFunction.tcc>
Referenced counted pointer for constant data.
LockType
Define the possible lock types.
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
CountedPtr< LELInterface< T > > pExpr_p
~LELFunction1D()
Destructor
virtual Bool hasLock(FileLocker::LockType) const
LELFunction1D(const LELFunctionEnums::Function function, const CountedPtr< LELInterface< T > > &expr)
Constructor takes operation and expression to be operated upon.
LELFunctionEnums::Function function_p
virtual LELScalar< T > getScalar() const
Recursively evaluate the scalar expression.
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
virtual String className() const
Get class name.
virtual void eval(LELArray< T > &result, const Slicer §ion) const
Recursively evaluate the expression
This LEL class handles logical functions.
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
~LELFunctionBool()
Destructor
LELFunctionEnums::Function function_p
LELFunctionBool(const LELFunctionEnums::Function function, const Block< LatticeExprNode > &expr)
Constructor takes operation and left and right expressions to be operated upon.
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
virtual LELScalar< Bool > getScalar() const
Recursively evaluate the scalar expression
Block< LatticeExprNode > arg_p
virtual void eval(LELArray< Bool > &result, const Slicer §ion) const
Recursively evaluate the expression
virtual String className() const
Get class name.
virtual Bool hasLock(FileLocker::LockType) const
This LEL class handles complex numerical functions.
virtual String className() const
Get class name.
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
~LELFunctionComplex()
Destructor
virtual Bool hasLock(FileLocker::LockType) const
virtual void eval(LELArray< Complex > &result, const Slicer §ion) const
Recursively evaluate the expression
LELFunctionEnums::Function function_p
Block< LatticeExprNode > arg_p
virtual LELScalar< Complex > getScalar() const
Recursively evaluate the scalar expression
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
LELFunctionComplex(const LELFunctionEnums::Function function, const Block< LatticeExprNode > &expr)
Constructor takes operation and left and right expressions to be operated upon.
This LEL class handles double complex numerical functions.
virtual Bool hasLock(FileLocker::LockType) const
virtual void eval(LELArray< DComplex > &result, const Slicer §ion) const
Recursively evaluate the expression
virtual String className() const
Get class name.
virtual LELScalar< DComplex > getScalar() const
Recursively evaluate the scalar expression
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
LELFunctionEnums::Function function_p
~LELFunctionDComplex()
Destructor
Block< LatticeExprNode > arg_p
LELFunctionDComplex(const LELFunctionEnums::Function function, const Block< LatticeExprNode > &expr)
Constructor takes operation and left and right expressions to be operated upon.
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
This LEL class handles numerical functions whose return type is a Double.
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
virtual LELScalar< Double > getScalar() const
Recursively evaluate the scalar expression
uInt nMaskedOn(const Array< Bool > &mask) const
virtual void eval(LELArray< Double > &result, const Slicer §ion) const
Recursively evaluate the expression
Block< LatticeExprNode > arg_p
~LELFunctionDouble()
Destructor
virtual Bool hasLock(FileLocker::LockType) const
virtual String className() const
Get class name.
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
LELFunctionEnums::Function function_p
uInt nMaskedElements(const LatticeExprNode &) const
Count number of masked elements in a LatticeExprNode.
LELFunctionDouble(const LELFunctionEnums::Function function, const Block< LatticeExprNode > &expr)
Constructor takes operation and left and right expressions to be operated upon.
This LEL class handles numerical functions whose return type is a Float.
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
virtual LELScalar< Float > getScalar() const
Recursively evaluate the scalar expression
virtual void eval(LELArray< Float > &result, const Slicer §ion) const
Recursively evaluate the expression
LELFunctionEnums::Function function_p
Block< LatticeExprNode > arg_p
~LELFunctionFloat()
Destructor
virtual String className() const
Get class name.
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
virtual Bool hasLock(FileLocker::LockType) const
LELFunctionFloat(const LELFunctionEnums::Function function, const Block< LatticeExprNode > &expr)
Constructor takes operation and left and right expressions to be operated upon.
This LEL class handles functions with a variable number of arguments.
Block< LatticeExprNode > arg_p
LELFunctionND(const LELFunctionEnums::Function function, const Block< LatticeExprNode > &expr)
Constructor takes operation and expressions to be operated upon.
LELFunctionEnums::Function function_p
~LELFunctionND()
Destructor
virtual LELScalar< T > getScalar() const
Recursively evaluate the scalar expression
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
virtual String className() const
Get class name.
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
virtual void eval(LELArray< T > &result, const Slicer §ion) const
Recursively evaluate the expression
virtual Bool hasLock(FileLocker::LockType) const
This LEL class handles numerical (real only) 1-argument functions.
virtual Bool hasLock(FileLocker::LockType) const
~LELFunctionReal1D()
Destructor
virtual void eval(LELArray< T > &result, const Slicer §ion) const
Recursively evaluate the expression
LELFunctionReal1D(const LELFunctionEnums::Function function, const CountedPtr< LELInterface< T > > &expr)
Constructor takes operation and expression to be operated upon.
virtual LELScalar< T > getScalar() const
Recursively evaluate the scalar expression
virtual Bool prepareScalarExpr()
Do further preparations (e.g.
virtual String className() const
Get class name.
LELFunctionEnums::Function function_p
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
CountedPtr< LELInterface< T > > pExpr_p
String: the storage and methods of handling collections of characters.
this file contains all the compiler specific defines
LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
bool Bool
Define the standard types used by Casacore.