ArgumentChecker.notNull(blackData, "YieldCurveWithBlackCubeBundle was unexpectedly null");
// Forward sweep
final double strike = security.getStrike();
final EuropeanVanillaOption option = new EuropeanVanillaOption(strike, security.getExpirationTime(), security.isCall());
final double volatility = blackData.getVolatility(security.getExpirationTime(), security.getStrike());
final BlackFunctionData dataBlack = new BlackFunctionData(blackData.getForward(), 1.0, volatility);
final double[] priceAdjoint = BLACK_FUNCTION.getPriceAdjoint(option, dataBlack);
// Backward sweep
final double priceBar = 1.0;
final double volatilityBar = priceAdjoint[2] * priceBar;
final DoublesPair expiryStrikeDelay = new DoublesPair(security.getExpirationTime(), strike);