# QuantLib_ZeroCouponInflationSwap man page

ZeroCouponInflationSwap — Zero-coupon inflation-indexed swap.

## Synopsis

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

Inherits **Swap**.

### Public Types

enumType{Receiver= -1,Payer= 1 }

### Public Member Functions

ZeroCouponInflationSwap(Typetype,Realnominal, constDate&startDate, constDate&maturity, constCalendar&fixCalendar,BusinessDayConventionfixConvention, constDayCounter&dayCounter,Rate fixedRate, const boost::shared_ptr<ZeroInflationIndex> &infIndex, constPeriod&observationLag, bool adjustInfObsDates=false,CalendarinfCalendar=Calendar(),BusinessDayConventioninfConvention=BusinessDayConvention())

**Inspectors**

Typetype() const

'payer' or 'receiver' refer to the inflation-indexed legReal nominal() constDate startDate() constDate maturityDate() constCalendar fixedCalendar() constBusinessDayConvention fixedConvention() constDayCounter dayCounter() constRate fixedRate() const

$ K $ in the above formula.

boost::shared_ptr<ZeroInflationIndex>inflationIndex() constPeriod observationLag() const

booladjustObservationDates() constCalendar inflationCalendar() constBusinessDayConvention inflationConvention() const

constLeg&fixedLeg() const

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

constLeg&inflationLeg() const

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

**Instrument interface**

voidsetupArguments(PricingEngine::arguments *) const

voidfetchResults(const PricingEngine::results *r) const

**Results**

Real fixedLegNPV() constReal inflationLegNPV() constReal fairRate() const

### Protected Attributes

Typetype_Real nominal_Date startDate_Date maturityDate_Calendar fixCalendar_BusinessDayConvention fixConvention_Rate fixedRate_

boost::shared_ptr<ZeroInflationIndex>infIndex_Period observationLag_

booladjustInfObsDates_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).