/src/main/java/net/finmath/marketdata/products/Cap.java
upperBound = Math.max( upperBound) ;
upperBound = Math.max ( volatility, upperBound ) ;
if(isStrikeMoneyness) { effektiveStrike += getATMForward(model, true); } final VolatilitySurface volatilitySurface = model.getVolatilitySurface(volatiltiySufaceName); final double volatility = volatilitySurface.getValue(model, fixingDate, effektiveStrike, quotingConvention); lowerBound = Math.min(volatility, lowerBound); <extra_id_0> } final double value = getValueAsPrice(evaluationTime, model); final int maxIterations = 100; final double maxAccuracy = 0.0; final GoldenSectionSearch solver = new GoldenSectionSearch(lowerBound, upperBound); while(solver.getAccuracy() > maxAccuracy && !solver.isDone() && solver.getNumberOfIterations() < maxIterations) {