@ -84,7 +84,6 @@ namespace storm {
// Clear the caches.
signatureCache . clear ( ) ;
reuseBlocksCache . clear ( ) ;
std : : cout < < " clearing reuse, " < < reuseBlocksCache . size ( ) < < std : : endl ;
nextFreeBlockIndex = oldPartition . getNextFreeBlockIndex ( ) ;
// Perform the actual recursive refinement step.
@ -115,7 +114,6 @@ namespace storm {
// If we arrived at the constant zero node, then this was an illegal state encoding (we require
// all states to be non-deadlock).
if ( partitionNode = = Cudd_ReadZero ( ddman ) ) {
std : : cout < < " returning zero " < < partitionNode < < std : : endl ;
return partitionNode ;
}
@ -123,7 +121,6 @@ namespace storm {
auto nodePair = std : : make_pair ( signatureNode , partitionNode ) ;
auto it = signatureCache . find ( nodePair ) ;
if ( it ! = signatureCache . end ( ) ) {
std : : cout < < " cache hit " < < it - > second < < std : : endl ;
// If so, we return the corresponding result.
return it - > second ;
}
@ -132,18 +129,13 @@ namespace storm {
if ( Cudd_IsConstant ( nonBlockVariablesNode ) ) {
// If this is the first time (in this traversal) that we encounter this signature, we check
// whether we can assign the old block number to it.
std : : cout < < " reuse size: " < < reuseBlocksCache . size ( ) < < std : : endl ;
auto & reuseEntry = reuseBlocksCache [ partitionNode ] ;
std : : cout < < " reused? " < < reuseEntry . isReused ( ) < < std : : endl ;
if ( ! reuseEntry . isReused ( ) ) {
reuseEntry . setReused ( ) ;
std : : cout < < " setting " < < partitionNode < < " to being reused " < < std : : endl ;
signatureCache [ nodePair ] = partitionNode ;
std : : cout < < " reuse cache hit " < < partitionNode < < std : : endl ;
return partitionNode ;
} else {
DdNode * result = encodeBlock ( nextFreeBlockIndex + + ) ;
std : : cout < < " block encoding " < < result < < std : : endl ;
signatureCache [ nodePair ] = result ;
return result ;
}
@ -199,9 +191,6 @@ namespace storm {
DdNode * elseResult = refine ( partitionElse , signatureElse , offset = = 0 ? Cudd_T ( nondeterminismVariablesNode ) : nondeterminismVariablesNode , Cudd_T ( nonBlockVariablesNode ) ) ;
Cudd_Ref ( elseResult ) ;
std : : cout < < " got then " < < thenResult < < std : : endl ;
std : : cout < < " got else " < < elseResult < < std : : endl ;
DdNode * result ;
if ( thenResult = = elseResult ) {
Cudd_Deref ( thenResult ) ;
@ -211,7 +200,6 @@ namespace storm {
// Get the node to connect the subresults.
bool complemented = Cudd_IsComplement ( thenResult ) ;
result = cuddUniqueInter ( ddman , Cudd_NodeReadIndex ( nonBlockVariablesNode ) + offset , Cudd_Regular ( thenResult ) , complemented ? Cudd_Not ( elseResult ) : elseResult ) ;
std : : cout < < " got " < < result < < " as a result node, idx " < < ( Cudd_NodeReadIndex ( nonBlockVariablesNode ) + offset ) < < " and children " < < Cudd_NodeReadIndex ( thenResult ) < < " [ " < < Cudd_IsConstant ( thenResult ) < < " ] ( " < < thenResult < < " ) and " < < Cudd_NodeReadIndex ( elseResult ) < < " [ " < < Cudd_IsConstant ( elseResult ) < < " ] ( " < < elseResult < < " ) " < < std : : endl ;
if ( complemented ) {
result = Cudd_Not ( result ) ;
}
@ -222,7 +210,6 @@ namespace storm {
// Store the result in the cache.
signatureCache [ nodePair ] = result ;
std : : cout < < " returning " < < result < < " with index " < < Cudd_NodeReadIndex ( result ) < < " , const? " < < Cudd_IsConstant ( result ) < < std : : endl ;
return result ;
}
}
@ -494,10 +481,7 @@ namespace storm {
template < storm : : dd : : DdType DdType , typename ValueType >
Partition < DdType , ValueType > SignatureRefiner < DdType , ValueType > : : refine ( Partition < DdType , ValueType > const & oldPartition , Signature < DdType , ValueType > const & signature ) {
oldPartition . asAdd ( ) . getDdManager ( ) . debugCheck ( ) ;
oldPartition . asAdd ( ) . exportToDot ( " lastpart.dot " ) ;
Partition < DdType , ValueType > result = internalRefiner - > refine ( oldPartition , signature ) ;
oldPartition . asAdd ( ) . getDdManager ( ) . debugCheck ( ) ;
return result ;
}