Main Page   Class Hierarchy   Alphabetical List   Compound List   Compound Members  

HAPI::Expression Class Reference

Inheritance diagram for HAPI::Expression:

HAPI::CompositeExpression HAPI::ConstantExpression HAPI::NodeExpression HAPI::AbsExpression HAPI::AddExpression HAPI::AndExpression HAPI::BetaDistribution HAPI::BinomialDistribution HAPI::CeilExpression HAPI::CosExpression HAPI::CoshExpression HAPI::DistributionDistribution HAPI::DivideExpression HAPI::EqualsExpression HAPI::ExpExpression HAPI::ExponentialDistribution HAPI::FloorExpression HAPI::GammaDistribution HAPI::GeometricDistribution HAPI::GreaterThanExpression HAPI::GreaterThanOrEqualsExpression HAPI::IfExpression HAPI::LessThanExpression HAPI::LessThanOrEqualsExpression HAPI::Log10Expression HAPI::Log2Expression HAPI::LogExpression HAPI::MaxExpression HAPI::MinExpression HAPI::ModExpression HAPI::MultiplyExpression HAPI::NegateExpression HAPI::NegativeBinomialDistribution HAPI::NoisyOrExpression HAPI::NormalDistribution HAPI::NotEqualsExpression HAPI::NotExpression HAPI::OrExpression HAPI::PoissonDistribution HAPI::PowerExpression HAPI::SinExpression HAPI::SinhExpression HAPI::SqrtExpression HAPI::SubtractExpression HAPI::TanExpression HAPI::TanhExpression HAPI::UniformDistribution HAPI::WeibullDistribution HAPI::BooleanExpression HAPI::LabelExpression HAPI::NumberExpression List of all members.

Detailed Description

Expression is the ancestor of all expression classes.

Expression classes are used to build expressions for discrete chance node tables and utility tables (see also class Model).


Public Member Functions

 Expression (const Expression &exprSrc)
 Create a new expression from an existing expression.

virtual Expression * clone () const=0
 Clone this Expression.

virtual bool isCompositeExpression () const=0
 Test whether this Expression is an instance of CompositeExpression.

virtual bool isConstantExpression () const=0
 Test whether this Expression is an instance of ConstantExpression.

virtual bool isNodeExpression () const=0
 Test whether this Expression is an instance of NodeExpression.

Expression & operator= (const Expression &rightExpr)
 Assignment operator.

std::string toString ()
 Return a string representation of this expression.


Static Public Member Functions

Expression * stringToExpression (const std::string &str, const Domain &dom)
 Create an Expression from a given string.

Expression * stringToExpression (const std::string &str, const Class &cls)
 Equivalent to stringToExpression (string, Domain) except that it takes a Class as second argument.


Constructor & Destructor Documentation

HAPI::Expression::Expression const Expression &  exprSrc  ) 
 

Create a new expression from an existing expression.

Parameters:
exprSrc the existing expression


Member Function Documentation

virtual Expression* HAPI::Expression::clone  )  const [pure virtual]
 

Clone this Expression.

Returns:
a clone of this expression

Implemented in HAPI::NodeExpression, HAPI::LabelExpression, HAPI::BooleanExpression, HAPI::NumberExpression, HAPI::AddExpression, HAPI::SubtractExpression, HAPI::NegateExpression, HAPI::MultiplyExpression, HAPI::DivideExpression, HAPI::PowerExpression, HAPI::EqualsExpression, HAPI::LessThanExpression, HAPI::GreaterThanExpression, HAPI::NotEqualsExpression, HAPI::LessThanOrEqualsExpression, HAPI::GreaterThanOrEqualsExpression, HAPI::MinExpression, HAPI::MaxExpression, HAPI::AbsExpression, HAPI::ModExpression, HAPI::CeilExpression, HAPI::FloorExpression, HAPI::LogExpression, HAPI::ExpExpression, HAPI::SqrtExpression, HAPI::Log2Expression, HAPI::Log10Expression, HAPI::SinExpression, HAPI::CosExpression, HAPI::TanExpression, HAPI::SinhExpression, HAPI::CoshExpression, HAPI::TanhExpression, HAPI::IfExpression, HAPI::AndExpression, HAPI::OrExpression, HAPI::DistributionDistribution, HAPI::NoisyOrExpression, HAPI::NotExpression, HAPI::NormalDistribution, HAPI::BetaDistribution, HAPI::GammaDistribution, HAPI::ExponentialDistribution, HAPI::WeibullDistribution, HAPI::UniformDistribution, HAPI::BinomialDistribution, HAPI::NegativeBinomialDistribution, HAPI::PoissonDistribution, and HAPI::GeometricDistribution.

Expression* HAPI::Expression::stringToExpression const std::string &  str,
const Domain dom
[static]
 

Create an Expression from a given string.

To ease the creation of complex expressions, it is possible to specify these as strings, instead of building them with objects.

Example: The following code

Expression *result=new IfExpression (new BooleanExpression (true), new NumberExpression (1), new DistributionDistribution (new NumberExpression (1), new NumberExpression (2)));

can be written like this:

Expression *result = Expression::stringToExpression ("if (true, 1, Distribution (1,2)) ", domain);

Parameters:
str The string containing a textual representation of the expression
dom The domain in which the Expression is generated

std::string HAPI::Expression::toString  ) 
 

Return a string representation of this expression.

Returns:
String describing the expression


Copyright Hugin Expert A/S 1993-2004