You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

45 lines
1.8 KiB

#ifndef STORM_GENERATOR_COMPRESSEDSTATE_H_
#define STORM_GENERATOR_COMPRESSEDSTATE_H_
#include "storm/storage/BitVector.h"
namespace storm {
namespace expressions {
template<typename ValueType> 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<typename ValueType>
void unpackStateIntoEvaluator(CompressedState const& state, VariableInformation const& variableInformation, storm::expressions::ExpressionEvaluator<ValueType>& 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_ */