lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5172] Fix ancient defect noted 20100723T1029Z: remove dan


From: Greg Chicares
Subject: [lmi-commits] [5172] Fix ancient defect noted 20100723T1029Z: remove dangerous scalars
Date: Wed, 18 May 2011 20:17:54 +0000

Revision: 5172
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5172
Author:   chicares
Date:     2011-05-18 20:17:53 +0000 (Wed, 18 May 2011)
Log Message:
-----------
Fix ancient defect noted 20100723T1029Z: remove dangerous scalars

Modified Paths:
--------------
    lmi/trunk/ledger_invariant.cpp
    lmi/trunk/ledger_invariant.hpp
    lmi/trunk/ledger_xml_io.cpp

Modified: lmi/trunk/ledger_invariant.cpp
===================================================================
--- lmi/trunk/ledger_invariant.cpp      2011-05-13 17:01:42 UTC (rev 5171)
+++ lmi/trunk/ledger_invariant.cpp      2011-05-18 20:17:53 UTC (rev 5172)
@@ -171,9 +171,6 @@
     OtherScalars    ["SpouseIssueAge"        ] = &SpouseIssueAge         ;
     OtherScalars    ["HasHoneymoon"          ] = &HasHoneymoon           ;
     OtherScalars    ["AllowDbo3"             ] = &AllowDbo3              ;
-    OtherScalars    ["StatePremTaxLoad"      ] = &StatePremTaxLoad       ;
-    OtherScalars    ["StatePremTaxRate"      ] = &StatePremTaxRate       ;
-    OtherScalars    ["DacTaxPremLoadRate"    ] = &DacTaxPremLoadRate     ;
     OtherScalars    ["InitAnnLoanDueRate"    ] = &InitAnnLoanDueRate     ;
     OtherScalars    ["IsInforce"             ] = &IsInforce              ;
     OtherScalars    ["CountryCOIMultiplier"  ] = &CountryCOIMultiplier   ;
@@ -289,6 +286,7 @@
     Strings         ["AvoidMec"              ] = &AvoidMec               ;
     Strings         ["PartMortTableName"     ] = &PartMortTableName      ;
     Strings         ["StatePostalAbbrev"     ] = &StatePostalAbbrev      ;
+    Strings         ["PremiumTaxState"       ] = &PremiumTaxState        ;
     Strings         ["CountryIso3166Abbrev"  ] = &CountryIso3166Abbrev   ;
     Strings         ["Comments"              ] = &Comments               ;
 
@@ -752,29 +750,8 @@
     AvoidMec                = (*b->Input_)["AvoidMecMethod"].str();
     PartMortTableName       = "1983 GAM"; // TODO ?? Hardcoded.
     StatePostalAbbrev       = mc_str(b->GetStateOfJurisdiction());
+    PremiumTaxState         = mc_str(b->GetPremiumTaxState());
 
