OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Expressions Namespace Reference

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
 

Functions

PtrToScalar< bool > parseBool (Statement &)
 Parse boolean expression.
 
PtrToScalar< double > parseReal (Statement &)
 Parse real expression.
 
double parseRealConst (Statement &)
 Parse real constant.
 
std::string parseString (Statement &, const char msg[])
 Parse string value.
 
std::string parseStringValue (Statement &, const char msg[])
 
PtrToArray< bool > parseBoolArray (Statement &)
 Parse boolean array expression.
 
PtrToArray< double > parseRealArray (Statement &)
 Parse real array expression.
 
PtrToArray< double > parseRealConstArray (Statement &)
 Parse real array constant.
 
std::vector< std::string > parseStringArray (Statement &)
 Parse string array.
 
void parseDelimiter (Statement &stat, char delim)
 Test for one-character delimiter.
 
void parseDelimiter (Statement &stat, const char delim[2])
 Test for two-character delimiter.
 
PlaceRep parsePlace (Statement &)
 Parse place specification.
 
RangeRep parseRange (Statement &)
 Parse range specification.
 
SRefAttr< double > * parseReference (Statement &)
 Parse variable reference.
 
TableRowRep parseTableRow (Statement &)
 Parse a token list (for macro argument and the like).
 
std::list< TokenparseTokenList (Statement &)
 Parse a token list (for macro argument and the like).
 
std::vector< std::list< Token > > parseTokenListArray (Statement &)
 Parse a token list array (for LIST commands).
 
