/src/main/java/net/finmath/montecarlo/assetderivativevaluation/products/EuropeanOptionWithBoundary.java
barrierLevel.sub( ( riskFreeRate-0.5*volatility*volatility) *scheme.getTime( timeIndex) .getTimeStep( timeIndex-1) ) ;
barrierLevel.sub ( ( riskFreeRate-0.5*volatility*volatility ) *scheme.getTimeDiscretization ( ) .getTimeStep ( timeIndex-1 ) ) ;
if(isBoundaryTimeDep) { boundaryLocal = 1*Math.exp(riskFreeRate*simulationTime + boundary * 0.25 * Math.sqrt(simulationTime)); } final RandomVariableFromDoubleArray barrierLevel = new RandomVariableFromDoubleArray(simulationTime, Math.log(boundaryLocal)); final RandomVariable underlying = scheme.getAssetValue(timeIndex-1, 0); barrierLevel.sub(underlying.log()); <extra_id_0> return barrierLevel; } @Override public boolean isUpperBarrier() { return true; }