1#ifndef STORM_STORAGE_EXPRESSIONS_EXPRESSIONRETURNTYPE_H_
2#define STORM_STORAGE_EXPRESSIONS_EXPRESSIONRETURNTYPE_H_
10class ExpressionManager;
25 Type(std::shared_ptr<ExpressionManager const>
const& manager, std::shared_ptr<BaseType>
const& innerType);
125 Type power(
Type const& other,
bool allowIntegerType =
false)
const;
136 std::shared_ptr<ExpressionManager const> manager;
139 std::shared_ptr<BaseType> innerType;
184 virtual uint64_t
getMask()
const override;
189 static const uint64_t mask = (1ull << 56);
194 virtual uint64_t
getMask()
const override;
199 static const uint64_t mask = (1ull << 58);
219 virtual uint64_t
getMask()
const override;
225 static const uint64_t mask = (1ull << 57);
233 virtual uint64_t
getMask()
const override;
238 static const uint64_t mask = (1ull << 59);
248 virtual uint64_t
getMask()
const override;
253 static const uint64_t mask = (1ull << 55);
261 virtual uint64_t
getMask()
const override;
266 static const uint64_t mask = (1ull << 60);
276 static const uint64_t mask = 0;
286struct hash<
storm::expressions::Type> {
288 return std::hash<uint64_t>()(type.
getMask());
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
Type getElementType() const
virtual bool operator==(BaseType const &other) const override
Checks whether two types are actually the same.
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual bool isArrayType() const override
virtual bool isBooleanType() const
virtual bool isIntegerType() const
virtual std::string getStringRepresentation() const =0
Returns a string representation of the type.
virtual bool isArrayType() const
virtual bool operator==(BaseType const &other) const
Checks whether two types are actually the same.
virtual bool isTranscendentalNumberType() const
virtual bool isRationalType() const
virtual bool isBitVectorType() const
virtual bool isErrorType() const
virtual ~BaseType()=default
virtual uint64_t getMask() const =0
Retrieves the mask that is associated with this type.
virtual bool operator==(BaseType const &other) const override
Checks whether two types are actually the same.
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
std::size_t getWidth() const
Retrieves the bit width of the bounded type.
virtual bool isIntegerType() const override
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual bool isBitVectorType() const override
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual bool isBooleanType() const override
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
virtual bool isErrorType() const override
This class is responsible for managing a set of typed variables and all expressions using these varia...
virtual bool isIntegerType() const override
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
virtual bool isRationalType() const override
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual bool isTranscendentalNumberType() const override
virtual uint64_t getMask() const override
Retrieves the mask that is associated with this type.
virtual std::string getStringRepresentation() const override
Returns a string representation of the type.
Type getElementType() const
Retrieves the element type of the type, provided that it is an Array type.
bool isBooleanType() const
Checks whether this type is a boolean type.
Type modulo(Type const &other) const
bool operator==(Type const &other) const
Checks whether two types are the same.
friend bool operator<(storm::expressions::Type const &type1, storm::expressions::Type const &type2)
Type logarithm(Type const &other) const
Type divide(Type const &other) const
Type power(Type const &other, bool allowIntegerType=false) const
storm::expressions::ExpressionManager const & getManager() const
Retrieves the manager of the type.
std::size_t getWidth() const
Retrieves the bit width of the type, provided that it is a bitvector type.
Type numericalComparison(Type const &other) const
Type plusMinusTimes(Type const &other) const
Type logicalConnective() const
bool isIntegerType() const
Checks whether this type is an integral type.
bool isNumericalType() const
Checks whether this type is a numerical type.
bool isArrayType() const
Checks whether this type is an array type.
std::string getStringRepresentation() const
Retrieves a string representation of the type.
Type ite(Type const &thenType, Type const &elseType) const
uint64_t getMask() const
Retrieves the bit mask of the type.
bool isRationalType() const
Checks whether this type is a rational type.
bool isTranscendentalNumberType() const
Checks whether this type is a transcendental number type.
Type trigonometric() const
bool isBitVectorType() const
Checks whether this type is a bitvector type.
Type minimumMaximum(Type const &other) const
Expression operator<(Expression const &first, Expression const &second)
std::ostream & operator<<(std::ostream &stream, BaseExpression const &expression)