/*! An inflation index may return interpolated
          values.  These are linearly interpolated
          values with act/act convention within a period.
          Note that stored "fixings" are always flat (constant)
          within a period and interpolated as needed.  This
          is because interpolation adds an addional availability
          lag (because you always need the next period to
          give the previous period's value)
          and enables storage of the most recent uninterpolated value.
      */

      public InflationIndex(string familyName, Region region, bool revised, bool interpolated,
                            Frequency frequency, Period availabilitiyLag, Currency currency)
      {
         familyName_ = familyName;
         region_ = region;
         revised_ = revised;
         interpolated_ = interpolated;
         frequency_ = frequency;
         availabilityLag_ = availabilitiyLag;
         currency_ = currency;
         Settings.registerWith(update);
         IndexManager.instance().notifier(name()).registerWith(update);
      }
 public YoYInflationIndex(string familyName,
                          Region region,
                          bool revised,
                          bool interpolated,
                          bool ratio, // is this one a genuine index or a ratio?
                          Frequency frequency,
                          Period availabilityLag,
                          Currency currency,
                          Handle<YoYInflationTermStructure> yoyInflation)
    : base(familyName, region, revised, interpolated,frequency, availabilityLag, currency)
 {
    ratio_ = ratio;
    yoyInflation_ = yoyInflation;
    yoyInflation_.registerWith(update);
 }
 public ZeroInflationIndex(string familyName,
                           Region region,
                           bool revised,
                           bool interpolated,
                           Frequency frequency,
                           Period availabilityLag,
                           Currency currency,
                           Handle<ZeroInflationTermStructure> ts )
    : base(familyName, region, revised, interpolated,
                frequency, availabilityLag, currency)
 {
    zeroInflation_ = ts;
    zeroInflation_.registerWith (update);
 }
 public YoYInflationIndex(string familyName,
                          Region region,
                          bool revised,
                          bool interpolated,
                          bool ratio, // is this one a genuine index or a ratio?
                          Frequency frequency,
                          Period availabilityLag,
                          Currency currency)
    :this(familyName,region,revised,interpolated,ratio,frequency,availabilityLag,currency,
          new Handle<YoYInflationTermStructure>()) {}
 //! Always use the evaluation date as the reference date
 public ZeroInflationIndex(string familyName,
                           Region region,
                           bool revised,
                           bool interpolated,
                           Frequency frequency,
                           Period availabilityLag,
                           Currency currency)
    :this(familyName,region,revised,interpolated,frequency,availabilityLag,
          currency,new Handle<ZeroInflationTermStructure>()){}