scram::mef::Expression
Abstract base class for all sorts of expressions to describe events. More...
#include <expression.h>
Inherits from boost::noncopyable
Inherited by scram::mef::ExpressionFormula< Exponential >, scram::mef::ExpressionFormula< ExternExpression< R, Args... > >, scram::mef::ExpressionFormula< Glm >, scram::mef::ExpressionFormula< Ite >, scram::mef::ExpressionFormula< Mean >, scram::mef::ExpressionFormula< NaryExpression< T, -1 > >, scram::mef::ExpressionFormula< NaryExpression< T, 1 > >, scram::mef::ExpressionFormula< NaryExpression< T, 2 > >, scram::mef::ExpressionFormula< Switch >, scram::mef::ExpressionFormula< Weibull >, scram::mef::ConstantExpression, scram::mef::ExpressionFormula< T >, scram::mef::MissionTime, scram::mef::Parameter, scram::mef::PeriodicTest, scram::mef::RandomDeviate, scram::mef::TestEvent
Public Functions
| Name | |
|---|---|
| Expression(std::vector< Expression * > args ={})<br>Constructor for use by derived classes to register their arguments. | |
| virtual | ~Expression() =default |
| const std::vector< Expression * > & | args() const |
| virtual void | Validate() const<br>Validates the expression. |
| virtual double | value() =0 |
| virtual Interval | interval() |
| virtual bool | IsDeviate()<br>Determines if the value of the expression contains deviate expressions. |
| double | Sample() |
| void | Reset()<br>This routine resets the sampling to get new values. |
Protected Functions
| Name | |
|---|---|
| void | AddArg(Expression * arg)<br>Registers an additional argument expression. |
Detailed Description
class scram::mef::Expression;Abstract base class for all sorts of expressions to describe events.
This class also acts like a connector for parameter nodes and may create cycles. Expressions are not expected to be shared except for parameters. In addition, expressions are not expected to be changed after validation phases.
Public Functions Documentation
function Expression
explicit Expression(
std::vector< Expression * > args ={}
)Constructor for use by derived classes to register their arguments.
Parameters:
- args Arguments of this expression.
function ~Expression
virtual ~Expression() =defaultfunction args
inline const std::vector< Expression * > & args() constReturn: A set of arguments of the expression.
function Validate
inline virtual void Validate() constValidates the expression.
Exceptions:
- DomainError The argument value domains are invalid.
- ValidityError The arguments are invalid for setup.
Reimplemented by: scram::mef::NaryExpression< T, 1 >::Validate, scram::mef::NaryExpression< T, 2 >::Validate, scram::mef::NaryExpression< T, -1 >::Validate, scram::mef::Exponential::Validate, scram::mef::Glm::Validate, scram::mef::Weibull::Validate, scram::mef::PeriodicTest::Validate, scram::mef::UniformDeviate::Validate, scram::mef::NormalDeviate::Validate, scram::mef::LognormalDeviate::Validate, scram::mef::GammaDeviate::Validate, scram::mef::BetaDeviate::Validate, scram::mef::Histogram::Validate
This late validation is due to parameters that are defined late.
function value
virtual double value() =0Return: The mean value of this expression.
Reimplemented by: scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ExpressionFormula::value, scram::mef::ConstantExpression::value, scram::mef::PeriodicTest::value, scram::mef::UniformDeviate::value, scram::mef::NormalDeviate::value, scram::mef::LognormalDeviate::value, scram::mef::GammaDeviate::value, scram::mef::BetaDeviate::value, scram::mef::Histogram::value, scram::mef::TestInitiatingEvent::value, scram::mef::TestFunctionalEvent::value, scram::mef::MissionTime::value, scram::mef::Parameter::value
function interval
inline virtual Interval interval()Return: The domain interval for validation purposes only.
Reimplemented by: scram::mef::NaryExpression< T, 1 >::interval, scram::mef::NaryExpression< T, 2 >::interval, scram::mef::NaryExpression< T, -1 >::interval, scram::mef::Ite::interval, scram::mef::Switch::interval, scram::mef::Exponential::interval, scram::mef::Glm::interval, scram::mef::Weibull::interval, scram::mef::PeriodicTest::interval, scram::mef::Mean::interval, scram::mef::UniformDeviate::interval, scram::mef::NormalDeviate::interval, scram::mef::LognormalDeviate::interval, scram::mef::GammaDeviate::interval, scram::mef::BetaDeviate::interval, scram::mef::Histogram::interval, scram::mef::TestEvent::interval, scram::mef::MissionTime::interval, scram::mef::Parameter::interval
function IsDeviate
virtual bool IsDeviate()Determines if the value of the expression contains deviate expressions.
Return:
- true if the expression's value deviates from its mean.
- false if the expression's value does not need sampling.
Warning: Improper registration of arguments may yield silent failure.
Reimplemented by: scram::mef::ConstantExpression::IsDeviate, scram::mef::RandomDeviate::IsDeviate, scram::mef::TestEvent::IsDeviate, scram::mef::MissionTime::IsDeviate
The default logic is to check arguments with uncertainties for sampling. Derived expression classes must decide if they don't have arguments, or if they are random deviates.
function Sample
double Sample()Return: A sampled value of this expression.
function Reset
void Reset()This routine resets the sampling to get new values.
All the arguments are called to reset themselves. If this expression was not sampled, its arguments are not going to get any calls.
Protected Functions Documentation
function AddArg
inline void AddArg(
Expression * arg
)Registers an additional argument expression.
Parameters:
- arg An argument expression used by this expression.
Updated on 2025-11-11 at 16:51:08 +0000
