/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.model.volatility.surface; import org.apache.commons.lang.Validate; /** * Defined as x = ln(strike/forward) */ public class LogMoneyness implements StrikeType { private double _value; public LogMoneyness(final double value) { _value = value; } public LogMoneyness(final double strike, final double forward) { Validate.isTrue(strike > 0, "negative or zero strike"); Validate.isTrue(forward > 0, "negative or zero forward"); _value = Math.log(strike / forward); } @Override public double value() { return _value; } @Override public StrikeType with(double value) { return new LogMoneyness(value); } }