lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [4846] Fix defect introduced 20070410T0149Z


From: Greg Chicares
Subject: [lmi-commits] [4846] Fix defect introduced 20070410T0149Z
Date: Wed, 21 Apr 2010 00:28:26 +0000

Revision: 4846
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=4846
Author:   chicares
Date:     2010-04-21 00:28:26 +0000 (Wed, 21 Apr 2010)
Log Message:
-----------
Fix defect introduced 20070410T0149Z

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/stratified_charges.cpp
    lmi/trunk/stratified_charges.hpp
    lmi/trunk/stratified_charges.xpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2010-04-20 13:27:43 UTC (rev 4845)
+++ lmi/trunk/ChangeLog 2010-04-21 00:28:26 UTC (rev 4846)
@@ -24935,3 +24935,10 @@
   stratified_charges.hpp
 Permit annotations in '.funds' and '.strata' files.
 
+20100421T0028Z <address@hidden> [758]
+
+  stratified_charges.cpp
+  stratified_charges.hpp
+  stratified_charges.xpp
+Fix defect introduced 20070410T0149Z.
+

Modified: lmi/trunk/stratified_charges.cpp
===================================================================
--- lmi/trunk/stratified_charges.cpp    2010-04-20 13:27:43 UTC (rev 4845)
+++ lmi/trunk/stratified_charges.cpp    2010-04-21 00:28:26 UTC (rev 4846)
@@ -58,8 +58,6 @@
 // elsewhere; meanwhile, this module contains code to represent the
 // DE tiered rates, but ignores those rates and treats DE the same as
 // any other state.
-//
-// File representation should be xml.
 
 // Class stratified_entity implementation.
 
@@ -184,6 +182,7 @@
     // Dummy nodes: root and topic headers.
     dictionary[e_stratified_first                      ] = stratified_entity();
     dictionary[e_topic_premium_banded                  ] = stratified_entity();
+    dictionary[e_topic_asset_banded                    ] = stratified_entity();
     dictionary[e_topic_asset_tiered                    ] = stratified_entity();
     dictionary[e_topic_tiered_premium_tax              ] = stratified_entity();
 
@@ -191,6 +190,8 @@
 
     dictionary[e_curr_sepacct_load_banded_by_premium   ] = stratified_entity();
     dictionary[e_guar_sepacct_load_banded_by_premium   ] = stratified_entity();
+    dictionary[e_curr_sepacct_load_banded_by_assets    ] = stratified_entity();
+    dictionary[e_guar_sepacct_load_banded_by_assets    ] = stratified_entity();
     dictionary[e_curr_m_and_e_tiered_by_assets         ] = stratified_entity();
     dictionary[e_guar_m_and_e_tiered_by_assets         ] = stratified_entity();
     dictionary[e_asset_based_comp_tiered_by_assets     ] = stratified_entity();
@@ -204,6 +205,7 @@
 }
 
 //============================================================================
+// 'special_limit' is 'DB_DynSepAcctLoadLimit'.
 double stratified_charges::stratified_sepacct_load
     (mcenum_gen_basis basis
     ,double           assets
@@ -261,9 +263,7 @@
         kx = std::min(assets, special_limit) / assets;
         }
     stratified_entity const& x = 
raw_entity(e_curr_sepacct_load_banded_by_premium);
-// TODO ?? DATABASE !! This is a goofy workaround until we can add a
-// new 'e_curr_sepacct_load_banded_by_assets' entity.
-    stratified_entity const& y = raw_entity(e_tiered_de_premium_tax);
+    stratified_entity const& y = 
raw_entity(e_curr_sepacct_load_banded_by_assets);
     return
             kx * banded_rate<double>() (premium, x.limits(), x.values())
         +   ky * banded_rate<double>() (assets , y.limits(), y.values())
@@ -284,14 +284,10 @@
         kx = std::min(assets, special_limit) / assets;
         }
     stratified_entity const& x = 
raw_entity(e_guar_sepacct_load_banded_by_premium);
-// TODO ?? DATABASE !! This is a goofy workaround until we can add a
-// new 'e_guar_sepacct_load_banded_by_assets' entity. Until then,
-// '* 1.25' provides an arbitrary but plausible margin of conservatism
-// over the current-basis value.
-    stratified_entity const& y = raw_entity(e_tiered_de_premium_tax);
+    stratified_entity const& y = 
raw_entity(e_guar_sepacct_load_banded_by_assets);
     return
             kx * banded_rate<double>() (premium, x.limits(), x.values())
