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

Method dLSEUpperbound

src/nlr/DeepPolySoftmaxElement.cpp:517–533  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

515}
516
517double DeepPolySoftmaxElement::dLSEUpperbound( const Vector<double> &inputMids,
518 const Vector<double> &outputLb,
519 const Vector<double> &outputUb,
520 unsigned i,
521 unsigned di )
522{
523 double li = outputLb[i];
524 double ui = outputUb[i];
525
526 double val = -( ui - li ) / ( std::log( ui ) - std::log( li ) );
527
528 double val2 = std::exp( inputMids[di] ) / SoftmaxConstraint::sumOfExponential( inputMids );
529 if ( i == di )
530 val2 -= 1;
531
532 return val * val2;
533}
534
535double DeepPolySoftmaxElement::ERLowerBound( const Vector<double> &inputs,
536 const Vector<double> &inputLbs,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected