| applyA0Explicit(double[], double) |  | 0% |  | 0% | 5 | 5 | 42 | 42 | 1 | 1 |
| applyA1Explicit(double[], double) |  | 0% |  | 0% | 5 | 5 | 23 | 23 | 1 | 1 |
| applyA2Explicit(double[], double) |  | 0% |  | 0% | 5 | 5 | 23 | 23 | 1 | 1 |
| applyA3Explicit(double[], double) |  | 0% |  | 0% | 5 | 5 | 23 | 23 | 1 | 1 |
| applyOuterBoundaries(double, double[]) |  | 0% |  | 0% | 7 | 7 | 19 | 19 | 1 | 1 |
| getValues(double, AbstractADI3D.DoubleTernaryOperator, AbstractADI3D.DoubleQuaternaryOperator) |  | 0% |  | 0% | 5 | 5 | 27 | 27 | 1 | 1 |
| performDouglasHalfStep(double[], double, double) |  | 0% | | n/a | 1 | 1 | 20 | 20 | 1 | 1 |
| applyInternalConstraints(double, double[]) |  | 0% |  | 0% | 6 | 6 | 11 | 11 | 1 | 1 |
| AbstractADI3D(FiniteDifferenceEquityModel, FiniteDifferenceEquityProduct, SpaceTimeDiscretization, Exercise) |  | 0% |  | 0% | 4 | 4 | 19 | 19 | 1 | 1 |
| applyExerciseObstacleIfNeeded(double, double, double[], AbstractADI3D.DoubleQuaternaryOperator) |  | 0% |  | 0% | 6 | 6 | 16 | 16 | 1 | 1 |
| sanitize(double[]) |  | 0% |  | 0% | 5 | 5 | 11 | 11 | 1 | 1 |
| getUpperBoundaryValueForFirstDirection(double, int, int, double) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| getUpperBoundaryValueForSecondDirection(double, int, int, double) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| getUpperBoundaryValueForThirdDirection(double, int, int, double) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| getLowerBoundaryValueForFirstDirection(double, int, int, double) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| getLowerBoundaryValueForSecondDirection(double, int, int, double) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| getLowerBoundaryValueForThirdDirection(double, int, int, double) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| performStableDouglasStep(double[], double, double) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| isInternalConstraintActive(double, double, double, double) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| add(double[], double[]) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| subtract(double[], double[]) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getValue(double, double, AbstractADI3D.DoubleTernaryOperator, AbstractADI3D.DoubleQuaternaryOperator) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| applyFullExplicitOperator(double[], double) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| getValue(double, double, DoubleUnaryOperator) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| getValue(double, double, DoubleBinaryOperator) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| getValue(double, double, AbstractADI3D.DoubleTernaryOperator) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| extractBoundaryValue(BoundaryCondition[], int, double) |  | 0% |  | 0% | 5 | 5 | 4 | 4 | 1 | 1 |
| scale(double[], double) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| overwriteBoundaryRow(TridiagonalMatrix, double[], int, double) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| flatten(int, int, int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getValues(double, DoubleUnaryOperator) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getValues(double, DoubleBinaryOperator) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getValues(double, AbstractADI3D.DoubleTernaryOperator) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues$4(AbstractADI3D.DoubleTernaryOperator, double, double, double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues$3(DoubleBinaryOperator, double, double, double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues$2(DoubleBinaryOperator, double, double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues$1(DoubleUnaryOperator, double, double, double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getValues$0(DoubleUnaryOperator, double, double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getN() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getN2() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getN1() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getN0() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getX2Grid() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getX1Grid() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getX0Grid() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getTheta() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getExercise() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSpaceTimeDiscretization() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProduct() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getModel() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |