# QuantLib_ZeroCouponInflationSwap man page

ZeroCouponInflationSwap — Zero-coupon inflation-indexed swap.

## Synopsis

`#include <ql/instruments/zerocouponinflationswap.hpp>`

Inherits **Swap**.

### Public Types

enum **Type** { **Receiver** = -1, **Payer** = 1 }

### Public Member Functions

**ZeroCouponInflationSwap** (Type **type**, **Real** nominal, const **Date** &startDate, const **Date** &maturity, const **Calendar** &fixCalendar, **BusinessDayConvention** fixConvention, const **DayCounter** &dayCounter, **Rate fixedRate**, const boost::shared_ptr< **ZeroInflationIndex** > &infIndex, const **Period** &observationLag, bool adjustInfObsDates=false, **Calendar** infCalendar=**Calendar**(), **BusinessDayConvention** infConvention=**BusinessDayConvention**())

**Inspectors**

Type **type** () const

'payer' or 'receiver' refer to the inflation-indexed leg **Real nominal** () const**Date startDate** () const**Date maturityDate** () const**Calendar fixedCalendar** () const**BusinessDayConvention fixedConvention** () const**DayCounter dayCounter** () const**Rate fixedRate** () const

$ K $ in the above formula.

boost::shared_ptr< **ZeroInflationIndex** > **inflationIndex** () const**Period observationLag** () const

bool **adjustObservationDates** () const**Calendar inflationCalendar** () const**BusinessDayConvention inflationConvention** () const

const **Leg** & **fixedLeg** () const

just one cashflow (that is not a coupon) in each leg

const **Leg** & **inflationLeg** () const

just one cashflow (that is not a coupon) in each leg

**Instrument interface**

void **setupArguments** (PricingEngine::arguments *) const

void **fetchResults** (const PricingEngine::results *r) const

**Results**

**Real fixedLegNPV** () const**Real inflationLegNPV** () const**Real fairRate** () const

### Protected Attributes

Type **type_****Real nominal_****Date startDate_****Date maturityDate_****Calendar fixCalendar_****BusinessDayConvention fixConvention_****Rate fixedRate_**

boost::shared_ptr< **ZeroInflationIndex** > **infIndex_****Period observationLag_**

bool **adjustInfObsDates_****Calendar infCalendar_****BusinessDayConvention infConvention_****DayCounter dayCounter_****Date baseDate_****Date obsDate_**

### Additional Inherited Members

## Detailed Description

Zero-coupon inflation-indexed swap.

Quoted as a fixed rate $ K $. At start: [ P_n(0,T) N [(1+K)^{T}-1] = P_n(0,T) N left[ ac{I(T)}{I(0)} -1 right] ] where $ T $ is the maturity time, $ P_n(0,t) $ is the nominal discount factor at time $ t $, $ N $ is the notional, and $ I(t) $ is the inflation index value at time $ t $.

This inherits from swap and has two very simple legs: a fixed leg, from the quote (K); and an indexed leg. At maturity the two single cashflows are swapped. These are the notional versus the inflation-indexed notional Because the coupons are zero there are no accruals (and no coupons).

Inflation is generally available on every day, including holidays and weekends. Hence there is a variable to state whether the observe/fix dates for inflation are adjusted or not. The default is not to adjust.

A zero inflation swap is a simple enough instrument that the standard discounting pricing engine that works for a vanilla swap also works.

**Note:**we do not need Schedules on the legs because they use one or two dates only per leg.

## Member Function Documentation

### void setupArguments (PricingEngine::arguments *) const [virtual]

When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.

Reimplemented from **Swap**.

### void fetchResults (const PricingEngine::results * r) const [virtual]

When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.

Reimplemented from **Swap**.

## Author

Generated automatically by Doxygen for QuantLib from the source code.

## Referenced By

adjustInfObsDates_(3), adjustObservationDates(3), baseDate_(3), fixedCalendar(3), fixedConvention(3), infCalendar_(3), infConvention_(3), inflationCalendar(3), inflationConvention(3), inflationLeg(3), inflationLegNPV(3), obsDate_(3) and ZeroCouponInflationSwap(3) are aliases of QuantLib_ZeroCouponInflationSwap(3).