www.mooseframework.org
Public Member Functions | Protected Attributes | List of all members
ExpressionBuilder::EBFunction Class Reference

User facing host object for a function. This combines a term with an argument list. More...

#include <ExpressionBuilder.h>

Public Member Functions

 EBFunction ()
 
 operator EBTerm () const
 cast an EBFunction into an EBTerm More...
 
 operator std::string () const
 cast into a string (via the cast into a term above) More...
 
std::string args ()
 get the list of arguments and check if they are all symbols More...
 
unsigned int substitute (const EBSubstitutionRule &rule)
 
unsigned int substitute (const EBSubstitutionRuleList &rules)
 
EBFunction & operator() (const EBTerm &arg)
 
EBFunction & operator() (const EBTermList &args)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7, const EBTerm &a8)
 
EBFunction & operator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7, const EBTerm &a8, const EBTerm &a9)
 
EBFunction & operator= (const EBTerm &)
 
EBFunction & operator= (const EBFunction &)
 
EBTerm operator- ()
 
EBTerm operator! ()
 

Protected Attributes

EBTermList _arguments
 argument list the function is declared with More...
 
EBTermList _eval_arguments
 argument list passed in when evaluating the function More...
 
EBTerm _term
 

Detailed Description

User facing host object for a function. This combines a term with an argument list.

Definition at line 520 of file ExpressionBuilder.h.

Constructor & Destructor Documentation

◆ EBFunction()

ExpressionBuilder::EBFunction::EBFunction ( )
inline

Definition at line 523 of file ExpressionBuilder.h.

523 {};

Member Function Documentation

◆ args()

std::string ExpressionBuilder::EBFunction::args ( )

get the list of arguments and check if they are all symbols

Definition at line 216 of file ExpressionBuilder.C.

217 {
218  unsigned int narg = _arguments.size();
219  if (narg < 1)
220  return "";
221 
222  std::ostringstream s;
223  s << _arguments[0];
224  for (unsigned int i = 1; i < narg; ++i)
225  s << ',' << _arguments[i];
226 
227  return s.str();
228 }

◆ operator EBTerm()

ExpressionBuilder::EBFunction::operator EBTerm ( ) const

cast an EBFunction into an EBTerm

◆ operator std::string()

ExpressionBuilder::EBFunction::operator std::string ( ) const

cast into a string (via the cast into a term above)

Definition at line 206 of file ExpressionBuilder.C.

207 {
208  EBTerm eval;
209  eval = *this; // typecast EBFunction -> EBTerm performs a parameter substitution
210  std::ostringstream s;
211  s << eval;
212  return s.str();
213 }

◆ operator!()

EBTerm ExpressionBuilder::EBFunction::operator! ( )
inline

Definition at line 614 of file ExpressionBuilder.h.

614 { return !EBTerm(*this); }

◆ operator()() [1/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2 
)
inline

convenience operators to allow single bracket syntax

Definition at line 534 of file ExpressionBuilder.h.

534 { return (*this)((a1, a2)); }

◆ operator()() [2/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3 
)
inline

Definition at line 535 of file ExpressionBuilder.h.

536  {
537  return (*this)((a1, a2, a3));
538  }

◆ operator()() [3/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3,
const EBTerm &  a4 
)
inline

Definition at line 540 of file ExpressionBuilder.h.

541  {
542  return (*this)((a1, a2, a3, a4));
543  }

◆ operator()() [4/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3,
const EBTerm &  a4,
const EBTerm &  a5 
)
inline

Definition at line 544 of file ExpressionBuilder.h.

549  {
550  return (*this)((a1, a2, a3, a4, a5));
551  }

◆ operator()() [5/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3,
const EBTerm &  a4,
const EBTerm &  a5,
const EBTerm &  a6 
)
inline

Definition at line 552 of file ExpressionBuilder.h.

558  {
559  return (*this)((a1, a2, a3, a4, a5, a6));
560  }

◆ operator()() [6/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3,
const EBTerm &  a4,
const EBTerm &  a5,
const EBTerm &  a6,
const EBTerm &  a7 
)
inline

Definition at line 561 of file ExpressionBuilder.h.

568  {
569  return (*this)((a1, a2, a3, a4, a5, a6, a7));
570  }

