Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

SwapLeg.cpp

Go to the documentation of this file.
00001 #include ".\swapleg.h"
00002 
00003 SwapLeg::SwapLeg(Date startDate, Real Frequency, Date endDate, Real Notional, Real AmortizingConstant, BusinessDayConvention convention)
00004 {
00005         Natural i=1;
00006         LongInteger serialEnd=endDate.serialNumber();
00007         LongInteger serialCurrent=startDate.serialNumber();
00008         Natural test;
00009         test=Natural((2+serialEnd-serialCurrent)*Frequency/365.25)+1;
00010         _dateSchedule.resize(Natural((2+serialEnd-serialCurrent)*Frequency/365.25)+2);
00011         _flowSchedule.resize(Natural((2+serialEnd-serialCurrent)*Frequency/365.25)+2);
00012         _dateSchedule[0]=startDate;
00013         _flowSchedule[0]=0.;
00014 
00015         while (serialCurrent<=serialEnd) {
00016                 Date Current;
00017                 startDate=startDate.plusDays(Integer(365.25/Frequency));
00018                 Current=startDate;
00019                 Current.applyConvention(convention);
00020                 serialCurrent=Current.serialNumber();
00021                 _flowSchedule[i]=Notional-(i-1)*AmortizingConstant;
00022                 _dateSchedule[i]=Current;
00023                 i++;
00024         }
00025 }
00026 
00027 SwapLeg::SwapLeg(valarray<Date> dates, valarray<Real> Notionals)
00028 {
00029         _dateSchedule.resize(dates.size());
00030         _flowSchedule.resize(Notionals.size());
00031         _dateSchedule=dates;
00032         _flowSchedule=Notionals;
00033 }
00034 
00035 LongInteger SwapLeg::returnSize()
00036 {
00037         return _dateSchedule.size();
00038 }
00039 
00040 valarray<Date> SwapLeg::returnDates()
00041 {
00042         return _dateSchedule;
00043 }
00044 
00045 valarray<Real> SwapLeg::returnAmounts()
00046 {
00047         return _flowSchedule;
00048 }
00049 
00050 SwapLeg::~SwapLeg(void)
00051 {
00052 }

Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:37 2005 for terreneuve by doxygen 1.3.6