93 lines
1.4 KiB
C++
93 lines
1.4 KiB
C++
#include <analytic/coupon.hpp>
|
|
|
|
Coupon::Coupon(void)
|
|
: mRate(0.00), mDecimalRate(0.00), mFrequency(Annual)
|
|
{
|
|
}
|
|
|
|
Coupon::Coupon(const Coupon &coupon)
|
|
{
|
|
*this=coupon;
|
|
}
|
|
|
|
Coupon::Coupon(double rate,Frequency frequency)
|
|
: mRate(rate), mDecimalRate(rate/100.00), mFrequency(frequency)
|
|
{
|
|
}
|
|
|
|
Coupon::~Coupon()
|
|
{
|
|
}
|
|
|
|
BOOL Coupon::operator==(const Coupon &coupon)const
|
|
{
|
|
return (rate()==coupon.rate()&&
|
|
frequency()==coupon.frequency());
|
|
}
|
|
|
|
BOOL Coupon::operator>(const Coupon &coupon)const
|
|
{
|
|
Coupon cpn(coupon);
|
|
|
|
cpn.frequency(frequency());
|
|
return rate()>cpn.rate();
|
|
}
|
|
|
|
BOOL Coupon::operator<(const Coupon &coupon)const
|
|
{
|
|
Coupon cpn(coupon);
|
|
|
|
cpn.frequency(frequency());
|
|
return rate()<cpn.rate();
|
|
}
|
|
|
|
Coupon &Coupon::operator=(const Coupon &coupon)
|
|
{
|
|
rate(coupon.rate());
|
|
frequency(coupon.frequency());
|
|
return *this;
|
|
}
|
|
|
|
double Coupon::rate(void)const
|
|
{
|
|
return mRate;
|
|
}
|
|
|
|
void Coupon::rate(double rate)
|
|
{
|
|
mRate=rate;
|
|
mDecimalRate=mRate/100.00;
|
|
}
|
|
|
|
double Coupon::decimalRate(void)const
|
|
{
|
|
return mDecimalRate;
|
|
}
|
|
|
|
Frequency Coupon::frequency(void)const
|
|
{
|
|
return mFrequency;
|
|
}
|
|
|
|
void Coupon::frequency(const Frequency &frequency)
|
|
{
|
|
mFrequency=frequency;
|
|
}
|
|
|
|
void Coupon::makeAnnual(void)
|
|
{
|
|
mRate*=(double)mFrequency;
|
|
mDecimalRate=mRate/100.00;
|
|
mFrequency=Annual;
|
|
}
|
|
|
|
void Coupon::makeSemiAnnual(void)
|
|
{
|
|
mRate*=(double(mFrequency)/double(SemiAnnual));
|
|
mDecimalRate=mRate/100.00;
|
|
mFrequency=SemiAnnual;
|
|
}
|
|
|
|
|
|
|