@ -9,11 +9,11 @@
namespace storm {
namespace storm {
namespace generator {
namespace generator {
BooleanVariableInformation : : BooleanVariableInformation ( storm : : expressions : : Variable const & variable , uint_fast64_t bitOffset ) : variable ( variable ) , bitOffset ( bitOffset ) {
BooleanVariableInformation : : BooleanVariableInformation ( storm : : expressions : : Variable const & variable , uint_fast64_t bitOffset , bool global ) : variable ( variable ) , bitOffset ( bitOffset ) , global ( global ) {
// Intentionally left empty.
// Intentionally left empty.
}
}
IntegerVariableInformation : : IntegerVariableInformation ( storm : : expressions : : Variable const & variable , int_fast64_t lowerBound , int_fast64_t upperBound , uint_fast64_t bitOffset , uint_fast64_t bitWidth ) : variable ( variable ) , lowerBound ( lowerBound ) , upperBound ( upperBound ) , bitOffset ( bitOffset ) , bitWidth ( bitWidth ) {
IntegerVariableInformation : : IntegerVariableInformation ( storm : : expressions : : Variable const & variable , int_fast64_t lowerBound , int_fast64_t upperBound , uint_fast64_t bitOffset , uint_fast64_t bitWidth , bool global ) : variable ( variable ) , lowerBound ( lowerBound ) , upperBound ( upperBound ) , bitOffset ( bitOffset ) , bitWidth ( bitWidth ) , global ( global ) {
// Intentionally left empty.
// Intentionally left empty.
}
}
@ -23,14 +23,14 @@ namespace storm {
VariableInformation : : VariableInformation ( storm : : prism : : Program const & program ) : totalBitOffset ( 0 ) {
VariableInformation : : VariableInformation ( storm : : prism : : Program const & program ) : totalBitOffset ( 0 ) {
for ( auto const & booleanVariable : program . getGlobalBooleanVariables ( ) ) {
for ( auto const & booleanVariable : program . getGlobalBooleanVariables ( ) ) {
booleanVariables . emplace_back ( booleanVariable . getExpressionVariable ( ) , totalBitOffset ) ;
booleanVariables . emplace_back ( booleanVariable . getExpressionVariable ( ) , totalBitOffset , true ) ;
+ + totalBitOffset ;
+ + totalBitOffset ;
}
}
for ( auto const & integerVariable : program . getGlobalIntegerVariables ( ) ) {
for ( auto const & integerVariable : program . getGlobalIntegerVariables ( ) ) {
int_fast64_t lowerBound = integerVariable . getLowerBoundExpression ( ) . evaluateAsInt ( ) ;
int_fast64_t lowerBound = integerVariable . getLowerBoundExpression ( ) . evaluateAsInt ( ) ;
int_fast64_t upperBound = integerVariable . getUpperBoundExpression ( ) . evaluateAsInt ( ) ;
int_fast64_t upperBound = integerVariable . getUpperBoundExpression ( ) . evaluateAsInt ( ) ;
uint_fast64_t bitwidth = static_cast < uint_fast64_t > ( std : : ceil ( std : : log2 ( upperBound - lowerBound + 1 ) ) ) ;
uint_fast64_t bitwidth = static_cast < uint_fast64_t > ( std : : ceil ( std : : log2 ( upperBound - lowerBound + 1 ) ) ) ;
integerVariables . emplace_back ( integerVariable . getExpressionVariable ( ) , lowerBound , upperBound , totalBitOffset , bitwidth ) ;
integerVariables . emplace_back ( integerVariable . getExpressionVariable ( ) , lowerBound , upperBound , totalBitOffset , bitwidth , true ) ;
totalBitOffset + = bitwidth ;
totalBitOffset + = bitwidth ;
}
}
for ( auto const & module : program . getModules ( ) ) {
for ( auto const & module : program . getModules ( ) ) {
@ -52,14 +52,14 @@ namespace storm {
VariableInformation : : VariableInformation ( storm : : jani : : Model const & model ) : totalBitOffset ( 0 ) {
VariableInformation : : VariableInformation ( storm : : jani : : Model const & model ) : totalBitOffset ( 0 ) {
for ( auto const & variable : model . getGlobalVariables ( ) . getBooleanVariables ( ) ) {
for ( auto const & variable : model . getGlobalVariables ( ) . getBooleanVariables ( ) ) {
booleanVariables . emplace_back ( variable . getExpressionVariable ( ) , totalBitOffset ) ;
booleanVariables . emplace_back ( variable . getExpressionVariable ( ) , totalBitOffset , true ) ;
+ + totalBitOffset ;
+ + totalBitOffset ;
}
}
for ( auto const & variable : model . getGlobalVariables ( ) . getBoundedIntegerVariables ( ) ) {
for ( auto const & variable : model . getGlobalVariables ( ) . getBoundedIntegerVariables ( ) ) {
int_fast64_t lowerBound = variable . getLowerBound ( ) . evaluateAsInt ( ) ;
int_fast64_t lowerBound = variable . getLowerBound ( ) . evaluateAsInt ( ) ;
int_fast64_t upperBound = variable . getUpperBound ( ) . evaluateAsInt ( ) ;
int_fast64_t upperBound = variable . getUpperBound ( ) . evaluateAsInt ( ) ;
uint_fast64_t bitwidth = static_cast < uint_fast64_t > ( std : : ceil ( std : : log2 ( upperBound - lowerBound + 1 ) ) ) ;
uint_fast64_t bitwidth = static_cast < uint_fast64_t > ( std : : ceil ( std : : log2 ( upperBound - lowerBound + 1 ) ) ) ;
integerVariables . emplace_back ( variable . getExpressionVariable ( ) , lowerBound , upperBound , totalBitOffset , bitwidth ) ;
integerVariables . emplace_back ( variable . getExpressionVariable ( ) , lowerBound , upperBound , totalBitOffset , bitwidth , true ) ;
totalBitOffset + = bitwidth ;
totalBitOffset + = bitwidth ;
}
}
for ( auto const & automaton : model . getAutomata ( ) ) {
for ( auto const & automaton : model . getAutomata ( ) ) {