ArgumentChecker.notNull(underlyingPool, "Underlying pool");
ArgumentChecker.notNull(creditSpreadTenors, "Credit spread tenors");
ArgumentChecker.notNull(creditSpreadTermStructures, "Credit spread term structures");
ArgumentChecker.notNull(creditSpreadTenor, "Credit spread tenor");
ModeCalculator mode = new ModeCalculator();
double[] spreads = getSpreads(underlyingPool, creditSpreadTenors, creditSpreadTermStructures, creditSpreadTenor);
return mode.evaluate(spreads);
}