class SmileDeltaParameters implements ParameterizedData, ImmutableBean, Serializable {

  public DoubleArray strike(double forward) {
    int nbDelta = delta.size();
    double[] strike = new double[2 * nbDelta + 1];
    strike[nbDelta] = forward * Math.exp(volatility.get(nbDelta) * volatility.get(nbDelta) * expiry / 2.0);
    for (int loopdelta = 0; loopdelta < nbDelta; loopdelta++) {
      strike[loopdelta] = BlackFormulaRepository.impliedStrike(
          -delta.get(loopdelta), false, forward, expiry, volatility.get(loopdelta)); // Put
      strike[2 * nbDelta - loopdelta] = BlackFormulaRepository.impliedStrike(
          delta.get(loopdelta), true, forward, expiry, volatility.get(2 * nbDelta - loopdelta)); // Call
    }
    return DoubleArray.ofUnsafe(strike);
  }

  private  SmileDeltaParameters(
      double expiry,
      DoubleArray delta,
      DoubleArray volatility,
      List<ParameterMetadata> parameterMetadata);

}