lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [6201] Offer strategies for supplemental specified amount


From: Greg Chicares
Subject: [lmi-commits] [6201] Offer strategies for supplemental specified amount
Date: Sun, 31 May 2015 18:37:15 +0000

Revision: 6201
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=6201
Author:   chicares
Date:     2015-05-31 18:37:14 +0000 (Sun, 31 May 2015)
Log Message:
-----------
Offer strategies for supplemental specified amount

Modified Paths:
--------------
    lmi/trunk/account_value.hpp
    lmi/trunk/ihs_acctval.cpp
    lmi/trunk/ihs_avstrtgy.cpp

Modified: lmi/trunk/account_value.hpp
===================================================================
--- lmi/trunk/account_value.hpp 2015-05-31 18:03:40 UTC (rev 6200)
+++ lmi/trunk/account_value.hpp 2015-05-31 18:37:14 UTC (rev 6201)
@@ -211,6 +211,7 @@
     double GetPartMortQ            (int year) const;
 
     void PerformSpecAmtStrategy();
+    void PerformSupplAmtStrategy();
     double CalculateSpecAmtFromStrategy
         (int                actual_year
         ,int                reference_year

Modified: lmi/trunk/ihs_acctval.cpp
===================================================================
--- lmi/trunk/ihs_acctval.cpp   2015-05-31 18:03:40 UTC (rev 6200)
+++ lmi/trunk/ihs_acctval.cpp   2015-05-31 18:37:14 UTC (rev 6201)
@@ -412,6 +412,7 @@
         // This is a crock to suppress an observed symptom.
         InvariantValues().Init(this);
         PerformSpecAmtStrategy();
+        PerformSupplAmtStrategy();
         }
 
     // TODO ?? It seems wrong to initialize the ledger values here.

Modified: lmi/trunk/ihs_avstrtgy.cpp
===================================================================
--- lmi/trunk/ihs_avstrtgy.cpp  2015-05-31 18:03:40 UTC (rev 6200)
+++ lmi/trunk/ihs_avstrtgy.cpp  2015-05-31 18:37:14 UTC (rev 6201)
@@ -176,6 +176,18 @@
         }
 }
 
+void AccountValue::PerformSupplAmtStrategy()
+{
+    for(int j = 0; j < BasicValues::Length; ++j)
+        {
+        double m = 0.0; // No minimum other than zero is defined.
+        double explicit_value = DeathBfts_->supplamt()[j];
+        mcenum_sa_strategy strategy = 
yare_input_.SupplementalAmountStrategy[j];
+        double z = CalculateSpecAmtFromStrategy(j, 0, explicit_value, 
strategy);
+        DeathBfts_->set_supplamt(round_specamt()(std::max(m, z)), j, 1 + j);
+        }
+}
+
 /// Set payment according to selected strategy in a non-solve year.
 
 double AccountValue::DoPerformPmtStrategy




reply via email to

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