◆ operator()() [7/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3,
const EBTerm &  a4,
const EBTerm &  a5,
const EBTerm &  a6,
const EBTerm &  a7,
const EBTerm &  a8 
)
inline

Definition at line 571 of file ExpressionBuilder.h.

579  {
580  return (*this)((a1, a2, a3, a4, a5, a6, a7, a8));
581  }

◆ operator()() [8/10]

EBFunction& ExpressionBuilder::EBFunction::operator() ( const EBTerm &  a1,
const EBTerm &  a2,
const EBTerm &  a3,
const EBTerm &  a4,
const EBTerm &  a5,
const EBTerm &  a6,
const EBTerm &  a7,
const EBTerm &  a8,
const EBTerm &  a9 
)
inline

Definition at line 582 of file ExpressionBuilder.h.

591  {
592  return (*this)((a1, a2, a3, a4, a5, a6, a7, a8, a9));
593  }

◆ operator()() [9/10]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTerm &  arg)

set the temporary argument list which is either used for evaluation or committed to the argument list upon function definition (assignment)

Definition at line 153 of file ExpressionBuilder.C.

154 {
155  this->_eval_arguments = {arg};
156  return *this;
157 }

◆ operator()() [10/10]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator() ( const EBTermList &  args)

Definition at line 160 of file ExpressionBuilder.C.

161 {
163  return *this;
164 }

◆ operator-()

EBTerm ExpressionBuilder::EBFunction::operator- ( )
inline

Unary operators on functions

Definition at line 613 of file ExpressionBuilder.h.

613 { return -EBTerm(*this); }

◆ operator=() [1/2]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator= ( const EBFunction &  func)

Definition at line 175 of file ExpressionBuilder.C.

176 {
177  this->_arguments = this->_eval_arguments;
178  this->_term = EBTerm(func);
179  return *this;
180 }

◆ operator=() [2/2]

ExpressionBuilder::EBFunction & ExpressionBuilder::EBFunction::operator= ( const EBTerm &  term)

function definition (assignment)

Definition at line 167 of file ExpressionBuilder.C.

168 {
169  this->_arguments = this->_eval_arguments;
170  this->_term = term;
171  return *this;
172 }

◆ substitute() [1/2]

unsigned int ExpressionBuilder::EBFunction::substitute ( const EBSubstitutionRule &  rule)

Definition at line 231 of file ExpressionBuilder.C.

232 {
233  return _term.substitute(rule);
234 }

Referenced by RegularSolutionFreeEnergy::RegularSolutionFreeEnergy().

◆ substitute() [2/2]

unsigned int ExpressionBuilder::EBFunction::substitute ( const EBSubstitutionRuleList &  rules)

Definition at line 237 of file ExpressionBuilder.C.

238 {
239  return _term.substitute(rules);
240 }

Member Data Documentation

◆ _arguments

EBTermList ExpressionBuilder::EBFunction::_arguments
protected

argument list the function is declared with

Definition at line 623 of file ExpressionBuilder.h.

◆ _eval_arguments

EBTermList ExpressionBuilder::EBFunction::_eval_arguments
protected

argument list passed in when evaluating the function

Definition at line 625 of file ExpressionBuilder.h.

◆ _term

EBTerm ExpressionBuilder::EBFunction::_term
protected

Definition at line 628 of file ExpressionBuilder.h.


The documentation for this class was generated from the following files:
ExpressionBuilder::EBFunction::_arguments
EBTermList _arguments
argument list the function is declared with
Definition: ExpressionBuilder.h:623
ExpressionBuilder::EBTermList
std::vector< EBTerm > EBTermList
Definition: ExpressionBuilder.h:56
ExpressionBuilder::EBFunction::_term
EBTerm _term
Definition: ExpressionBuilder.h:628
ExpressionBuilder::EBTerm::substitute
unsigned int substitute(const EBSubstitutionRule &rule)
Definition: ExpressionBuilder.C:414
ExpressionBuilder::EBFunction::args
std::string args()
get the list of arguments and check if they are all symbols
Definition: ExpressionBuilder.C:216
ExpressionBuilder::EBFunction::_eval_arguments
EBTermList _eval_arguments
argument list passed in when evaluating the function
Definition: ExpressionBuilder.h:625