final UnderlyingType type = nthOrder.getUnderlying();
Validate.isTrue(underlyingData.containsKey(type));
final double value = Math.pow(underlyingData.get(type), n);
return value * getMultiplier(underlying);
} else if (underlying instanceof MixedOrderUnderlying) {
final MixedOrderUnderlying mixedOrder = (MixedOrderUnderlying) underlying;
Double result = null;
double multiplier;
for (final NthOrderUnderlying underlyingOrder : mixedOrder.getUnderlyingOrders()) {
if (result == null) {
result = getValue(underlyingData, underlyingOrder);
} else {
multiplier = getValue(underlyingData, underlyingOrder);
result = result * multiplier;