lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5794] Refactor for clarity and speed


From: Greg Chicares
Subject: [lmi-commits] [5794] Refactor for clarity and speed
Date: Tue, 15 Oct 2013 13:38:13 +0000

Revision: 5794
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5794
Author:   chicares
Date:     2013-10-15 13:38:12 +0000 (Tue, 15 Oct 2013)
Log Message:
-----------
Refactor for clarity and speed

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/gpt_commutation_functions.cpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2013-10-15 11:32:26 UTC (rev 5793)
+++ lmi/trunk/ChangeLog 2013-10-15 13:38:12 UTC (rev 5794)
@@ -32691,3 +32691,14 @@
   gpt_commutation_functions.cpp
 Assert more preconditions.
 
+20131015T1132Z <address@hidden> [542]
+
+  gpt_commutation_functions.cpp
+  gpt_commutation_functions.hpp
+Move assertions to improve speed.
+
+20131015T1338Z <address@hidden> [542]
+
+  gpt_commutation_functions.cpp
+Refactor for clarity and speed.
+

Modified: lmi/trunk/gpt_commutation_functions.cpp
===================================================================
--- lmi/trunk/gpt_commutation_functions.cpp     2013-10-15 11:32:26 UTC (rev 
5793)
+++ lmi/trunk/gpt_commutation_functions.cpp     2013-10-15 13:38:12 UTC (rev 
5794)
@@ -148,28 +148,28 @@
     ,gpt_scalar_parms const& args
     ) const
 {
-    double endowment = D_endt_ * args.endt_bft;
-    double charges =
-          M_           [args.duration] * args.f3bft
-        + N_chg_pol_   [args.duration]
-        + N_chg_sa_    [args.duration] * args.chg_sa_amt
-        + N_qab_gio_   [args.duration] * args.qab_gio_amt
-        + N_qab_adb_   [args.duration] * args.qab_adb_amt
-        + N_qab_term_  [args.duration] * args.qab_term_amt
-        + N_qab_spouse_[args.duration] * args.qab_spouse_amt
-        + N_qab_child_ [args.duration] * args.qab_child_amt
-        + N_qab_waiver_[args.duration] * args.qab_waiver_amt
+    int const j = args.duration;
+    double numerator =
+          D_endt_          * args.endt_bft
+        + M_           [j] * args.f3bft
+        + N_chg_pol_   [j]
+        + N_chg_sa_    [j] * args.chg_sa_amt
+        + N_qab_gio_   [j] * args.qab_gio_amt
+        + N_qab_adb_   [j] * args.qab_adb_amt
+        + N_qab_term_  [j] * args.qab_term_amt
+        + N_qab_spouse_[j] * args.qab_spouse_amt
+        + N_qab_child_ [j] * args.qab_child_amt
+        + N_qab_waiver_[j] * args.qab_waiver_amt
         ;
-    double den_tgt = (glp_or_gsp ? D_net_tgt_ : N_net_tgt_)[args.duration];
-    double den_exc = (glp_or_gsp ? D_net_exc_ : N_net_exc_)[args.duration];
-    double z = (endowment + charges) / den_tgt;
+    double denom_tgt = glp_or_gsp ? D_net_tgt_[j] : N_net_tgt_[j];
+    double z = numerator / denom_tgt;
     if(z <= args.target)
         {
         return z;
         }
 
-    charges += args.target * (den_exc - den_tgt);
-    return (endowment + charges) / den_exc;
+    double denom_exc = glp_or_gsp ? D_net_exc_[j] : N_net_exc_[j];
+    return (numerator + args.target * (denom_exc - denom_tgt)) / denom_exc;
 }
 
 gpt_cf_triad::gpt_cf_triad




reply via email to

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