https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
 
 operator std::string () const
 cast into a string (via the cast into a term above)
 
std::string args ()
 get the list of arguments and check if they are all symbols
 
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
 
EBTermList _eval_arguments
 argument list passed in when evaluating the function
 
EBTerm _term
 

Detailed Description

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

Definition at line 535 of file ExpressionBuilder.h.

Constructor & Destructor Documentation

◆ EBFunction()

ExpressionBuilder::EBFunction::EBFunction ( )
inline

Definition at line 538 of file ExpressionBuilder.h.

538{}

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 629 of file ExpressionBuilder.h.

629{ 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 549 of file ExpressionBuilder.h.

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

◆ operator()() [2/10]

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

Definition at line 550 of file ExpressionBuilder.h.

551 {
552 return (*this)((a1, a2, a3));
553 }

◆ operator()() [3/10]

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

Definition at line 555 of file ExpressionBuilder.h.

556 {
557 return (*this)((a1, a2, a3, a4));
558 }

◆ 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 559 of file ExpressionBuilder.h.

564 {
565 return (*this)((a1, a2, a3, a4, a5));
566 }

◆ 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 567 of file ExpressionBuilder.h.

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

◆ 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 576 of file ExpressionBuilder.h.

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

◆ 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 586 of file ExpressionBuilder.h.

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

◆ 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 597 of file ExpressionBuilder.h.

606 {
607 return (*this)((a1, a2, a3, a4, a5, a6, a7, a8, a9));
608 }

◆ 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 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()() [10/10]

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

Definition at line 161 of file ExpressionBuilder.C.

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

◆ operator-()

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

Unary operators on functions

Definition at line 628 of file ExpressionBuilder.h.

628{ return -EBTerm(*this); }

◆ operator=() [1/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}

◆ operator=() [2/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}

◆ substitute() [1/2]

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

Definition at line 232 of file ExpressionBuilder.C.

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

Referenced by RegularSolutionFreeEnergy::RegularSolutionFreeEnergy().

◆ 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}

Member Data Documentation

◆ _arguments

EBTermList ExpressionBuilder::EBFunction::_arguments
protected

argument list the function is declared with

Definition at line 638 of file ExpressionBuilder.h.

◆ _eval_arguments

EBTermList ExpressionBuilder::EBFunction::_eval_arguments
protected

argument list passed in when evaluating the function

Definition at line 640 of file ExpressionBuilder.h.

◆ _term

EBTerm ExpressionBuilder::EBFunction::_term
protected

Definition at line 643 of file ExpressionBuilder.h.


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