DoubleArray errors = DoubleArray.filled(nbStrikes, 1e-4); DoubleArray strikes = strikesShifted(forward, 0.0, strikesLike, strikeType); Pair<DoubleArray, DoubleArray> volAndDerivatives = blackVolatilitiesShiftedFromBlackVolatilitiesShifted( forward, shiftOutput, timeToExpiry, strikes, blackVolatilitiesInput, shiftInput); DoubleArray blackVolatilitiesTransformed = volAndDerivatives.getFirst();
LocalDate exerciseDate = expirationDate(bda, calibrationDate, periodToExpiry); double timeToExpiry = dayCount.relativeYearFraction(calibrationDate, exerciseDate); Pair<DoubleArray, DoubleArray> volAndDerivatives = blackVolatilitiesShiftedFromBlackVolatilitiesShifted( forward, shiftOutput, timeToExpiry, DoubleArray.of(forward), DoubleArray.of(blackVolatility), shiftInput); DoubleArray blackVolatilitiesTransformed = volAndDerivatives.getFirst();