| createAuxiliaryVanillaModel(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 27 | 27 | 1 | 1 |
| priceInOptionByParity(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 31 | 31 | 1 | 1 |
| interpolateSurfaceToOriginalGrid2DAlongFirstState(double[][], SpaceTimeDiscretization, SpaceTimeDiscretization) |  | 0% |  | 0% | 8 | 8 | 25 | 25 | 1 | 1 |
| createAuxiliaryActivatedModel2D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 11 | 11 | 22 | 22 | 1 | 1 |
| getTerminalPayoffForDirectOutPricing(double) |  | 0% |  | 0% | 14 | 14 | 18 | 18 | 1 | 1 |
| createAuxiliaryKnockInModel1D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 21 | 21 | 1 | 1 |
| assembleDirectKnockInSurface2D(FiniteDifferenceEquityModel, FiniteDifferenceEquityModel, double[][], FiniteDifferenceEquityModel, double[][]) |  | 0% |  | 0% | 8 | 8 | 21 | 21 | 1 | 1 |
| createPreHitSpecification(FiniteDifferenceEquityModel, ActivatedBarrierTrace2D) |  | 0% |  | 0% | 3 | 3 | 15 | 15 | 1 | 1 |
| getValuationSpaceTimeDiscretization(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 23 | 23 | 1 | 1 |
| buildActivatedSpotGridAlignedAtBarrier(double[], double) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| priceInOptionDirectly2D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 28 | 28 | 1 | 1 |
| validateProductConfiguration(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 16 | 16 | 19 | 19 | 1 | 1 |
| priceInOptionDiscrete2D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 6 | 6 | 20 | 20 | 1 | 1 |
| extractActivatedBarrierTrace2D(FiniteDifferenceEquityModel, double[][]) |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
| applyDiscreteKnockInEvent2D(double, double[], FiniteDifferenceEquityModel, ActivatedVectorEventState) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
| priceInOptionDirectly1D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 11 | 11 | 1 | 1 |
| isDegenerateZeroCase() |  | 0% |  | 0% | 13 | 13 | 1 | 1 | 1 | 1 |
| priceInOptionDiscrete1D(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 4 | 4 | 16 | 16 | 1 | 1 |
| createAuxiliaryPreHitModel2D(FiniteDifferenceEquityModel, BarrierPreHitSpecification) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| getValues(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 10 | 10 | 14 | 14 | 1 | 1 |
| validateBarrierIsInteriorGridNode(double, double, double, int) |  | 0% |  | 0% | 6 | 6 | 9 | 9 | 1 | 1 |
| createActivatedVanillaProduct(Exercise) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| interpolateSurfaceToOriginalGrid1D(double[][], double[], double[]) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| buildActivatedVectorsAtEventTimes(FiniteDifferenceEquityModel, double[][]) |  | 0% |  | 0% | 3 | 3 | 11 | 11 | 1 | 1 |
| applyEventCondition(double, double[], FiniteDifferenceEquityModel) |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 1 | 1 |
| applyDiscreteKnockInEvent1D(double, double[], FiniteDifferenceEquityModel, ActivatedVectorEventState) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| isConstraintActive(double, double[]) |  | 0% |  | 0% | 8 | 8 | 7 | 7 | 1 | 1 |
| getValue(double, FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 9 | 9 | 1 | 1 |
| BarrierOption(String, double, double, double, double, CallOrPut, BarrierType, Exercise, MonitoringType, double[]) |  | 0% |  | 0% | 2 | 2 | 12 | 12 | 1 | 1 |
| buildZeroValueSurface(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| getPricingMode(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 7 | 7 | 14 | 14 | 1 | 1 |
| validateBarrierInsideGrid(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| getTotalNumberOfSpacePoints(SpaceTimeDiscretization) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| isDegenerateVanillaCase() |  | 0% |  | 0% | 7 | 7 | 1 | 1 | 1 | 1 |
| isBarrierBreachedForKnockIn(double) |  | 0% |  | 0% | 5 | 5 | 4 | 4 | 1 | 1 |
| findExactGridIndex(double[], double) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| createCorrespondingOutOption() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getKnockInExtraStepsBeyondBarrier1D() |  | 0% |  | 0% | 5 | 5 | 5 | 5 | 1 | 1 |
| getEventTimes() |  | 0% |  | 0% | 4 | 4 | 3 | 3 | 1 | 1 |
| getCorrespondingOutBarrierType() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| pointwiseImmediateExercisePayoff(double) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| priceOutOptionDirectly(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| mapCallOrPut(double) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| BarrierOption(String, double, double, double, double, double, BarrierType) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| supportsDiscreteOut(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| supportsDiscreteIn(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| BarrierOption(String, double, double, double, double, CallOrPut, BarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(String, double, double, double, double, double, BarrierType, Exercise, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| getEffectiveModelForOneDimensionalKnockIn(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getEffectiveModelForTwoDimensionalKnockIn(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| BarrierOption(String, double, double, double, double, CallOrPut, BarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(double, double, double, double, CallOrPut, BarrierType, Exercise, MonitoringType, double[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(String, double, double, double, double, double, BarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| createVanillaOption() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isOutOption() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| BarrierOption(double, double, double, double, double, BarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(double, double, double, double, CallOrPut, BarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(String, double, double, double, CallOrPut, BarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(double, double, double, double, BarrierType, Exercise) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getActivatedVectorEventStateStack() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getConstrainedValue(double, double[]) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| BarrierOption(double, double, double, double, double, BarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(double, double, double, double, CallOrPut, BarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(String, double, double, double, CallOrPut, BarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| BarrierOption(double, double, double, double, BarrierType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| supportsDirect2DStochasticVolBarrier(FiniteDifferenceEquityModel) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getMonitoringTimes() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| createActivatedVectorEventState(FiniteDifferenceEquityModel, double[][]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| validateMonitoringSpecification() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getValuesForActivatedVanilla(FDMSolver) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPreHitExercise() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createSolver(FiniteDifferenceEquityModel, FiniteDifferenceEquityProduct, SpaceTimeDiscretization, Exercise) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isMonitoringTime(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| supportsContinuousDirectIn(FiniteDifferenceEquityModel) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| usesDiscreteMonitoring() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getActivatedExercise() |  | 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 |
| getBarrierValue() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRebate() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCallOrPut() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getBarrierType() |  | 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 |
| getInactiveValueAtMaturity() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$priceInOptionDirectly2D$0(double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$priceInOptionDiscrete2D$0(double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |