| createAuxiliaryActivatedModel(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 27 | 27 | 1 | 1 |
| interpolateSurfaceToOriginalGrid2DAlongFirstState(double[][], SpaceTimeDiscretization, SpaceTimeDiscretization) |  | 0% |  | 0% | 8 | 8 | 24 | 24 | 1 | 1 |
| DoubleBarrierOption(String, double, double, double, double, CallOrPut, DoubleBarrierType, Exercise, MonitoringType, double[]) |  | 0% |  | 0% | 16 | 16 | 33 | 33 | 1 | 1 |
| createAuxiliaryPreHitModel2D(FiniteDifferenceEquityModel, DoubleBarrierOption.DoubleBarrierTrace2D, DoubleBarrierOption.DoubleBarrierTrace2D) |  | 0% |  | 0% | 3 | 3 | 18 | 18 | 1 | 1 |
| applyEvaluationTimeDiscreteCondition(double, double[], FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 26 | 26 | 1 | 1 |
| assembleDirectKnockInSurface2D(FiniteDifferenceEquityModel, FiniteDifferenceEquityModel, double[][], FiniteDifferenceEquityModel, double[][]) |  | 0% |  | 0% | 5 | 5 | 17 | 17 | 1 | 1 |
| getValuationSpaceTimeDiscretization(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 23 | 23 | 1 | 1 |
| extractActivatedBoundaryTrace2D(FiniteDifferenceEquityModel, double[][], double) |  | 0% |  | 0% | 4 | 4 | 16 | 16 | 1 | 1 |
| applyEventCondition(double, double[], FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 19 | 19 | 1 | 1 |
| assembleDirectKnockInSurface1D(FiniteDifferenceEquityModel, FiniteDifferenceEquityModel, double[][], FiniteDifferenceEquityModel, double[][]) |  | 0% |  | 0% | 4 | 4 | 13 | 13 | 1 | 1 |
| cellAveragedVanillaPayoff(double, double) |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 1 | 1 |
| priceInOptionDirectly1D(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| createAuxiliaryPreHitModel1D(FiniteDifferenceEquityModel, DoubleBarrierOption.DoubleBarrierTrace1D, DoubleBarrierOption.DoubleBarrierTrace1D) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| priceInOptionDirectly2D(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| isDegenerateZeroCase() |  | 0% |  | 0% | 13 | 13 | 1 | 1 | 1 | 1 |
| createActivatedVanillaProduct() |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| getValue(double, FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| getValues(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 9 | 9 | 13 | 13 | 1 | 1 |
| priceOutOptionDirectly(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 10 | 10 | 1 | 1 |
| getPricingMode(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 9 | 9 | 14 | 14 | 1 | 1 |
| extractActivatedBoundaryTrace1D(FiniteDifferenceEquityModel, double[][], double) |  | 0% |  | 0% | 2 | 2 | 10 | 10 | 1 | 1 |
| interpolateSurfaceToOriginalGrid1D(double[][], double[], double[]) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| applyDiscreteInEvent2D(double, double[], double[], double[], ActivatedVectorEventState) |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| validateProductConfiguration(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 11 | 11 | 1 | 1 |
| buildZeroValueSurface(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| cellAveragedPayoffForDirectOutPricing(double, double) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| priceInOptionDiscrete1D(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 |
| buildActivatedVectorsAtEventTimes(FiniteDifferenceEquityModel, FiniteDifferenceEquityProduct) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| buildCellAveragedTerminalValues(SpaceTimeDiscretization) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| applyDiscreteOutEvent2D(double[], double[], double[]) |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
| priceInOptionDiscrete2D(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| validateBarriersInsideGrid(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| isDegenerateVanillaCase() |  | 0% |  | 0% | 7 | 7 | 1 | 1 | 1 | 1 |
| getTotalNumberOfSpacePoints(SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| applyDiscreteInEvent1D(double, double[], double[], ActivatedVectorEventState) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| isConstraintActive(double, double[]) |  | 0% |  | 0% | 5 | 5 | 4 | 4 | 1 | 1 |
| getRightDualCellEdge(double[], int) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| applyDiscreteOutEvent1D(double[], double[]) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| buildZeroTerminalValues(SpaceTimeDiscretization) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| getColumn(double[][], int) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| validateDiscreteMonitoringScope(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 4 | 4 | 1 | 1 |
| pointwiseVanillaPayoff(double) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getLeftDualCellEdge(double[], int) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| DoubleBarrierOption(double, double, double, double, double, DoubleBarrierType, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| getEventTimes() |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| mapCallOrPut(double) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| DoubleBarrierOption(String, double, double, double, double, CallOrPut, DoubleBarrierType, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierOption(double, double, double, double, CallOrPut, DoubleBarrierType, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierOption(double, double, double, double, double, DoubleBarrierType) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| DoubleBarrierOption(String, double, double, double, double, CallOrPut, DoubleBarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierOption(double, double, double, double, CallOrPut, DoubleBarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierOption(String, double, double, double, double, double, DoubleBarrierType, Exercise, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| getCurrentActivatedVectorEventState() |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| isAliveInsideBand(double) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| isKnockedIn(double) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getEffectiveModelForValuation(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| DoubleBarrierOption(String, double, double, double, double, CallOrPut, DoubleBarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierOption(double, double, double, double, CallOrPut, DoubleBarrierType, Exercise, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| DoubleBarrierOption(String, double, double, double, double, double, DoubleBarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| createVanillaOption() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| DoubleBarrierOption(double, double, double, double, CallOrPut, DoubleBarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getActivatedVectorEventStateStack() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| supportsDirect2D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| pointwisePayoffForDirectOutPricing(double) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getConstrainedValue(double, double[]) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getMonitoringTimes() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| createActivatedVectorEventState(FiniteDifferenceEquityModel, FiniteDifferenceEquityProduct) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| validateMonitoringSpecification() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isOutOption() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 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 |
| getUnderlyingName() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMaturity() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getStrike() |  | 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 |
| getCallOrPut() |  | 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$priceInOptionDiscrete2D$0(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$priceInOptionDirectly2D$0(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |