public override void initialize(InflationCoupon coupon)
{
coupon_ = coupon as YoYInflationCoupon;
gearing_ = coupon_.gearing();
spread_ = coupon_.spread();
PaymentDate = coupon_.Date;
YoYInflationIndex y = (YoYInflationIndex)(coupon.index());
RateCurve = y.yoyInflationTermStructure().link.nominalTermStructure();
// past or future fixing is managed in YoYInflationIndex::fixing()
// use yield curve from index (which sets discount)
discount_ = 1.0;
if (PaymentDate > RateCurve.link.referenceDate())
discount_ = RateCurve.link.discount(PaymentDate);
spreadLegValue_ = spread_ * coupon_.accrualPeriod() * discount_;
}