| applyDiscreteEvent2D(double, double[], double[], double[]) |  | 0% |  | 0% | 14 | 14 | 24 | 24 | 1 | 1 |
| DoubleBarrierBinaryOption(String, double, double, double, double, DoubleBarrierType, Exercise, MonitoringType, double[]) |  | 0% |  | 0% | 13 | 13 | 28 | 28 | 1 | 1 |
| applyDiscreteEvent1D(double, double[], double[]) |  | 0% |  | 0% | 13 | 13 | 21 | 21 | 1 | 1 |
| getValuationSpaceTimeDiscretization(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 6 | 6 | 26 | 26 | 1 | 1 |
| cellAveragedTerminalPayoff(double, double) |  | 0% |  | 0% | 6 | 6 | 15 | 15 | 1 | 1 |
| applyEventCondition(double, double[], FiniteDifferenceEquityModel) |  | 0% |  | 0% | 6 | 6 | 15 | 15 | 1 | 1 |
| getActivatedCashValueAt(double, FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 13 | 13 | 1 | 1 |
| validateProductConfiguration(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 1 | 1 |
| getValue(double, FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| pointwiseTerminalPayoff(double) |  | 0% |  | 0% | 9 | 9 | 6 | 6 | 1 | 1 |
| getValues2DInternal(FiniteDifferenceEquityModel, SpaceTimeDiscretization) |  | 0% |  | 0% | 4 | 4 | 10 | 10 | 1 | 1 |
| getValues(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| applyEvaluationTimeDiscreteCondition(double, double[], FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 10 | 10 | 1 | 1 |
| getValues1DInternal(FiniteDifferenceEquityModel, SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| buildActivatedVectorsAtEventTimes(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| getConstrainedValue(double, double[]) |  | 0% |  | 0% | 7 | 7 | 7 | 7 | 1 | 1 |
| buildZeroValueSurface(SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| buildCellAveragedTerminalValues(SpaceTimeDiscretization) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| getTotalNumberOfSpacePoints(SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| getValues1D(FiniteDifferenceEquityModel, SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| getValues2D(FiniteDifferenceEquityModel, SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| getRightDualCellEdge(double[], int) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| isConstraintActive(double, double[]) |  | 0% |  | 0% | 4 | 4 | 4 | 4 | 1 | 1 |
| getLeftDualCellEdge(double[], int) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getEventTimes() |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| buildDiscreteTerminalValues1D(SpaceTimeDiscretization) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| requiresActivatedEventState() |  | 0% |  | 0% | 4 | 4 | 1 | 1 | 1 | 1 |
| pointwiseExercisePayoff(double) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| DoubleBarrierBinaryOption(String, double, double, double, double, DoubleBarrierType, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierBinaryOption(double, double, double, double, DoubleBarrierType, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getSolverExerciseForValuation() |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| getCurrentActivatedVectorEventState() |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| isInsideBarrierBand(double) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getEffectiveModelForValuation(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| DoubleBarrierBinaryOption(String, double, double, double, double, DoubleBarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierBinaryOption(double, double, double, double, DoubleBarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| buildActivatedCashVectorAtEventTime(double, FiniteDifferenceEquityModel, int) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| DoubleBarrierBinaryOption(String, double, double, double, double, DoubleBarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierBinaryOption(double, double, double, double, DoubleBarrierType, Exercise, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getActivatedVectorEventStateStack() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| DoubleBarrierBinaryOption(double, double, double, double, DoubleBarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getMonitoringTimes() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| getDiscreteTerminalPayoff2D() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| isBelowLowerBarrier(double) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isAboveUpperBarrier(double) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| validateMonitoringSpecification() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| createActivatedVectorEventState(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isMonitoringTime(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| flatten(int, int, int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| usesDiscreteMonitoring() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues2DInternal$1(double, double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues2DInternal$0(double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getUnderlyingName() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMaturity() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCashPayoff() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLowerBarrier() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getUpperBarrier() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDoubleBarrierType() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getExercise() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMonitoringType() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getDiscreteTerminalPayoff2D$0(double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getDiscreteTerminalPayoff2D$1(double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |