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)
 
EBFunctionoperator() (const EBTerm &arg)
 
EBFunctionoperator() (const EBTermList &args)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7)
 
EBFunctionoperator() (const EBTerm &a1, const EBTerm &a2, const EBTerm &a3, const EBTerm &a4, const EBTerm &a5, const EBTerm &a6, const EBTerm &a7, const EBTerm &a8)
 
EBFunctionoperator() (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)
 
EBFunctionoperator= (const EBTerm &)
 
EBFunctionoperator= (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 524 of file ExpressionBuilder.h.

Constructor & Destructor Documentation

◆ EBFunction()

ExpressionBuilder::EBFunction::EBFunction ( )
inline

Definition at line 527 of file ExpressionBuilder.h.

527 {};

Member Function Documentation

◆ args()

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

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

Definition at line 217 of file ExpressionBuilder.C.

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

◆ 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 207 of file ExpressionBuilder.C.

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

◆ operator!()

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

Definition at line 618 of file ExpressionBuilder.h.

618 { return !EBTerm(*this); }

◆ operator()() [1/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 154 of file ExpressionBuilder.C.

155 {
156  this->_eval_arguments = {arg};
157  return *this;
158 }
EBTermList _eval_arguments
argument list passed in when evaluating the function

◆ operator()() [2/10]

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

Definition at line 161 of file ExpressionBuilder.C.

162 {
164  return *this;
165 }
EBTermList _eval_arguments
argument list passed in when evaluating the function
std::vector< EBTerm > EBTermList
std::string args()
get the list of arguments and check if they are all symbols

◆ operator()() [3/10]

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

convenience operators to allow single bracket syntax

Definition at line 538 of file ExpressionBuilder.h.

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

◆ operator()() [4/10]

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

Definition at line 539 of file ExpressionBuilder.h.

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

◆ operator()() [5/10]

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

Definition at line 544 of file ExpressionBuilder.h.

545  {
546  return (*this)((a1, a2, a3, a4));
547  }

◆ operator()() [6/10]

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

Definition at line 548 of file ExpressionBuilder.h.

553  {
554  return (*this)((a1, a2, a3, a4, a5));
555  }

◆ 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 
)
inline

Definition at line 556 of file ExpressionBuilder.h.

562  {
563  return (*this)((a1, a2, a3, a4, a5, a6));
564  }

◆ 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 
)
inline

Definition at line 565 of file ExpressionBuilder.h.

572  {
573  return (*this)((a1, a2, a3, a4, a5, a6, a7));
574  }

◆ operator()() [9/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 575 of file ExpressionBuilder.h.

583  {
584  return (*this)((a1, a2, a3, a4, a5, a6, a7, a8));
585  }

◆ operator()() [10/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 586 of file ExpressionBuilder.h.

595  {
596  return (*this)((a1, a2, a3, a4, a5, a6, a7, a8, a9));
597  }

◆ operator-()

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

Unary operators on functions

Definition at line 617 of file ExpressionBuilder.h.

617 { return -EBTerm(*this); }

◆ operator=() [1/2]

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

function definition (assignment)

Definition at line 168 of file ExpressionBuilder.C.

169 {
170  this->_arguments = this->_eval_arguments;
171  this->_term = term;
172  return *this;
173 }
EBTermList _eval_arguments
argument list passed in when evaluating the function
EBTermList _arguments
argument list the function is declared with

◆ operator=() [2/2]

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

Definition at line 176 of file ExpressionBuilder.C.

177 {
178  this->_arguments = this->_eval_arguments;
179  this->_term = EBTerm(func);
180  return *this;
181 }
EBTermList _eval_arguments
argument list passed in when evaluating the function
EBTermList _arguments
argument list the function is declared with

◆ substitute() [1/2]

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

Definition at line 232 of file ExpressionBuilder.C.

Referenced by RegularSolutionFreeEnergy::RegularSolutionFreeEnergy().

233 {
234  return _term.substitute(rule);
235 }
unsigned int substitute(const EBSubstitutionRule &rule)

◆ substitute() [2/2]

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

Definition at line 238 of file ExpressionBuilder.C.

239 {
240  return _term.substitute(rules);
241 }
unsigned int substitute(const EBSubstitutionRule &rule)

Member Data Documentation

◆ _arguments

EBTermList ExpressionBuilder::EBFunction::_arguments
protected

argument list the function is declared with

Definition at line 627 of file ExpressionBuilder.h.

◆ _eval_arguments

EBTermList ExpressionBuilder::EBFunction::_eval_arguments
protected

argument list passed in when evaluating the function

Definition at line 629 of file ExpressionBuilder.h.

◆ _term

EBTerm ExpressionBuilder::EBFunction::_term
protected

Definition at line 632 of file ExpressionBuilder.h.


The documentation for this class was generated from the following files: