Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
storm::expressions::LinearCoefficientVisitor< ValueType > Class Template Reference

Computes the coefficients of a linear expression. More...

#include <LinearCoefficientVisitor.h>

Inheritance diagram for storm::expressions::LinearCoefficientVisitor< ValueType >:
Collaboration diagram for storm::expressions::LinearCoefficientVisitor< ValueType >:

Classes

struct  VariableCoefficients

Public Member Functions

VariableCoefficients getLinearCoefficients (Expression const &expression)
 Computes the coefficients of all identifiers appearing in the expression if the expression was rewritten as a sum of atoms.
std::optional< VariableCoefficients > tryGetLinearCoefficients (Expression const &expression)
 As getLinearCoefficients, but returns std::nullopt instead of throwing if the expression is not linear.
virtual boost::any visit (IfThenElseExpression const &expression, boost::any const &data) override
virtual boost::any visit (BinaryBooleanFunctionExpression const &expression, boost::any const &data) override
virtual boost::any visit (BinaryNumericalFunctionExpression const &expression, boost::any const &data) override
virtual boost::any visit (BinaryRelationExpression const &expression, boost::any const &data) override
virtual boost::any visit (VariableExpression const &expression, boost::any const &data) override
virtual boost::any visit (UnaryBooleanFunctionExpression const &expression, boost::any const &data) override
virtual boost::any visit (UnaryNumericalFunctionExpression const &expression, boost::any const &data) override
virtual boost::any visit (BooleanLiteralExpression const &expression, boost::any const &data) override
virtual boost::any visit (IntegerLiteralExpression const &expression, boost::any const &data) override
virtual boost::any visit (RationalLiteralExpression const &expression, boost::any const &data) override
Public Member Functions inherited from storm::expressions::ExpressionVisitor
virtual ~ExpressionVisitor ()=default
virtual boost::any visit (PredicateExpression const &expression, boost::any const &data)

Detailed Description

template<typename ValueType>
class storm::expressions::LinearCoefficientVisitor< ValueType >

Computes the coefficients of a linear expression.

Instantiated for double and storm::RationalNumber.

Definition at line 17 of file LinearCoefficientVisitor.h.

Member Function Documentation

◆ getLinearCoefficients()

template<typename ValueType>
LinearCoefficientVisitor< ValueType >::VariableCoefficients storm::expressions::LinearCoefficientVisitor< ValueType >::getLinearCoefficients ( Expression const & expression)

Computes the coefficients of all identifiers appearing in the expression if the expression was rewritten as a sum of atoms.

If the expression is not linear, an exception is thrown.

Definition at line 138 of file LinearCoefficientVisitor.cpp.

◆ tryGetLinearCoefficients()

template<typename ValueType>
std::optional< typename LinearCoefficientVisitor< ValueType >::VariableCoefficients > storm::expressions::LinearCoefficientVisitor< ValueType >::tryGetLinearCoefficients ( Expression const & expression)

As getLinearCoefficients, but returns std::nullopt instead of throwing if the expression is not linear.

Definition at line 132 of file LinearCoefficientVisitor.cpp.

◆ visit() [1/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( BinaryBooleanFunctionExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [2/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( BinaryNumericalFunctionExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [3/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( BinaryRelationExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [4/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( BooleanLiteralExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [5/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( IfThenElseExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [6/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( IntegerLiteralExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [7/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( RationalLiteralExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [8/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( UnaryBooleanFunctionExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [9/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( UnaryNumericalFunctionExpression const & expression,
boost::any const & data )
overridevirtual

◆ visit() [10/10]

template<typename ValueType>
boost::any storm::expressions::LinearCoefficientVisitor< ValueType >::visit ( VariableExpression const & expression,
boost::any const & data )
overridevirtual

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