-    // SOMEDAY !! No output form uses these as of 2010-07; for now at
-    // least, they're assumed to be scalars.
-    // TODO ?? Some states have tiered rates, which probably shouldn't
-    // be represented as single scalars. Should these variables simply
-    // be removed?
-    StatePremTaxRate        = b->PremiumTaxRate();
-    StatePremTaxLoad        = b->PremiumTaxLoad();
-    DacTaxPremLoadRate      = b->Loads_->dac_tax_load()[0];
-    // SOMEDAY !! No output form uses this as of 2010-07; for now at
-    // least, it's assumed to be scalar.
-    LMI_ASSERT
-        (each_equal
-            (b->Loads_->dac_tax_load().begin()
-            ,b->Loads_->dac_tax_load().end()
-            ,b->Loads_->dac_tax_load().front()
-            )
-        );
-    // SOMEDAY !! The database allows a distinct DAC tax fund charge,
-    // but it's not supported yet. Output forms must not assume that
-    // the DAC tax premium load represents the entire DAC tax charge.
-    LMI_ASSERT(0.0 == b->Database_->Query(DB_DacTaxFundCharge));
-
     InitAnnLoanDueRate      = b->InterestRates_->RegLnDueRate
         (mce_gen_curr
         ,mce_annual_rate
@@ -964,9 +941,7 @@
     Comments                    = a_Addend.Comments;
 
     StatePostalAbbrev           = a_Addend.StatePostalAbbrev;
-    StatePremTaxLoad            = a_Addend.StatePremTaxLoad;
-    StatePremTaxRate            = a_Addend.StatePremTaxRate;
-    DacTaxPremLoadRate          = a_Addend.DacTaxPremLoadRate;
+    PremiumTaxState             = a_Addend.PremiumTaxState;
     InitAnnLoanDueRate          = a_Addend.InitAnnLoanDueRate;
     UseExperienceRating         = a_Addend.UseExperienceRating;
     UsePartialMort              = a_Addend.UsePartialMort;

Modified: lmi/trunk/ledger_invariant.hpp
===================================================================
--- lmi/trunk/ledger_invariant.hpp      2011-05-13 17:01:42 UTC (rev 5171)
+++ lmi/trunk/ledger_invariant.hpp      2011-05-18 20:17:53 UTC (rev 5172)
@@ -62,9 +62,6 @@
     std::vector<double> const&   GetInforceLives()       const;
     double                       GetInitAnnLoanDueRate() const;
     std::string const&           GetStatePostalAbbrev()  const;
-    double const&                GetStatePremTaxLoad()   const;
-    double const&                GetStatePremTaxRate()   const;
-    double const&                GetDacTaxPremLoadRate() const;
 
     // TODO ?? Does this really belong here?
     // Yes: it keeps the ledger object small; otherwise, numerous IRR
@@ -336,11 +333,9 @@
     void Init();
 
     std::string     StatePostalAbbrev;
+    std::string     PremiumTaxState;
 
     // Nonscalable scalars.
-    double          StatePremTaxLoad;
-    double          StatePremTaxRate;
-    double          DacTaxPremLoadRate;
     double          InitAnnLoanDueRate;
 
     // Special cases.
@@ -373,20 +368,5 @@
     return StatePostalAbbrev;
 }
 
-inline double const& LedgerInvariant::GetStatePremTaxLoad() const
-{
-    return StatePremTaxLoad;
-}
-
-inline double const& LedgerInvariant::GetStatePremTaxRate() const
-{
-    return StatePremTaxRate;
-}
-
-inline double const& LedgerInvariant::GetDacTaxPremLoadRate() const
-{
-    return DacTaxPremLoadRate;
-}
-
 #endif // ledger_invariant_hpp
 

Modified: lmi/trunk/ledger_xml_io.cpp
===================================================================
--- lmi/trunk/ledger_xml_io.cpp 2011-05-13 17:01:42 UTC (rev 5171)
+++ lmi/trunk/ledger_xml_io.cpp 2011-05-18 20:17:53 UTC (rev 5172)
@@ -377,7 +377,6 @@
     format_map["PostHoneymoonSpread"               ] = f4;
     format_map["Preferred"                         ] = f4;
     format_map["PremTaxRate"                       ] = f4;
-    format_map["StatePremTaxRate"                  ] = f4;
 
 // F3: scaled by 100, zero decimals, with '%' at end:
 // > Format as percentage with no decimal places (##0%)
@@ -443,7 +442,6 @@
     format_map["SmokerBlended"                     ] = f1;
     format_map["SmokerDistinct"                    ] = f1;
     format_map["SpouseIssueAge"                    ] = f1;
-    format_map["StatePremTaxLoad"                  ] = f1;
     format_map["SupplementalReport"                ] = f1;
     format_map["UseExperienceRating"               ] = f1;
     format_map["UsePartialMort"                    ] = f1;
@@ -472,7 +470,6 @@
     format_map["CashFlowIRR"                       ] = f4;
     format_map["CorpTaxBracket"                    ] = f4;
     format_map["CurrMandE"                         ] = f4;
-    format_map["DacTaxPremLoadRate"                ] = f4;
     format_map["HoneymoonValueSpread"              ] = f4;
     format_map["IndvTaxBracket"                    ] = f4;
     format_map["InforceHMVector"                   ] = f4;




reply via email to

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