-        +   ky * banded_rate<double>() (assets , y.limits(), y.values()) * 0.0
+        +   ky * banded_rate<double>() (assets , y.limits(), y.values())
         ;
 }
 
@@ -436,6 +432,10 @@
         ,"curr_sepacct_load_banded_by_premium"
         ,"guar_sepacct_load_banded_by_premium"
 
+        ,"topic_asset_banded"
+        ,"curr_sepacct_load_banded_by_assets"
+        ,"guar_sepacct_load_banded_by_assets"
+
         ,"topic_asset_tiered"
         ,"curr_m_and_e_tiered_by_assets"
         ,"guar_m_and_e_tiered_by_assets"
@@ -492,6 +492,8 @@
 
     READ(root, e_curr_sepacct_load_banded_by_premium  );
     READ(root, e_guar_sepacct_load_banded_by_premium  );
+    READ(root, e_curr_sepacct_load_banded_by_assets   );
+    READ(root, e_guar_sepacct_load_banded_by_assets   );
     READ(root, e_curr_m_and_e_tiered_by_assets        );
     READ(root, e_guar_m_and_e_tiered_by_assets        );
     READ(root, e_asset_based_comp_tiered_by_assets    );
@@ -515,6 +517,8 @@
 
     WRITE(root, e_curr_sepacct_load_banded_by_premium  );
     WRITE(root, e_guar_sepacct_load_banded_by_premium  );
+    WRITE(root, e_curr_sepacct_load_banded_by_assets   );
+    WRITE(root, e_guar_sepacct_load_banded_by_assets   );
     WRITE(root, e_curr_m_and_e_tiered_by_assets        );
     WRITE(root, e_guar_m_and_e_tiered_by_assets        );
     WRITE(root, e_asset_based_comp_tiered_by_assets    );
@@ -549,6 +553,10 @@
     foo.raw_entity(e_curr_sepacct_load_banded_by_premium  
).limits_.push_back(DBL_MAX);
     foo.raw_entity(e_guar_sepacct_load_banded_by_premium  
).values_.push_back(0.0);
     foo.raw_entity(e_guar_sepacct_load_banded_by_premium  
).limits_.push_back(DBL_MAX);
+    foo.raw_entity(e_curr_sepacct_load_banded_by_assets   
).values_.push_back(0.0);
+    foo.raw_entity(e_curr_sepacct_load_banded_by_assets   
).limits_.push_back(DBL_MAX);
+    foo.raw_entity(e_guar_sepacct_load_banded_by_assets   
).values_.push_back(0.0);
+    foo.raw_entity(e_guar_sepacct_load_banded_by_assets   
).limits_.push_back(DBL_MAX);
 
     foo.raw_entity(e_curr_m_and_e_tiered_by_assets        
).values_.push_back(0.0);
     foo.raw_entity(e_curr_m_and_e_tiered_by_assets        
).limits_.push_back(DBL_MAX);

Modified: lmi/trunk/stratified_charges.hpp
===================================================================
--- lmi/trunk/stratified_charges.hpp    2010-04-20 13:27:43 UTC (rev 4845)
+++ lmi/trunk/stratified_charges.hpp    2010-04-21 00:28:26 UTC (rev 4846)
@@ -43,6 +43,10 @@
     ,e_curr_sepacct_load_banded_by_premium
     ,e_guar_sepacct_load_banded_by_premium
 
+    ,e_topic_asset_banded
+    ,e_curr_sepacct_load_banded_by_assets
+    ,e_guar_sepacct_load_banded_by_assets
+
     ,e_topic_asset_tiered
     ,e_curr_m_and_e_tiered_by_assets
     ,e_guar_m_and_e_tiered_by_assets

Modified: lmi/trunk/stratified_charges.xpp
===================================================================
--- lmi/trunk/stratified_charges.xpp    2010-04-20 13:27:43 UTC (rev 4845)
+++ lmi/trunk/stratified_charges.xpp    2010-04-21 00:28:26 UTC (rev 4846)
@@ -27,16 +27,19 @@
 
 #define LMI_TIERED_CHARGE_NAMES \
 {e_stratified_first,e_stratified_first,"dummy","dummy",}, \
