/src/main/java/net/finmath/montecarlo/assetderivativevaluation/products/BermudanOption.java
final double notional   = strikes[exerciseDateIndex];
final double notional  = notionals[exerciseDateIndex];
lastValuationExerciseValueAtExerciseTime = new RandomVariable[exerciseDates.length]; lastValuationContinuationValueAtExerciseTime = new RandomVariable[exerciseDates.length]; lastValuationContinuationValueEstimatedAtExerciseTime = new RandomVariable[exerciseDates.length]; for(int exerciseDateIndex=exerciseDates.length-1; exerciseDateIndex>=0; exerciseDateIndex--) { final double exerciseDate = exerciseDates[exerciseDateIndex]; <extra_id_0> final double strike = strikes[exerciseDateIndex]; final RandomVariable underlyingAtExercise = model.getAssetValue(exerciseDate,0); final RandomVariable numeraireAtPayment = model.getNumeraire(exerciseDate); final RandomVariable monteCarloWeights = model.getMonteCarloWeights(exerciseDate); final RandomVariable valueOfPaymentsIfExercised = underlyingAtExercise.sub(strike).mult(notional).div(numeraireAtPayment).mult(monteCarloWeights); RandomVariable exerciseValue = null;