#ifndef STORM_GENERATOR_COMPRESSEDSTATE_H_ #define STORM_GENERATOR_COMPRESSEDSTATE_H_ #include "storm/storage/BitVector.h" namespace storm { namespace expressions { template class ExpressionEvaluator; class ExpressionManager; class SimpleValuation; } namespace generator { typedef storm::storage::BitVector CompressedState; struct VariableInformation; /*! * Unpacks the compressed state into the evaluator. * * @param state The state to unpack. * @param variableInformation The information about how the variables are packed within the state. * @param evaluator The evaluator into which to load the state. */ template void unpackStateIntoEvaluator(CompressedState const& state, VariableInformation const& variableInformation, storm::expressions::ExpressionEvaluator& evaluator); /*! * Converts the compressed state into an explicit representation in the form of a valuation. * * @param state The state to unpack. * @param variableInformation The information about how the variables are packed within the state. * @param manager The manager responsible for the variables. * @return A valuation that corresponds to the compressed state. */ storm::expressions::SimpleValuation unpackStateIntoValuation(CompressedState const& state, VariableInformation const& variableInformation, storm::expressions::ExpressionManager const& manager); CompressedState createOutOfBoundsState(VariableInformation const& varInfo, bool roundTo64Bit = true); } } #endif /* STORM_GENERATOR_COMPRESSEDSTATE_H_ */