-{e_topic_premium_banded,e_stratified_first,"Premium-banded 
charges","Experience rating items that vary by case size.",}, \
-{e_curr_sepacct_load_banded_by_premium,e_topic_premium_banded,"Curr sep acct 
load by premium","Current separate account load, banded by cumulative 'net' 
premium. Enter breakpoints as cumulative premium.",}, \
-{e_guar_sepacct_load_banded_by_premium,e_topic_premium_banded,"Guar sep acct 
load by premium","Guaranteed separate account load, banded by cumulative 'net' 
premium. Enter breakpoints as cumulative premium.",}, \
+{e_topic_premium_banded,e_stratified_first,"Premium-banded charges","Charges 
that are banded by premium.",}, \
+{e_curr_sepacct_load_banded_by_premium,e_topic_premium_banded,"Curr sep acct 
load banded by premium","Current separate-account load, banded by cumulative 
'net' premium. Enter breakpoints as cumulative premium.",}, \
+{e_guar_sepacct_load_banded_by_premium,e_topic_premium_banded,"Guar sep acct 
load banded by premium","Guaranteed separate-account load, banded by cumulative 
'net' premium. Enter breakpoints as cumulative premium.",}, \
+{e_topic_asset_banded,e_stratified_first,"Asset-banded charges","Charges that 
are banded by assets.",}, \
+{e_curr_sepacct_load_banded_by_assets,e_topic_asset_banded,"Curr sep acct load 
banded by assets","Current separate-account load, banded by present 
separate-account assets. Enter breakpoints as total separate-account 
assets.",}, \
+{e_guar_sepacct_load_banded_by_assets,e_topic_asset_banded,"Guar sep acct load 
banded by assets","Guaranteed separate-account load, banded by present 
separate-account assets. Enter breakpoints as total separate-account 
assets.",}, \
 {e_topic_asset_tiered,e_stratified_first,"Asset-tiered charges","Charges that 
are tiered by assets.",}, \
 {e_curr_m_and_e_tiered_by_assets,e_topic_asset_tiered,"Current M&E","Current 
M&&E, tiered by present assets. Enter breakpoints as increments, e.g. first 
50,000,000, next 50,000,000, and so on.",}, \
 {e_guar_m_and_e_tiered_by_assets,e_topic_asset_tiered,"Guaranteed 
M&E","Guaranteed M&&E, tiered by present assets. Enter breakpoints as 
increments, e.g. first 50,000,000, next 50,000,000, and so on.",}, \
 
{e_asset_based_comp_tiered_by_assets,e_topic_asset_tiered,"Compensation","Compensation,
 tiered by present assets. Enter breakpoints as increments, e.g. first 
50,000,000, next 50,000,000, and so on.",}, \
 {e_investment_mgmt_fee_tiered_by_assets,e_topic_asset_tiered,"Investment 
management","Investment management, tiered by present assets. Enter breakpoints 
as increments, e.g. first 50,000,000, next 50,000,000, and so on.",}, \
-{e_curr_sepacct_load_tiered_by_assets,e_topic_asset_tiered,"Curr sep acct load 
by assets","Current separate account load, tiered by present separate account 
assets. Enter breakpoints as increments, e.g. first 50,000,000, next 
50,000,000, and so on.",}, \
-{e_guar_sepacct_load_tiered_by_assets,e_topic_asset_tiered,"Guar sep acct load 
by assets","Guaranteed separate account load, tiered by present separate 
account assets. Enter breakpoints as increments, e.g. first 50,000,000, next 
50,000,000, and so on.",}, \
+{e_curr_sepacct_load_tiered_by_assets,e_topic_asset_tiered,"Curr sep acct load 
tiered by assets","Current separate-account load, tiered by present 
separate-account assets. Enter breakpoints as increments, e.g. first 
50,000,000, next 50,000,000, and so on.",}, \
+{e_guar_sepacct_load_tiered_by_assets,e_topic_asset_tiered,"Guar sep acct load 
tiered by assets","Guaranteed separate-account load, tiered by present 
separate-account assets. Enter breakpoints as increments, e.g. first 
50,000,000, next 50,000,000, and so on.",}, \
 {e_topic_tiered_premium_tax,e_stratified_first,"Premium tax","Tiered premium 
tax.",}, \
 {e_tiered_ak_premium_tax,e_topic_tiered_premium_tax,"Alaska","Alaska premium 
tax, tiered by policy-year individual-contract premium. Enter breakpoints as 
increments, e.g. first 50,000,000, next 50,000,000, and so on.",}, \
 {e_tiered_de_premium_tax,e_topic_tiered_premium_tax,"Delaware","Delaware 
premium tax, tiered by calendar-year total-case premium (NOT YET IMPLEMENTED). 
Enter breakpoints as increments, e.g. first 50,000,000, next 50,000,000, and so 
on.",}, \





reply via email to

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