26#ifndef LATTICES_LELFUNCTION_H
27#define LATTICES_LELFUNCTION_H
31#include <casacore/casa/aips.h>
32#include <casacore/lattices/LEL/LELInterface.h>
33#include <casacore/lattices/LEL/LatticeExprNode.h>
34#include <casacore/lattices/LEL/LELFunctionEnums.h>
35#include <casacore/casa/Containers/Block.h>
118 const Slicer& section)
const;
220 const Slicer& section)
const;
325 const Slicer& section)
const;
431 const Slicer& section)
const;
543 const Slicer& section)
const;
645 const Slicer& section)
const;
742 const Slicer& section)
const;
838 const Slicer& section)
const;
867#ifndef CASACORE_NO_AUTO_TEMPLATES
868#include <casacore/lattices/LEL/LELFunction.tcc>
LockType
Define the possible lock types.
std::shared_ptr< LELInterface< T > > pExpr_p
virtual LELScalar< T > getScalar() const
Recursively evaluate the scalar expression.
virtual Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
~LELFunction1D()
Destructor
virtual Bool hasLock(FileLocker::LockType) const
LELFunctionEnums::Function function_p
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
LELFunction1D(const LELFunctionEnums::Function function, const std::shared_ptr< LELInterface< T > > &expr)
Constructor takes operation and expression to be operated upon.
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.
Block< LatticeExprNode > arg_p
virtual void eval(LELArray< Bool > &result, const Slicer §ion) const
Recursively evaluate the expression
virtual LELScalar< Bool > getScalar() const
Recursively evaluate the scalar 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
virtual LELScalar< Complex > getScalar() const
Recursively evaluate the scalar expression
Block< LatticeExprNode > arg_p
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 Bool lock(FileLocker::LockType, uInt nattempts)
Handle locking/syncing of a lattice in a lattice expression.
LELFunctionEnums::Function function_p
~LELFunctionDComplex()
Destructor
virtual LELScalar< DComplex > getScalar() const
Recursively evaluate the scalar expression
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 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 LELScalar< Float > getScalar() const
Recursively evaluate the scalar 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 Bool prepareScalarExpr()
Do further preparations (e.g.
virtual String className() const
Get class name.
virtual LELScalar< T > getScalar() const
Recursively evaluate the scalar expression
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 LELScalar< T > getScalar() const
Recursively evaluate the scalar expression
std::shared_ptr< LELInterface< T > > pExpr_p
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 std::shared_ptr< LELInterface< T > > &expr)
Constructor takes operation and expression to be operated upon.
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.
void setAttr(const LELAttribute &attrib)
Set the expression attributes of this object.
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.