/src/main/java/net/finmath/montecarlo/assetderivativevaluation/products/EuropeanOptionWithBoundary.java
d = Math.exp( -volatility * ( toTime-fromTimeNext) ) ;
d = Math.exp ( -riskFreeRate * ( toTime-fromTimeNext ) ) ;
if(boundaryAdjustmentType == BoundaryAdjustmentType.LINEAR_ANALYTIC) { c = AnalyticFormulas.blackScholesOptionValue(boundaryLocal, riskFreeRate, volatility, toTime-fromTimeNext, strike); d = AnalyticFormulas.blackScholesOptionDelta(boundaryLocal, riskFreeRate, volatility, toTime-fromTimeNext, strike); } else if(boundaryAdjustmentType == BoundaryAdjustmentType.LINEAR_PROPAGATED) { c = Math.exp(-riskFreeRate * (fromTimeNext-fromTime)) * boundaryLocal; <extra_id_0> } else if(boundaryAdjustmentType == BoundaryAdjustmentType.LINEAR_REGRESSED) { final RandomVariable weight = new RandomVariableFromDoubleArray(1.0); final MonteCarloConditionalExpectationRegression condExpEstimator = new MonteCarloConditionalExpectationRegression(getRegressionBasisFunctions(toTime, model, weight)); final double[] paremetersRegressed = condExpEstimator.getLinearRegressionParameters(continuationValues.mult(weight)); c = paremetersRegressed[0] + boundaryLocal * paremetersRegressed[1];