[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5332] Refactor for simplicity
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5332] Refactor for simplicity |
Date: |
Wed, 07 Dec 2011 13:13:41 +0000 |
Revision: 5332
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5332
Author: chicares
Date: 2011-12-07 13:13:41 +0000 (Wed, 07 Dec 2011)
Log Message:
-----------
Refactor for simplicity
Modified Paths:
--------------
lmi/trunk/basic_values.hpp
lmi/trunk/ihs_avstrtgy.cpp
lmi/trunk/ihs_basicval.cpp
Modified: lmi/trunk/basic_values.hpp
===================================================================
--- lmi/trunk/basic_values.hpp 2011-12-07 12:59:11 UTC (rev 5331)
+++ lmi/trunk/basic_values.hpp 2011-12-07 13:13:41 UTC (rev 5332)
@@ -228,43 +228,13 @@
,double a_bft_amt
,double a_specamt
) const;
- double GetModalSpecAmtMax
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetModalSpecAmtTgt
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetModalSpecAmtMinNonMec
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetModalSpecAmtGLP
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetModalSpecAmtGSP
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetModalSpecAmtCorridor
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetModalSpecAmtSalary (int a_year) const;
+ double GetModalSpecAmtMax (double annualized_pmt) const;
+ double GetModalSpecAmtTgt (double annualized_pmt) const;
+ double GetModalSpecAmtMinNonMec(double annualized_pmt) const;
+ double GetModalSpecAmtGLP (double annualized_pmt) const;
+ double GetModalSpecAmtGSP (double annualized_pmt) const;
+ double GetModalSpecAmtCorridor (double annualized_pmt) const;
+ double GetModalSpecAmtSalary (int a_year) const;
// Deprecated--used only by the antediluvian branch, which does
// not distinguish ee from er premium.
double GetModalMaxSpecAmt
@@ -388,22 +358,11 @@
,double a_specamt
) const;
double GetModalSpecAmt
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ,oenum_modal_prem_type a_prem_type
+ (double annualized_pmt
+ ,oenum_modal_prem_type premium_type
) const;
- double GetModalSpecAmtMlyDed
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const;
- double GetAnnuityValueMlyDed
- (int a_year
- ,mcenum_mode a_mode
- ) const;
+ double GetModalSpecAmtMlyDed(double annualized_pmt, mcenum_mode) const;
+ double GetAnnuityValueMlyDed(int a_year, mcenum_mode a_mode) const;
std::vector<double> GetActuarialTable
(std::string const& TableFile
Modified: lmi/trunk/ihs_avstrtgy.cpp
===================================================================
--- lmi/trunk/ihs_avstrtgy.cpp 2011-12-07 12:59:11 UTC (rev 5331)
+++ lmi/trunk/ihs_avstrtgy.cpp 2011-12-07 13:13:41 UTC (rev 5332)
@@ -78,6 +78,12 @@
return r;
}
+ double annualized_pmt =
+ InvariantValues().EeMode[reference_year].value()
+ * InvariantValues().EePmt [reference_year]
+ + InvariantValues().ErMode[reference_year].value()
+ * InvariantValues().ErPmt [reference_year]
+ ;
switch(yare_input_.SpecifiedAmountStrategy[actual_year])
{
case mce_sa_input_scalar:
@@ -86,61 +92,31 @@
}
case mce_sa_maximum:
{
- return GetModalSpecAmtMax
- (InvariantValues().EeMode[reference_year].value()
- ,InvariantValues().EePmt [reference_year]
- ,InvariantValues().ErMode[reference_year].value()
- ,InvariantValues().ErPmt [reference_year]
- );
+ return GetModalSpecAmtMax (annualized_pmt);
}
case mce_sa_target:
{
- return GetModalSpecAmtTgt
- (InvariantValues().EeMode[reference_year].value()
- ,InvariantValues().EePmt [reference_year]
- ,InvariantValues().ErMode[reference_year].value()
- ,InvariantValues().ErPmt [reference_year]
- );
+ return GetModalSpecAmtTgt (annualized_pmt);
}
case mce_sa_mep:
{
- return GetModalSpecAmtMinNonMec
- (InvariantValues().EeMode[reference_year].value()
- ,InvariantValues().EePmt [reference_year]
- ,InvariantValues().ErMode[reference_year].value()
- ,InvariantValues().ErPmt [reference_year]
- );
+ return GetModalSpecAmtMinNonMec(annualized_pmt);
}
case mce_sa_glp:
{
- return GetModalSpecAmtGLP
- (InvariantValues().EeMode[reference_year].value()
- ,InvariantValues().EePmt [reference_year]
- ,InvariantValues().ErMode[reference_year].value()
- ,InvariantValues().ErPmt [reference_year]
- );
+ return GetModalSpecAmtGLP (annualized_pmt);
}
case mce_sa_gsp:
{
- return GetModalSpecAmtGSP
- (InvariantValues().EeMode[reference_year].value()
- ,InvariantValues().EePmt [reference_year]
- ,InvariantValues().ErMode[reference_year].value()
- ,InvariantValues().ErPmt [reference_year]
- );
+ return GetModalSpecAmtGSP (annualized_pmt);
}
case mce_sa_corridor:
{
- return GetModalSpecAmtCorridor
- (InvariantValues().EeMode[reference_year].value()
- ,InvariantValues().EePmt [reference_year]
- ,InvariantValues().ErMode[reference_year].value()
- ,InvariantValues().ErPmt [reference_year]
- );
+ return GetModalSpecAmtCorridor (annualized_pmt);
}
case mce_sa_salary:
{
- return GetModalSpecAmtSalary(actual_year);
+ return GetModalSpecAmtSalary (actual_year);
}
default:
{
Modified: lmi/trunk/ihs_basicval.cpp
===================================================================
--- lmi/trunk/ihs_basicval.cpp 2011-12-07 12:59:11 UTC (rev 5331)
+++ lmi/trunk/ihs_basicval.cpp 2011-12-07 13:13:41 UTC (rev 5332)
@@ -1118,37 +1118,15 @@
}
//============================================================================
-double BasicValues::GetModalSpecAmtMax
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtMax(double annualized_pmt) const
{
- return GetModalSpecAmt
- (a_ee_mode
- ,a_ee_pmt
- ,a_er_mode
- ,a_er_pmt
- ,MinPremType
- );
+ return GetModalSpecAmt(annualized_pmt, MinPremType);
}
//============================================================================
-double BasicValues::GetModalSpecAmtTgt
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtTgt(double annualized_pmt) const
{
- return GetModalSpecAmt
- (a_ee_mode
- ,a_ee_pmt
- ,a_er_mode
- ,a_er_pmt
- ,TgtPremType
- );
+ return GetModalSpecAmt(annualized_pmt, TgtPremType);
}
/// Calculate specified amount as a simple function of premium.
@@ -1159,37 +1137,23 @@
/// duration.
double BasicValues::GetModalSpecAmt
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ,oenum_modal_prem_type a_prem_type
+ (double annualized_pmt
+ ,oenum_modal_prem_type premium_type
) const
{
- if(oe_monthly_deduction == a_prem_type)
+ if(oe_monthly_deduction == premium_type)
{
- return GetModalSpecAmtMlyDed
- (a_ee_mode
- ,a_ee_pmt
- ,a_er_mode
- ,a_er_pmt
- );
+ return GetModalSpecAmtMlyDed(annualized_pmt, mce_annual);
}
- else if(oe_modal_nonmec == a_prem_type)
+ else if(oe_modal_nonmec == premium_type)
{
- return GetModalSpecAmtMinNonMec
- (a_ee_mode
- ,a_ee_pmt
- ,a_er_mode
- ,a_er_pmt
- );
+ return GetModalSpecAmtMinNonMec(annualized_pmt);
}
- else if(oe_modal_table == a_prem_type)
+ else if(oe_modal_table == premium_type)
{
// TODO ?? This is dubious. If the table specified is a
// seven-pay table, then this seems not to give the same
// result as the seven-pay premium type.
- double annualized_pmt = a_ee_mode * a_ee_pmt + a_er_mode * a_er_pmt;
return round_min_specamt()
(annualized_pmt / GetModalPremTgtFromTable(0, mce_annual, 1)
);
@@ -1197,7 +1161,7 @@
else
{
fatal_error()
- << "Unknown modal premium type " << a_prem_type << '.'
+ << "Unknown modal premium type " << premium_type << '.'
<< LMI_FLUSH
;
}
@@ -1210,50 +1174,22 @@
/// changes dramatically complicate the relationship between premium
/// and specified amount.
-double BasicValues::GetModalSpecAmtMinNonMec
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtMinNonMec(double annualized_pmt) const
{
- double annualized_pmt = a_ee_mode * a_ee_pmt + a_er_mode * a_er_pmt;
- return round_min_specamt()
- (annualized_pmt / MortalityRates_->SevenPayRates()[0]
- );
+ return round_min_specamt()(annualized_pmt /
MortalityRates_->SevenPayRates()[0]);
}
//============================================================================
-double BasicValues::GetModalSpecAmtGLP
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtGLP(double annualized_pmt) const
{
- double annualized_pmt = a_ee_mode * a_ee_pmt + a_er_mode * a_er_pmt;
- return gpt_specamt::CalculateGLPSpecAmt
- (*this
- ,0
- ,annualized_pmt
- ,effective_dbopt_7702(DeathBfts_->dbopt()[0], Equiv7702DBO3)
- );
+ mcenum_dbopt_7702 const z = effective_dbopt_7702(DeathBfts_->dbopt()[0],
Equiv7702DBO3);
+ return gpt_specamt::CalculateGLPSpecAmt(*this, 0, annualized_pmt, z);
}
//============================================================================
-double BasicValues::GetModalSpecAmtGSP
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtGSP(double annualized_pmt) const
{
- double annualized_pmt = a_ee_mode * a_ee_pmt + a_er_mode * a_er_pmt;
- return gpt_specamt::CalculateGSPSpecAmt
- (*this
- ,0
- ,annualized_pmt
- );
+ return gpt_specamt::CalculateGSPSpecAmt(*this, 0, annualized_pmt);
}
/// Calculate specified amount using a corridor ratio.
@@ -1262,16 +1198,9 @@
/// strategy makes sense only at issue. Thus, arguments should
/// represent initial premium and mode.
-double BasicValues::GetModalSpecAmtCorridor
- (mcenum_mode a_ee_mode
- ,double a_ee_pmt
- ,mcenum_mode a_er_mode
- ,double a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtCorridor(double annualized_pmt) const
{
- double annualized_pmt = a_ee_mode * a_ee_pmt + a_er_mode * a_er_pmt;
- double rate = GetCorridorFactor()[0];
- return round_min_specamt()(annualized_pmt * rate);
+ return round_min_specamt()(annualized_pmt * GetCorridorFactor()[0]);
}
/// Calculate specified amount based on salary.
@@ -1302,12 +1231,7 @@
/// calling this function elicits an error message. SOMEDAY !! It
/// would be better to disable this strategy in the GUI.
-double BasicValues::GetModalSpecAmtMlyDed
- (mcenum_mode // a_ee_mode
- ,double // a_ee_pmt
- ,mcenum_mode // a_er_mode
- ,double // a_er_pmt
- ) const
+double BasicValues::GetModalSpecAmtMlyDed(double, mcenum_mode) const
{
fatal_error()
<< "No maximum specified amount is defined for this product."
@@ -1359,10 +1283,7 @@
/// may not prevent the contract from lapsing; both those outcomes are
/// likely to frustrate customers.
-double BasicValues::GetAnnuityValueMlyDed
- (int a_year
- ,mcenum_mode a_mode
- ) const
+double BasicValues::GetAnnuityValueMlyDed(int a_year, mcenum_mode a_mode) const
{
LMI_ASSERT(0.0 != a_mode);
double spread = 0.0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5332] Refactor for simplicity,
Greg Chicares <=