MCPcopy Create free account
hub / github.com/NeuralNetworkVerification/Marabou / decideSplit

Method decideSplit

src/engine/CDSmtCore.cpp:164–194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

162}
163
164void CDSmtCore::decideSplit( PiecewiseLinearConstraint *constraint )
165{
166 struct timespec start = TimeUtils::sampleMicro();
167
168 if ( _statistics )
169 {
170 _statistics->incUnsignedAttribute( Statistics::NUM_SPLITS );
171 _statistics->incUnsignedAttribute( Statistics::NUM_VISITED_TREE_STATES );
172 }
173
174 if ( !constraint->isFeasible() )
175 throw MarabouError( MarabouError::DEBUGGING_ERROR );
176 ASSERT( constraint->isFeasible() );
177 ASSERT( !constraint->isImplication() );
178
179 PhaseStatus decision = constraint->nextFeasibleCase();
180 pushDecision( constraint, decision );
181
182 if ( _statistics )
183 {
184 unsigned level = _context.getLevel();
185 _statistics->setUnsignedAttribute( Statistics::CURRENT_DECISION_LEVEL, level );
186 if ( level > _statistics->getUnsignedAttribute( Statistics::MAX_DECISION_LEVEL ) )
187 _statistics->setUnsignedAttribute( Statistics::MAX_DECISION_LEVEL, level );
188
189 struct timespec end = TimeUtils::sampleMicro();
190 _statistics->incLongAttribute( Statistics::TOTAL_TIME_SMT_CORE_MICRO,
191 TimeUtils::timePassed( start, end ) );
192 }
193 SMT_LOG( "Performing a ReLU split - DONE" );
194}
195
196
197unsigned CDSmtCore::getDecisionLevel() const

Callers

nothing calls this directly

Calls 9

MarabouErrorClass · 0.85
incUnsignedAttributeMethod · 0.80
nextFeasibleCaseMethod · 0.80
setUnsignedAttributeMethod · 0.80
getUnsignedAttributeMethod · 0.80
incLongAttributeMethod · 0.80
isFeasibleMethod · 0.45
isImplicationMethod · 0.45
getLevelMethod · 0.45

Tested by

no test coverage detected