casacore
|
An expression executable as function. More...
#include <FuncExpression.h>
Public Member Functions | |
FuncExpression () | |
Construct an empty executable expression. More... | |
FuncExpression (const String &prog) | |
Construct an executable expression from the given string. More... | |
FuncExpression (const FuncExpression &other) | |
Make this object a (deep) copy of other. More... | |
FuncExpression & | operator= (const FuncExpression &other) |
Make this object a (deep) copy of other. More... | |
~FuncExpression () | |
Destructor. More... | |
Bool | create (const String &prog) |
Create an executable program. More... | |
const String & | errorMessage () |
Get the current error message. More... | |
const vector < FuncExprData::ExprOperator > & | getCode () const |
Get the executable program. More... | |
uInt | getNpar () const |
Get the number of parameters in executable program. More... | |
uInt | getNdim () const |
Get the number of dimensions of executable program. More... | |
const vector < FuncExprData::ExprOperator > & | getCode () |
Get reference to the compiled program. More... | |
const vector< Double > & | getConst () |
Get reference to compiled constants. More... | |
Bool | exec (Double &res) const |
Execute the program. More... | |
void | print (ostream &os) const |
Print the stack information (mainly for debugging) More... | |
Private Member Functions | |
Bool | compStmt (MUString &prg) |
Compile a statement (in prg, which will be adjusted) More... | |
Bool | compExpr (MUString &prg) |
Compile an expression (in prg, which will be adjusted) More... | |
Bool | compTerm (MUString &prg) |
Compile a term (in prg, which will be adjusted) More... | |
Bool | setOp (FuncExprData::ExprOperator &oper) |
Save an operation on compilation RP stack. More... | |
Bool | setVal (const Double &val) |
Save a value on constant stack. More... | |
Bool | setCode (const FuncExprData::ExprOperator &oper) |
Save an executable code. More... | |
void | initState () |
Initialise the state. More... | |
Private Attributes | |
FuncExprData | exd |
The expression data /// later into a singleton. More... | |
String | error_p |
The latest error message. More... | |
vector < FuncExprData::ExprOperator > | code_p |
The executable code stack (a vector, since it is a re-usable stack) More... | |
vector < FuncExprData::ExprOperator > | rps_p |
The reverse Polish work stack (a vector, since deque did not work on gcc) More... | |
FuncExprData::ExprCompState | state_p |
The current state of the compilation. More... | |
vector< Double > | const_p |
The current constant stack. More... | |
uInt | npar_p |
The number of parameters in code. More... | |
uInt | ndim_p |
The number of dimensions of expression. More... | |
vector< Double > | exec_p |
Executing stack. More... | |
An expression executable as function.
Public interface
This class acts as an interface between a program given as a string (e.g. from a command line interface) and a Function class. The grammar of the language use to express the function is given below. The FuncEXpression
can be used in all places where Functions can be used (like in the linear and non-linear Fitting classes.
An expression is created by either supplying a String
to a constructor, or be setting a String
.
To tie the Glish language to non-linear fitting procedures
Definition at line 84 of file FuncExpression.h.
casacore::FuncExpression::FuncExpression | ( | ) |
Construct an empty executable expression.
|
explicit |
Construct an executable expression from the given string.
casacore::FuncExpression::FuncExpression | ( | const FuncExpression & | other | ) |
Make this object a (deep) copy of other.
|
inline |
Destructor.
Definition at line 99 of file FuncExpression.h.
Compile an expression (in prg, which will be adjusted)
Compile a statement (in prg, which will be adjusted)
Compile a term (in prg, which will be adjusted)
|
inline |
const vector<FuncExprData::ExprOperator>& casacore::FuncExpression::getCode | ( | ) | const |
Get the executable program.
|
inline |
Get reference to the compiled program.
Definition at line 113 of file FuncExpression.h.
References code_p.
|
inline |
Get reference to compiled constants.
Definition at line 115 of file FuncExpression.h.
References const_p.
|
inline |
Get the number of dimensions of executable program.
Definition at line 111 of file FuncExpression.h.
References ndim_p.
|
inline |
Get the number of parameters in executable program.
Definition at line 109 of file FuncExpression.h.
References npar_p.
|
private |
Initialise the state.
FuncExpression& casacore::FuncExpression::operator= | ( | const FuncExpression & | other | ) |
Make this object a (deep) copy of other.
void casacore::FuncExpression::print | ( | ostream & | os | ) | const |
Print the stack information (mainly for debugging)
|
private |
Save an executable code.
|
private |
Save an operation on compilation RP stack.
|
private |
The executable code stack (a vector, since it is a re-usable stack)
Definition at line 128 of file FuncExpression.h.
Referenced by getCode().
|
private |
The current constant stack.
Definition at line 134 of file FuncExpression.h.
Referenced by getConst().
|
mutableprivate |
The latest error message.
Definition at line 126 of file FuncExpression.h.
Referenced by errorMessage().
|
private |
The expression data /// later into a singleton.
Definition at line 124 of file FuncExpression.h.
|
mutableprivate |
Executing stack.
Definition at line 140 of file FuncExpression.h.
|
private |
The number of dimensions of expression.
Definition at line 138 of file FuncExpression.h.
Referenced by getNdim().
|
private |
The number of parameters in code.
Definition at line 136 of file FuncExpression.h.
Referenced by getNpar().
|
private |
The reverse Polish work stack (a vector, since deque did not work on gcc)
Definition at line 130 of file FuncExpression.h.
|
private |
The current state of the compilation.
Definition at line 132 of file FuncExpression.h.