Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
storm::expressions::HashVisitor Class Reference

Computes a hash of an expression such that syntactically equal expressions hash to the same value. More...

#include <HashVisitor.h>

Inheritance diagram for storm::expressions::HashVisitor:
Collaboration diagram for storm::expressions::HashVisitor:

Public Member Functions

std::size_t hash (storm::expressions::Expression const &expression)
 Computes the hash of the given expression.
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
virtual boost::any visit (PredicateExpression const &expression, boost::any const &data) override
Public Member Functions inherited from storm::expressions::ExpressionVisitor
virtual ~ExpressionVisitor ()=default

Detailed Description

Computes a hash of an expression such that syntactically equal expressions hash to the same value.

This is the hash counterpart of SyntacticalEqualityCheckVisitor: for any two expressions that satisfy isSyntacticallyEqual, this visitor returns the same hash. The converse does not hold, so a hash can be used to speed up the lookup of syntactically equal expressions, but a hash equality alone does not establish syntactic equality.

Definition at line 21 of file HashVisitor.h.

Member Function Documentation

◆ hash()

std::size_t storm::expressions::HashVisitor::hash ( storm::expressions::Expression const & expression)

Computes the hash of the given expression.

Two syntactically equal expressions always yield the same hash.

Definition at line 34 of file HashVisitor.cpp.

◆ visit() [1/11]

boost::any storm::expressions::HashVisitor::visit ( BinaryBooleanFunctionExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 50 of file HashVisitor.cpp.

◆ visit() [2/11]

boost::any storm::expressions::HashVisitor::visit ( BinaryNumericalFunctionExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 58 of file HashVisitor.cpp.

◆ visit() [3/11]

boost::any storm::expressions::HashVisitor::visit ( BinaryRelationExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 66 of file HashVisitor.cpp.

◆ visit() [4/11]

boost::any storm::expressions::HashVisitor::visit ( BooleanLiteralExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 96 of file HashVisitor.cpp.

◆ visit() [5/11]

boost::any storm::expressions::HashVisitor::visit ( IfThenElseExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 42 of file HashVisitor.cpp.

◆ visit() [6/11]

boost::any storm::expressions::HashVisitor::visit ( IntegerLiteralExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 102 of file HashVisitor.cpp.

◆ visit() [7/11]

boost::any storm::expressions::HashVisitor::visit ( PredicateExpression const & expression,
boost::any const & data )
overridevirtual

Reimplemented from storm::expressions::ExpressionVisitor.

Definition at line 114 of file HashVisitor.cpp.

◆ visit() [8/11]

boost::any storm::expressions::HashVisitor::visit ( RationalLiteralExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 108 of file HashVisitor.cpp.

◆ visit() [9/11]

boost::any storm::expressions::HashVisitor::visit ( UnaryBooleanFunctionExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 82 of file HashVisitor.cpp.

◆ visit() [10/11]

boost::any storm::expressions::HashVisitor::visit ( UnaryNumericalFunctionExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 89 of file HashVisitor.cpp.

◆ visit() [11/11]

boost::any storm::expressions::HashVisitor::visit ( VariableExpression const & expression,
boost::any const & data )
overridevirtual

Implements storm::expressions::ExpressionVisitor.

Definition at line 74 of file HashVisitor.cpp.


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