public override double value(double price)
{
switch (type_)
{
case Option.Type.Call:
return (price - strike_ > 0.0 ? _cashPayoff : 0.0);
case Option.Type.Put:
return (strike_ - price > 0.0 ? _cashPayoff : 0.0);
default:
throw new ArgumentException("unknown/illegal option type");
}
}