class BucketedGreekResultCollection implements Iterable<Pair<Greek, double[][]>> {

  public void put(final Greek greek, final double[][] result) {
    ArgumentChecker.notNull(greek, "greek");
    if (result != null) {
      ArgumentChecker.isTrue(result.length == _nExpiries, "Wrong number of expiry buckets; have {}, need {}", result.length, _nExpiries);
      for (int i = 0; i < result.length; i++) {
        ArgumentChecker.isTrue(result[i].length == _strikes[i].length, "Wrong number of strike buckets; have {}, need {}", result[i].length, _strikes[i].length);
      }
    }
    _dataMap.put(greek, result);
  }

  public  BucketedGreekResultCollection(final double[] expiries, final double[][] strikes);

}