OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
Representation objects and parsers for attribute expressions. More...
Classes | |
class | AAutomatic |
Object attribute with an `‘automatic’' array value. More... | |
class | ABinary |
An array expression with two array operands. More... | |
class | AColumn |
An array expression defined as a table column. More... | |
class | ADeferred |
Object attribute with a `‘deferred’' array value. More... | |
class | AList |
An array expression defined by a list of scalar expressions. More... | |
class | ARefExpr |
An expression defined as a reference to an array. More... | |
class | ARow |
An array expression defined as a table row. More... | |
class | ArrayOfPtrs |
An array of pointers to scalar expressions. More... | |
class | ASUnary |
A scalar expression with one array operand. More... | |
class | ATable |
An array expression generated from a TABLE() function. More... | |
class | AUnary |
An array expression with one array operand. More... | |
class | AValue |
Object attribute with a constant array value. More... | |
class | Indexer |
A scalar expression to retrieve an indexed component from an array. More... | |
class | OArray |
An array expression. More... | |
class | PtrToArray |
A pointer to an array expression. More... | |
class | PtrToScalar |
A pointer to a scalar expression. More... | |
class | SAutomatic |
Object attribute with an `‘automatic’' scalar value. More... | |
class | SBinary |
A scalar expression with two scalar operands. More... | |
class | Scalar |
A scalar expression. More... | |
class | SCell |
A scalar expression referring to a table cell. More... | |
class | SConstant |
A scalar constant expression. More... | |
class | SDeferred |
Object attribute with a `‘deferred’' scalar value. More... | |
class | SHash |
A scalar expression. More... | |
class | SNull |
A scalar expression without operands. More... | |
class | SRefAttr |
An attribute defined as a reference to a scalar. More... | |
class | SRefExpr |
An expression defined as a reference to a scalar. More... | |
class | SUnary |
A scalar expression with one scalar operand. More... | |
class | SValue |
Object attribute with a constant scalar value. More... | |
struct | TFunction0 |
An operand-less function returning a T. More... | |
struct | TFunction1 |
A function of one U, returning a T. More... | |
struct | TFunction2 |
A function of two U's returning a T. More... | |
Typedefs | |
typedef TFunction1< double, const std::vector< double > & > | ArrayFun |
typedef Expression | Expr_t |
type of an expression More... | |
typedef boost::tuple< double, bool > | Result_t |
typedef std::map< std::string, Expressions::Expr_t * > | Named_t |
type of an expressions with a name More... | |
typedef std::pair< std::string, Expressions::Expr_t * > | SingleNamed_t |
Enumerations | |
enum | Result_tIdx { VALUE , IS_VALID } |
enum | OperatorType_t { NONE , EQ , NOT_EQ , INEQ_LHS , INEQ_LHS_EQ , INEQ_RHS , INEQ_RHS_EQ } |
distinguish different constraints More... | |
Functions | |
PtrToScalar< bool > | parseBool (Statement &) |
Parse boolean expression. More... | |
PtrToScalar< double > | parseReal (Statement &) |
Parse real expression. More... | |
double | parseRealConst (Statement &) |
Parse real constant. More... | |
std::string | parseString (Statement &, const char msg[]) |
Parse string value. More... | |
std::string | parseStringValue (Statement &, const char msg[]) |
PtrToArray< bool > | parseBoolArray (Statement &) |
Parse boolean array expression. More... | |
PtrToArray< double > | parseRealArray (Statement &) |
Parse real array expression. More... | |
PtrToArray< double > | parseRealConstArray (Statement &) |
Parse real array constant. More... | |
std::vector< std::string > | parseStringArray (Statement &) |
Parse string array. More... | |
void | parseDelimiter (Statement &stat, char delim) |
Test for one-character delimiter. More... | |
void | parseDelimiter (Statement &stat, const char delim[2]) |
Test for two-character delimiter. More... | |
PlaceRep | parsePlace (Statement &) |
Parse place specification. More... | |
RangeRep | parseRange (Statement &) |
Parse range specification. More... | |
SRefAttr< double > * | parseReference (Statement &) |
Parse variable reference. More... | |
TableRowRep | parseTableRow (Statement &) |
Parse a token list (for macro argument and the like). More... | |
std::list< Token > | parseTokenList (Statement &) |
Parse a token list (for macro argument and the like). More... | |
std::vector< std::list< Token > > | parseTokenListArray (Statement &) |
Parse a token list array (for LIST commands). More... | |
PtrToScalar< double > | parseTableExpression (Statement &, const Table *) |
Parse table expression (depends on a table's rows). More... | |
bool | Or (bool a, bool b) |
bool | And (bool a, bool b) |
bool | Le (double a, double b) |
bool | Lt (double a, double b) |
bool | Ge (double a, double b) |
bool | Gt (double a, double b) |
bool | Eq (double a, double b) |
bool | Ne (double a, double b) |
double | Neg (double a) |
double | Sign (double a) |
double | Tgauss (double a) |
double | Add (double a, double b) |
double | Sub (double a, double b) |
double | Mpy (double a, double b) |
double | Div (double a, double b) |
double | getEkin () |
double | ranf () |
double | gauss () |
double | Max (double a, double b) |
double | Min (double a, double b) |
double | Mod (double a, double b) |
double | Mina (const std::vector< double > &array) |
double | Maxa (const std::vector< double > &array) |
double | Rmsa (const std::vector< double > &array) |
double | AbsMax (const std::vector< double > &array) |
PtrToScalar< bool > | parseAnd (Statement &stat) |
PtrToArray< double > | parseArrayFactor (Statement &stat) |
PtrToArray< double > | parseArrayPrimary (Statement &stat) |
PtrToArray< double > | parseArrayTerm (Statement &stat) |
void | parseBracketList (Statement &stat, char close, std::list< Token > &result) |
PtrToScalar< double > | parseFactor (Statement &stat) |
PtrToScalar< double > | parsePrimary (Statement &stat) |
PtrToScalar< bool > | parseRelation (Statement &stat) |
PtrToScalar< double > | parseTerm (Statement &stat) |
PtrToArray< double > | parseColumnGenerator (Statement &stat) |
PtrToArray< double > | parseRowGenerator (Statement &stat) |
PtrToArray< double > | parseTableGenerator (Statement &stat) |
template<class T > | |
std::ostream & | operator<< (std::ostream &os, const SRefAttr< T > &a) |
template<class T > | |
const T * | find (const T table[], const std::string &name) |
Look up name. More... | |
Variables | |
const Table * | currentTable = 0 |
OwnPtr< ATable > | currentArray |
Representation objects and parsers for attribute expressions.
typedef TFunction1<double, const std::vector<double>&> Expressions::ArrayFun |
Definition at line 291 of file Expressions.cpp.
typedef Expression Expressions::Expr_t |
type of an expression
Definition at line 63 of file Expression.h.
typedef std::map<std::string, Expressions::Expr_t*> Expressions::Named_t |
type of an expressions with a name
Definition at line 74 of file Expression.h.
typedef boost::tuple<double, bool> Expressions::Result_t |
Definition at line 66 of file Expression.h.
typedef std::pair<std::string, Expressions::Expr_t*> Expressions::SingleNamed_t |
Definition at line 77 of file Expression.h.
distinguish different constraints
Enumerator | |
---|---|
NONE | |
EQ | |
NOT_EQ | |
INEQ_LHS | |
INEQ_LHS_EQ | |
INEQ_RHS | |
INEQ_RHS_EQ |
Definition at line 80 of file Expression.h.
Enumerator | |
---|---|
VALUE | |
IS_VALID |
Definition at line 67 of file Expression.h.
double Expressions::AbsMax | ( | const std::vector< double > & | array | ) |
Definition at line 277 of file Expressions.cpp.
References abs(), endl(), max(), and Options::warn.
double Expressions::Add | ( | double | a, |
double | b | ||
) |
Definition at line 118 of file Expressions.cpp.
References a.
bool Expressions::And | ( | bool | a, |
bool | b | ||
) |
Definition at line 77 of file Expressions.cpp.
References a.
double Expressions::Div | ( | double | a, |
double | b | ||
) |
Definition at line 136 of file Expressions.cpp.
References a.
bool Expressions::Eq | ( | double | a, |
double | b | ||
) |
Definition at line 92 of file Expressions.cpp.
References a.
|
inline |
Look up name.
Definition at line 34 of file TFind.h.
References name, and Attrib::Legacy::Distribution::T.
Referenced by interpolation::ThreeDGrid::add(), Individual::checkConstraints(), OpalSimulation::cleanUp(), Help::execute(), Select::execute(), Cartesian< Dim, MFLOAT >::get_meshSpacing(), Cartesian< Dim, MFLOAT >::getCellVolumeField(), Cartesian< Dim, MFLOAT >::getDeltaCellField(), Cartesian< Dim, MFLOAT >::getDeltaVertexField(), SampleIndividual::getIndex(), parseArrayPrimary(), parsePrimary(), interpolation::ThreeDGrid::remove(), and Variator< ind_t, CrossoverOperator, MutationOperator >::Variator().
double Expressions::gauss | ( | ) |
Definition at line 164 of file Expressions.cpp.
References Random::gauss(), and Options::rangen.
bool Expressions::Ge | ( | double | a, |
double | b | ||
) |
Definition at line 86 of file Expressions.cpp.
References a.
Referenced by vmap< Key, T, Compare >::insert().
double Expressions::getEkin | ( | ) |
Definition at line 151 of file Expressions.cpp.
References PartBunchBase< T, Dim >::get_meanKineticEnergy(), OpalData::getInstance(), and OpalData::getPartBunch().
bool Expressions::Gt | ( | double | a, |
double | b | ||
) |
Definition at line 89 of file Expressions.cpp.
References a.
bool Expressions::Le | ( | double | a, |
double | b | ||
) |
Definition at line 80 of file Expressions.cpp.
References a.
Referenced by vmap< Key, T, Compare >::find(), vmap< Key, T, Compare >::insert(), and vmap< Key, T, Compare >::operator[]().
bool Expressions::Lt | ( | double | a, |
double | b | ||
) |
Definition at line 83 of file Expressions.cpp.
References a.
Referenced by vmap< Key, T, Compare >::equal_range(), vmap< Key, T, Compare >::insert(), vmap< Key, T, Compare >::lower_bound(), vmap< Key, T, Compare >::operator=(), and vmap< Key, T, Compare >::upper_bound().
double Expressions::Max | ( | double | a, |
double | b | ||
) |
double Expressions::Maxa | ( | const std::vector< double > & | array | ) |
Definition at line 249 of file Expressions.cpp.
References endl(), max(), and Options::warn.
double Expressions::Min | ( | double | a, |
double | b | ||
) |
Definition at line 211 of file Expressions.cpp.
Referenced by Mina().
double Expressions::Mina | ( | const std::vector< double > & | array | ) |
Definition at line 235 of file Expressions.cpp.
References endl(), Min(), and Options::warn.
double Expressions::Mod | ( | double | a, |
double | b | ||
) |
double Expressions::Mpy | ( | double | a, |
double | b | ||
) |
Definition at line 130 of file Expressions.cpp.
References a.
bool Expressions::Ne | ( | double | a, |
double | b | ||
) |
Definition at line 95 of file Expressions.cpp.
References a.
double Expressions::Neg | ( | double | a | ) |
Definition at line 101 of file Expressions.cpp.
References a.
|
inline |
Definition at line 106 of file SRefAttr.h.
References a.
bool Expressions::Or | ( | bool | a, |
bool | b | ||
) |
Definition at line 74 of file Expressions.cpp.
References a.
PtrToScalar< bool > Expressions::parseAnd | ( | Statement & | stat | ) |
Definition at line 728 of file Expressions.cpp.
References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parseRelation().
Referenced by parseBool().
PtrToArray< double > Expressions::parseArrayFactor | ( | Statement & | stat | ) |
Definition at line 741 of file Expressions.cpp.
References Statement::delimiter(), and parseArrayPrimary().
Referenced by parseArrayTerm().
PtrToArray< double > Expressions::parseArrayPrimary | ( | Statement & | stat | ) |
Definition at line 754 of file Expressions.cpp.
References Statement::delimiter(), find(), Statement::keyword(), parseColumnGenerator(), parseDelimiter(), parsePlace(), parseReal(), parseRealArray(), parseRealConstArray(), parseRowGenerator(), parseString(), parseStringArray(), parseTableGenerator(), and Statement::real().
Referenced by parseArrayFactor().
PtrToArray< double > Expressions::parseArrayTerm | ( | Statement & | stat | ) |
Definition at line 832 of file Expressions.cpp.
References Statement::delimiter(), and parseArrayFactor().
Referenced by parseRealArray().
PtrToScalar< bool > Expressions::parseBool | ( | Statement & | stat | ) |
Parse boolean expression.
Definition at line 351 of file Expressions.cpp.
References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parseAnd().
Referenced by Attributes::Bool::parse(), parseBoolArray(), Attributes::BoolArray::parseComponent(), and parseRelation().
PtrToArray< bool > Expressions::parseBoolArray | ( | Statement & | stat | ) |
Parse boolean array expression.
Definition at line 482 of file Expressions.cpp.
References Statement::delimiter(), parseBool(), and parseDelimiter().
Referenced by Attributes::BoolArray::parse().
Definition at line 852 of file Expressions.cpp.
References Statement::atEnd(), Statement::delimiter(), Statement::getCurrent(), Token::isDel(), and parseBracketList().
Referenced by parseBracketList(), and parseTokenList().
PtrToArray< double > Expressions::parseColumnGenerator | ( | Statement & | stat | ) |
Definition at line 1048 of file Expressions.cpp.
References Statement::delimiter(), parseDelimiter(), parseRange(), and parseString().
Referenced by parseArrayPrimary().
void Expressions::parseDelimiter | ( | Statement & | stat, |
char | delim | ||
) |
Test for one-character delimiter.
Definition at line 563 of file Expressions.cpp.
References Statement::delimiter().
Referenced by Object::parse(), OpalElement::parse(), parseArrayPrimary(), OpalParser::parseAssign(), parseBoolArray(), parseColumnGenerator(), Macro::parseFormals(), Line::parseList(), parsePlace(), SequenceParser::parsePosition(), parsePrimary(), parseReference(), parseRelation(), parseRowGenerator(), parseString(), parseStringArray(), parseStringValue(), parseTableGenerator(), parseTableRow(), and parseTokenListArray().
void Expressions::parseDelimiter | ( | Statement & | stat, |
const char | delim[2] | ||
) |
Test for two-character delimiter.
Definition at line 571 of file Expressions.cpp.
References Statement::delimiter().
PtrToScalar< double > Expressions::parseFactor | ( | Statement & | stat | ) |
Definition at line 875 of file Expressions.cpp.
References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parsePrimary().
Referenced by parseTerm().
Parse place specification.
Definition at line 579 of file Expressions.cpp.
References PlaceRep::append(), Statement::delimiter(), Statement::keyword(), name, parseDelimiter(), parseRealConst(), and parseString().
Referenced by Attributes::Place::parse(), parseArrayPrimary(), parsePrimary(), parseRange(), parseRowGenerator(), and parseTableRow().
PtrToScalar< double > Expressions::parsePrimary | ( | Statement & | stat | ) |
Definition at line 888 of file Expressions.cpp.
References currentArray, currentTable, Statement::delimiter(), find(), OwnPtr< Object >::isValid(), Expressions::SNull< T >::make(), Expressions::SUnary< T, U >::make(), Expressions::SBinary< T, U >::make(), Table::makeColumnExpression(), parseDelimiter(), parsePlace(), parseReal(), parseRealArray(), parseRealConst(), parseString(), and Statement::real().
Referenced by parseFactor().
Parse range specification.
Definition at line 617 of file Expressions.cpp.
References Statement::delimiter(), Statement::keyword(), and parsePlace().
Referenced by Attributes::Range::parse(), and parseColumnGenerator().
PtrToScalar< double > Expressions::parseReal | ( | Statement & | stat | ) |
Parse real expression.
Definition at line 364 of file Expressions.cpp.
References Statement::delimiter(), Expressions::SUnary< T, U >::make(), Expressions::SBinary< T, U >::make(), and parseTerm().
Referenced by Attributes::Real::parse(), parseArrayPrimary(), Attributes::RealArray::parseComponent(), parsePrimary(), parseRealConst(), parseRelation(), parseTableExpression(), and parseTableGenerator().
PtrToArray< double > Expressions::parseRealArray | ( | Statement & | stat | ) |
Parse real array expression.
Definition at line 500 of file Expressions.cpp.
References Statement::delimiter(), and parseArrayTerm().
Referenced by Attributes::RealArray::parse(), parseArrayPrimary(), parsePrimary(), and parseRealConstArray().
double Expressions::parseRealConst | ( | Statement & | stat | ) |
Parse real constant.
Definition at line 395 of file Expressions.cpp.
References parseReal().
Referenced by Object::parse(), OpalElement::parse(), OpalParser::parseAssign(), parsePlace(), SequenceParser::parsePosition(), parsePrimary(), parseReference(), parseString(), parseStringValue(), and parseTableGenerator().
PtrToArray< double > Expressions::parseRealConstArray | ( | Statement & | stat | ) |
Parse real array constant.
Definition at line 531 of file Expressions.cpp.
References arg(), and parseRealArray().
Referenced by parseArrayPrimary().
Parse variable reference.
Definition at line 629 of file Expressions.cpp.
References Statement::delimiter(), parseDelimiter(), parseRealConst(), and parseString().
Referenced by Attributes::Reference::parse().
PtrToScalar< bool > Expressions::parseRelation | ( | Statement & | stat | ) |
Definition at line 981 of file Expressions.cpp.
References Statement::boolean(), Statement::delimiter(), OpalData::find(), BoolConstant::getBool(), OpalData::getInstance(), Expressions::SBinary< T, U >::make(), Statement::mark(), name, parseBool(), parseDelimiter(), parseReal(), Statement::restore(), and Statement::word().
Referenced by parseAnd().
PtrToArray< double > Expressions::parseRowGenerator | ( | Statement & | stat | ) |
Definition at line 1071 of file Expressions.cpp.
References Statement::delimiter(), parseDelimiter(), parsePlace(), parseString(), and parseStringArray().
Referenced by parseArrayPrimary().
std::string Expressions::parseString | ( | Statement & | stat, |
const char | msg[] | ||
) |
Parse string value.
Definition at line 401 of file Expressions.cpp.
References Statement::delimiter(), parseDelimiter(), parseRealConst(), Statement::str(), and Statement::word().
Referenced by Object::parse(), OpalElement::parse(), OpalParser::parse(), OpalParser::parseAction(), parseArrayPrimary(), OpalParser::parseAssign(), parseColumnGenerator(), OpalParser::parseDefine(), Macro::parseFormals(), Line::parseList(), OpalParser::parseMacro(), SequenceParser::parseMember(), parsePlace(), SequenceParser::parsePosition(), parsePrimary(), parseReference(), parseRowGenerator(), and parseTableRow().
std::vector< std::string > Expressions::parseStringArray | ( | Statement & | stat | ) |
Parse string array.
Definition at line 544 of file Expressions.cpp.
References Statement::delimiter(), parseDelimiter(), and parseStringValue().
Referenced by Attributes::StringArray::parse(), Attributes::UpperCaseStringArray::parse(), parseArrayPrimary(), and parseRowGenerator().
std::string Expressions::parseStringValue | ( | Statement & | stat, |
const char | msg[] | ||
) |
Definition at line 431 of file Expressions.cpp.
References Statement::delimiter(), OpalData::find(), OpalData::getInstance(), StringConstant::getString(), parseDelimiter(), parseRealConst(), Statement::str(), and Statement::word().
Referenced by Attributes::PredefinedString::parse(), Attributes::String::parse(), Attributes::UpperCaseString::parse(), and parseStringArray().
PtrToScalar< double > Expressions::parseTableExpression | ( | Statement & | stat, |
const Table * | t | ||
) |
Parse table expression (depends on a table's rows).
Definition at line 669 of file Expressions.cpp.
References currentTable, and parseReal().
Referenced by List::list().
PtrToArray< double > Expressions::parseTableGenerator | ( | Statement & | stat | ) |
Definition at line 1093 of file Expressions.cpp.
References currentArray, Statement::delimiter(), parseDelimiter(), parseReal(), and parseRealConst().
Referenced by parseArrayPrimary().
TableRowRep Expressions::parseTableRow | ( | Statement & | stat | ) |
Parse a token list (for macro argument and the like).
Definition at line 658 of file Expressions.cpp.
References parseDelimiter(), parsePlace(), and parseString().
Referenced by Attributes::TableRow::parse().
PtrToScalar< double > Expressions::parseTerm | ( | Statement & | stat | ) |
Definition at line 1028 of file Expressions.cpp.
References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parseFactor().
Referenced by parseReal().
Parse a token list (for macro argument and the like).
Definition at line 677 of file Expressions.cpp.
References Statement::atEnd(), Statement::getCurrent(), Token::isDel(), Statement::mark(), parseBracketList(), and Statement::restore().
Referenced by Attributes::TokenList::parse(), and parseTokenListArray().
Parse a token list array (for LIST commands).
Definition at line 708 of file Expressions.cpp.
References Statement::delimiter(), parseDelimiter(), and parseTokenList().
Referenced by Attributes::TokenListArray::parse().
double Expressions::ranf | ( | ) |
Definition at line 160 of file Expressions.cpp.
References Options::rangen, and Random::uniform().
double Expressions::Rmsa | ( | const std::vector< double > & | array | ) |
Definition at line 263 of file Expressions.cpp.
References endl(), sqrt(), and Options::warn.
double Expressions::Sign | ( | double | a | ) |
Definition at line 107 of file Expressions.cpp.
References a.
double Expressions::Sub | ( | double | a, |
double | b | ||
) |
Definition at line 124 of file Expressions.cpp.
References a.
double Expressions::Tgauss | ( | double | a | ) |
Definition at line 111 of file Expressions.cpp.
References a, abs(), Random::gauss(), and Options::rangen.
Definition at line 303 of file Expressions.cpp.
Referenced by parsePrimary(), and parseTableGenerator().
const Table* Expressions::currentTable = 0 |
Definition at line 302 of file Expressions.cpp.
Referenced by parsePrimary(), and parseTableExpression().