@SuppressWarnings("synthetic-access")
@Override
public Double evaluate(final StandardOptionDataBundle data) {
Validate.notNull(data);
if (Math.abs(definition.getPower() - Math.round(definition.getPower())) > 1e-15) {
throw new OptionPricingException("Analytic powered option pricing model can only be used when then power is an integer");
}
final double s = data.getSpot();
final double k = definition.getStrike();
final double t = definition.getTimeToExpiry(data.getDate());
final double b = data.getCostOfCarry();