lmi-commits
[Top][All Lists]
Advanced

[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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]