PtrToScalar< double > parseTableExpression (Statement &, const Table *)
 Parse table expression (depends on a table's rows).
 
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 Tfind (const T table[], const std::string &name)
 Look up name.
 

Variables

const TablecurrentTable = 0
 
std::unique_ptr< ATablecurrentArray
 

Detailed Description

Representation objects and parsers for attribute expressions.

Typedef Documentation

◆ ArrayFun

typedef TFunction1<double, const std::vector<double>&> Expressions::ArrayFun

Definition at line 254 of file Expressions.cpp.

Function Documentation

◆ AbsMax()

double Expressions::AbsMax ( const std::vector< double > &  array)

Definition at line 241 of file Expressions.cpp.

References Options::warn.

◆ Add()

double Expressions::Add ( double  a,
double  b 
)

Definition at line 113 of file Expressions.cpp.

◆ And()

bool Expressions::And ( bool  a,
bool  b 
)

Definition at line 75 of file Expressions.cpp.

◆ Div()

double Expressions::Div ( double  a,
double  b 
)

Definition at line 125 of file Expressions.cpp.

◆ Eq()

bool Expressions::Eq ( double  a,
double  b 
)

Definition at line 90 of file Expressions.cpp.

◆ find()

template<class T >
const T * Expressions::find ( const T  table[],
const std::string &  name 
)
inline

Look up name.

Definition at line 33 of file TFind.h.

Referenced by parseArrayPrimary(), and parsePrimary().

◆ gauss()

double Expressions::gauss ( )

Definition at line 155 of file Expressions.cpp.

References Random::gauss(), and Options::rangen.

Here is the call graph for this function:

◆ Ge()

bool Expressions::Ge ( double  a,
double  b 
)

Definition at line 84 of file Expressions.cpp.

◆ getEkin()

double Expressions::getEkin ( )

Definition at line 139 of file Expressions.cpp.

References OpalData::getInstance(), and OpalData::getPartBunch().

Here is the call graph for this function:

◆ Gt()

bool Expressions::Gt ( double  a,
double  b 
)

Definition at line 87 of file Expressions.cpp.

◆ Le()

bool Expressions::Le ( double  a,
double  b 
)

Definition at line 78 of file Expressions.cpp.

◆ Lt()

bool Expressions::Lt ( double  a,
double  b 
)

Definition at line 81 of file Expressions.cpp.

◆ Max()

double Expressions::Max ( double  a,
double  b 
)

Definition at line 184 of file Expressions.cpp.

◆ Maxa()

double Expressions::Maxa ( const std::vector< double > &  array)

Definition at line 215 of file Expressions.cpp.

References Options::warn.

◆ Min()

double Expressions::Min ( double  a,
double  b 
)

Definition at line 186 of file Expressions.cpp.

Referenced by Mina().

◆ Mina()

double Expressions::Mina ( const std::vector< double > &  array)

Definition at line 202 of file Expressions.cpp.

References Min(), and Options::warn.

Here is the call graph for this function:

◆ Mod()

double Expressions::Mod ( double  a,
double  b 
)

Definition at line 188 of file Expressions.cpp.

◆ Mpy()

double Expressions::Mpy ( double  a,
double  b 
)

Definition at line 121 of file Expressions.cpp.

◆ Ne()

bool Expressions::Ne ( double  a,
double  b 
)

Definition at line 93 of file Expressions.cpp.

◆ Neg()

double Expressions::Neg ( double  a)

Definition at line 99 of file Expressions.cpp.

◆ operator<<()

template<class T >
std::ostream & Expressions::operator<< ( std::ostream &  os,
const SRefAttr< T > &  a 
)
inline

Definition at line 101 of file SRefAttr.h.

References Expressions::SRefAttr< T >::print().

Here is the call graph for this function:

◆ Or()

bool Expressions::Or ( bool  a,
bool  b 
)

Definition at line 72 of file Expressions.cpp.

◆ parseAnd()

PtrToScalar< bool > Expressions::parseAnd ( Statement stat)

Definition at line 671 of file Expressions.cpp.

References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parseRelation().

Referenced by parseBool().

Here is the call graph for this function:

◆ parseArrayFactor()

PtrToArray< double > Expressions::parseArrayFactor ( Statement stat)

Definition at line 683 of file Expressions.cpp.

References Statement::delimiter(), and parseArrayPrimary().

Referenced by parseArrayTerm().

Here is the call graph for this function:

◆ parseArrayPrimary()

◆ parseArrayTerm()

PtrToArray< double > Expressions::parseArrayTerm ( Statement stat)

Definition at line 770 of file Expressions.cpp.

References Statement::delimiter(), and parseArrayFactor().

Referenced by parseRealArray().

Here is the call graph for this function:

◆ parseBool()

PtrToScalar< bool > Expressions::parseBool ( Statement stat)
extern

Parse boolean expression.

Definition at line 309 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().

Here is the call graph for this function:

◆ parseBoolArray()

PtrToArray< bool > Expressions::parseBoolArray ( Statement stat)
extern

Parse boolean array expression.

Definition at line 436 of file Expressions.cpp.

References Statement::delimiter(), parseBool(), and parseDelimiter().

Referenced by Attributes::BoolArray::parse().

Here is the call graph for this function:

◆ parseBracketList()

void Expressions::parseBracketList ( Statement stat,
char  close,
std::list< Token > &  result 
)

Definition at line 789 of file Expressions.cpp.

References Statement::atEnd(), Statement::delimiter(), Statement::getCurrent(), Token::isDel(), and parseBracketList().

Referenced by parseBracketList(), and parseTokenList().

Here is the call graph for this function:

◆ parseColumnGenerator()

PtrToArray< double > Expressions::parseColumnGenerator ( Statement stat)

Definition at line 976 of file Expressions.cpp.

References Statement::delimiter(), parseDelimiter(), parseRange(), and parseString().

Referenced by parseArrayPrimary().

Here is the call graph for this function:

◆ parseDelimiter() [1/2]

◆ parseDelimiter() [2/2]

void Expressions::parseDelimiter ( Statement stat,
const char  delim[2] 
)
extern

Test for two-character delimiter.

Definition at line 522 of file Expressions.cpp.

References Statement::delimiter().

Here is the call graph for this function:

◆ parseFactor()

PtrToScalar< double > Expressions::parseFactor ( Statement stat)

Definition at line 812 of file Expressions.cpp.

References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parsePrimary().

Referenced by parseTerm().

Here is the call graph for this function:

◆ parsePlace()

PlaceRep Expressions::parsePlace ( Statement stat)
extern

Parse place specification.

Definition at line 530 of file Expressions.cpp.

References PlaceRep::append(), Statement::delimiter(), Statement::keyword(), parseDelimiter(), parseRealConst(), and parseString().

Referenced by Attributes::Place::parse(), parseArrayPrimary(), parsePrimary(), parseRange(), parseRowGenerator(), and parseTableRow().

Here is the call graph for this function:

◆ parsePrimary()

◆ parseRange()

RangeRep Expressions::parseRange ( Statement stat)
extern

Parse range specification.

Definition at line 568 of file Expressions.cpp.

References Statement::delimiter(), Statement::keyword(), and parsePlace().

Referenced by Attributes::Range::parse(), and parseColumnGenerator().

Here is the call graph for this function:

◆ parseReal()

◆ parseRealArray()

PtrToArray< double > Expressions::parseRealArray ( Statement stat)
extern

Parse real array expression.

Definition at line 454 of file Expressions.cpp.

References Statement::delimiter(), and parseArrayTerm().

Referenced by Attributes::RealArray::parse(), parseArrayPrimary(), parsePrimary(), and parseRealConstArray().

Here is the call graph for this function:

◆ parseRealConst()

double Expressions::parseRealConst ( Statement stat)
extern

Parse real constant.

Definition at line 351 of file Expressions.cpp.

References parseReal().

Referenced by Object::parse(), OpalElement::parse(), OpalParser::parseAssign(), parsePlace(), SequenceParser::parsePosition(), parsePrimary(), parseReference(), parseString(), parseStringValue(), and parseTableGenerator().

Here is the call graph for this function:

◆ parseRealConstArray()

PtrToArray< double > Expressions::parseRealConstArray ( Statement stat)
extern

Parse real array constant.

Definition at line 484 of file Expressions.cpp.

References parseRealArray().

Referenced by parseArrayPrimary().

Here is the call graph for this function:

◆ parseReference()

SRefAttr< double > * Expressions::parseReference ( Statement stat)
extern

Parse variable reference.

Definition at line 579 of file Expressions.cpp.

References Statement::delimiter(), parseDelimiter(), parseRealConst(), and parseString().

Referenced by Attributes::Reference::parse().

Here is the call graph for this function:

◆ parseRelation()

◆ parseRowGenerator()

PtrToArray< double > Expressions::parseRowGenerator ( Statement stat)

Definition at line 998 of file Expressions.cpp.

References Statement::delimiter(), parseDelimiter(), parsePlace(), parseString(), and parseStringArray().

Referenced by parseArrayPrimary().

Here is the call graph for this function:

◆ parseString()

◆ parseStringArray()

std::vector< std::string > Expressions::parseStringArray ( Statement stat)
extern

Parse string array.

Definition at line 496 of file Expressions.cpp.

References Statement::delimiter(), parseDelimiter(), and parseStringValue().

Referenced by Attributes::StringArray::parse(), Attributes::UpperCaseStringArray::parse(), parseArrayPrimary(), and parseRowGenerator().

Here is the call graph for this function:

◆ parseStringValue()

◆ parseTableExpression()

PtrToScalar< double > Expressions::parseTableExpression ( Statement stat,
const Table t 
)
extern

Parse table expression (depends on a table's rows).

Definition at line 615 of file Expressions.cpp.

References currentTable, and parseReal().

Here is the call graph for this function:

◆ parseTableGenerator()

PtrToArray< double > Expressions::parseTableGenerator ( Statement stat)

Definition at line 1020 of file Expressions.cpp.

References currentArray, Statement::delimiter(), parseDelimiter(), parseReal(), and parseRealConst().

Referenced by parseArrayPrimary().

Here is the call graph for this function:

◆ parseTableRow()

TableRowRep Expressions::parseTableRow ( Statement stat)
extern

Parse a token list (for macro argument and the like).

Definition at line 606 of file Expressions.cpp.

References parseDelimiter(), parsePlace(), and parseString().

Referenced by Attributes::TableRow::parse().

Here is the call graph for this function:

◆ parseTerm()

PtrToScalar< double > Expressions::parseTerm ( Statement stat)

Definition at line 957 of file Expressions.cpp.

References Statement::delimiter(), Expressions::SBinary< T, U >::make(), and parseFactor().

Referenced by parseReal().

Here is the call graph for this function:

◆ parseTokenList()

std::list< Token > Expressions::parseTokenList ( Statement stat)
extern

Parse a token list (for macro argument and the like).

Definition at line 622 of file Expressions.cpp.

References Statement::atEnd(), Statement::getCurrent(), Token::isDel(), Statement::mark(), parseBracketList(), and Statement::restore().

Referenced by Attributes::TokenList::parse(), Attributes::TokenListArray::parseComponent(), and parseTokenListArray().

Here is the call graph for this function:

◆ parseTokenListArray()

std::vector< std::list< Token > > Expressions::parseTokenListArray ( Statement stat)
extern

Parse a token list array (for LIST commands).

Definition at line 652 of file Expressions.cpp.

References Statement::delimiter(), parseDelimiter(), and parseTokenList().

Referenced by Attributes::TokenListArray::parse().

Here is the call graph for this function:

◆ ranf()

double Expressions::ranf ( )

Definition at line 153 of file Expressions.cpp.

References Options::rangen, and Random::uniform().

Here is the call graph for this function:

◆ Rmsa()

double Expressions::Rmsa ( const std::vector< double > &  array)

Definition at line 228 of file Expressions.cpp.

References Options::warn.

◆ Sign()

double Expressions::Sign ( double  a)

Definition at line 103 of file Expressions.cpp.

◆ Sub()

double Expressions::Sub ( double  a,
double  b 
)

Definition at line 117 of file Expressions.cpp.

◆ Tgauss()

double Expressions::Tgauss ( double  a)

Definition at line 105 of file Expressions.cpp.

References Random::gauss(), and Options::rangen.

Here is the call graph for this function:

Variable Documentation

◆ currentArray

std::unique_ptr<ATable> Expressions::currentArray

Definition at line 264 of file Expressions.cpp.

Referenced by parsePrimary(), and parseTableGenerator().

◆ currentTable

const Table* Expressions::currentTable = 0

Definition at line 263 of file Expressions.cpp.

Referenced by parsePrimary(), and parseTableExpression().