/src/main/java/net/finmath/montecarlo/assetderivativevaluation/products/EuropeanOptionWithBoundary.java
final RandomVariable values = underlyingAtMaturity.get( strike).floor( 0.0) ;
final RandomVariable values = underlyingAtMaturity.sub ( strike ) .floor ( 0.0 ) ;
this.maturity = maturity; this.strike = strike; } @Override public RandomVariable getValue(final double evaluationTime, final AssetModelMonteCarloSimulationModel model) throws CalculationException { final RandomVariable underlyingAtMaturity = model.getAssetValue(maturity,0); <extra_id_0> final RandomVariable numeraireAtMaturity = model.getNumeraire(maturity); final RandomVariable monteCarloWeights = model.getMonteCarloWeights(maturity); values.div(numeraireAtMaturity).mult(monteCarloWeights); final RandomVariable numeraireAtZero = model.getNumeraire(evaluationTime); final RandomVariable monteCarloProbabilitiesAtZero = model.getMonteCarloWeights(evaluationTime); values.mult(numeraireAtZero).div(monteCarloProbabilitiesAtZero);