lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] valyuta/005 133d646: Rename two free functions


From: Greg Chicares
Subject: [lmi-commits] [lmi] valyuta/005 133d646: Rename two free functions
Date: Wed, 20 Jan 2021 20:39:28 -0500 (EST)

branch: valyuta/005
commit 133d646a8b5f373bf0db2db5022882a793e353af
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Rename two free functions
    
    d() was too short; doubleize() was too long; but dblize() is just right.
---
 accountvalue.cpp          |  34 ++++-----
 basicvalues.cpp           |   8 +--
 currency.hpp              |   8 +--
 currency_test.cpp         |   8 +--
 gpt_specamt.cpp           |   4 +-
 ihs_acctval.cpp           | 102 +++++++++++++-------------
 ihs_avdebug.cpp           |   2 +-
 ihs_avmly.cpp             | 180 +++++++++++++++++++++++-----------------------
 ihs_avsolve.cpp           |   4 +-
 ihs_basicval.cpp          |  36 +++++-----
 ledger_invariant_init.cpp |  12 ++--
 ledger_variant_init.cpp   |   2 +-
 loads.cpp                 |   4 +-
 round_to_test.cpp         |   2 +-
 solve.cpp                 |  12 ++--
 15 files changed, 209 insertions(+), 209 deletions(-)

diff --git a/accountvalue.cpp b/accountvalue.cpp
index 5c775f1..4ee32d4 100644
--- a/accountvalue.cpp
+++ b/accountvalue.cpp
@@ -338,16 +338,16 @@ void AccountValue::DoYear
             }
         }
 
-    VariantValues().AcctVal[Year] = d(AVUnloaned + AVRegLn + AVPrfLn);
+    VariantValues().AcctVal[Year] = dblize(AVUnloaned + AVRegLn + AVPrfLn);
     VariantValues().CSVNet[Year] = VariantValues().AcctVal[Year] - 
VariantValues().SurrChg[Year];
     // Update death benefit: "deathbft" currently holds benefit as of the
     //   beginning of month 12, but we want it as of the end of that month,
     //   in case the corridor or option 2 drove it up during the last month.
     TxSetDeathBft();
-    VariantValues().EOYDeathBft[Year] = d(deathbft);
+    VariantValues().EOYDeathBft[Year] = dblize(deathbft);
 
     // IHS !! Change one of these names, which differ only in the terminal 's'.
-    InvariantValues().GrossPmt[Year] += d(std::accumulate(GrossPmts.begin(), 
GrossPmts.end(), C0));
+    InvariantValues().GrossPmt[Year] += 
dblize(std::accumulate(GrossPmts.begin(), GrossPmts.end(), C0));
     InvariantValues().Outlay[Year] =
             InvariantValues().GrossPmt   [Year]
         -   InvariantValues().NetWD      [Year]
@@ -490,7 +490,7 @@ void AccountValue::PerformSpecAmtStrategy()
 
     for(int j = 0; j < BasicValues::GetLength(); ++j)
         {
-        InvariantValues().SpecAmt[j] = d(SA);
+        InvariantValues().SpecAmt[j] = dblize(SA);
         }
 }
 
@@ -550,7 +550,7 @@ void AccountValue::TxOptionChange()
     // Carry the new spec amt forward into all future years.
     for(int j = Year; j < BasicValues::GetLength(); ++j)
         {
-        InvariantValues().SpecAmt[j] = d(ActualSpecAmt);
+        InvariantValues().SpecAmt[j] = dblize(ActualSpecAmt);
         }
 }
 
@@ -582,7 +582,7 @@ void AccountValue::TxSpecAmtChange()
     // Carry the new spec amt forward into all future years.
     for(int j = Year; j < BasicValues::GetLength(); ++j)
         {
-        InvariantValues().SpecAmt[j] = d(ActualSpecAmt);
+        InvariantValues().SpecAmt[j] = dblize(ActualSpecAmt);
         }
 }
 
@@ -727,7 +727,7 @@ void AccountValue::TxLoanRepay()
 
     AVUnloaned -= RequestedLoan;
     AVRegLn += RequestedLoan;    // IHS !! Preferred loans--see lmi.
-    InvariantValues().NewCashLoan[Year] = d(RequestedLoan);
+    InvariantValues().NewCashLoan[Year] = dblize(RequestedLoan);
 }
 
 /// Set account value before monthly deductions.
@@ -783,7 +783,7 @@ void AccountValue::TxSetCoiCharge()
     TxSetDeathBft();
 
     // Negative AV doesn't increase NAAR.
-    NAAR = deathbft * mlyguarv - d(AVUnloaned + AVRegLn + AVPrfLn);
+    NAAR = deathbft * mlyguarv - dblize(AVUnloaned + AVRegLn + AVPrfLn);
     NAAR = round_naar()(NAAR);
 
     CoiCharge = round_coi_charge().c(NAAR * YearsCoiRate0);
@@ -806,7 +806,7 @@ void AccountValue::TxSetRiderDed()
     AdbCharge = C0;
     if(hasadb)
         {
-        AdbCharge = round_rider_charges().c(YearsAdbRate * std::min(500000.0, 
d(ActualSpecAmt)));
+        AdbCharge = round_rider_charges().c(YearsAdbRate * std::min(500000.0, 
dblize(ActualSpecAmt)));
         }
 }
 
@@ -929,7 +929,7 @@ void AccountValue::TxTakeWD()
             // Carry the new spec amt forward into all future years.
             for(int j = Year; j < BasicValues::GetLength(); ++j)
                 {
-                InvariantValues().SpecAmt[j] = d(ActualSpecAmt);
+                InvariantValues().SpecAmt[j] = dblize(ActualSpecAmt);
                 }
             }
             break;
@@ -948,7 +948,7 @@ void AccountValue::TxTakeWD()
     wd -= std::min(WDFee, round_withdrawal().c(wd * WDFeeRate));
     // IHS !! This treats input WD as gross; it probably should be net. But 
compare lmi.
 
-    InvariantValues().NetWD[Year] = d(wd);
+    InvariantValues().NetWD[Year] = dblize(wd);
 // IHS !!    TaxBasis -= wd; // Withdrawals are subtracted from basis in lmi.
 }
 
@@ -972,12 +972,12 @@ void AccountValue::TxTakeLoan()
     // If maximum exceeded...limit it.
     // IHS !! For solves, the lmi branch uses an 'ullage' concept.
     double max_loan =
-          d(AVUnloaned) * 0.9    // IHS !! Icky manifest constant--lmi uses a 
database entity.
+          dblize(AVUnloaned) * 0.9    // IHS !! Icky manifest constant--lmi 
uses a database entity.
         // - surrchg
-        + d(AVRegLn + AVPrfLn)
-        - d(RegLnBal) * (std::pow((1.0 + YearsRegLnIntDueRate), 12 - Month) - 
1.0)
-        - d(PrfLnBal) * (std::pow((1.0 + YearsPrfLnIntDueRate), 12 - Month) - 
1.0)
-        - d(mlydedtonextmodalpmtdate)
+        + dblize(AVRegLn + AVPrfLn)
+        - dblize(RegLnBal) * (std::pow((1.0 + YearsRegLnIntDueRate), 12 - 
Month) - 1.0)
+        - dblize(PrfLnBal) * (std::pow((1.0 + YearsPrfLnIntDueRate), 12 - 
Month) - 1.0)
+        - dblize(mlydedtonextmodalpmtdate)
         ;
     // Interest adjustment: d upper n where n is # months remaining in year.
     // Witholding this keeps policy from becoming overloaned before year end.
@@ -998,7 +998,7 @@ void AccountValue::TxTakeLoan()
 
     AVUnloaned -= RequestedLoan;
     AVRegLn += RequestedLoan;    // IHS !! Also preferred loans: implemented 
in lmi.
-    InvariantValues().NewCashLoan[Year] = d(RequestedLoan);
+    InvariantValues().NewCashLoan[Year] = dblize(RequestedLoan);
 }
 
 /// Test for lapse.
diff --git a/basicvalues.cpp b/basicvalues.cpp
index 3a884fc..05eee6e 100644
--- a/basicvalues.cpp
+++ b/basicvalues.cpp
@@ -200,7 +200,7 @@ currency BasicValues::GetModalTgtPrem
     // IHS !! Implemented better in lmi.
     double Annuity = (1.0 - std::pow(u, 12 / a_mode)) / (1.0 - u);
 
-    double z = d(a_specamt);
+    double z = dblize(a_specamt);
     z /=
         (   1.0
         +   InterestRates_->GenAcctNetRate
@@ -209,7 +209,7 @@ currency BasicValues::GetModalTgtPrem
                 )[a_year]
         );
     z *= MortalityRates_->MonthlyCoiRates(mce_gen_curr)[a_year];
-    z += d(Loads_->monthly_policy_fee(mce_gen_curr)[a_year]);
+    z += dblize(Loads_->monthly_policy_fee(mce_gen_curr)[a_year]);
 //    z += AdbRate;
 //    z *= 1.0 + WpRate;
     z /= 1.0 - Loads_->target_premium_load(mce_gen_curr)[a_year];
@@ -274,12 +274,12 @@ currency BasicValues::GetModalTgtSpecAmt
         );
     double Annuity = (1.0 - std::pow(u, 12 / a_mode)) / (1.0 - u);
 
-    double z = d(a_pmt);
+    double z = dblize(a_pmt);
     z /= Annuity;
     z *= 1.0 - Loads_->target_premium_load(mce_gen_curr)[0];
 //    z /= WpRate;
 //    z -= AdbRate;
-    z -= d(Loads_->monthly_policy_fee(mce_gen_curr)[0]);
+    z -= dblize(Loads_->monthly_policy_fee(mce_gen_curr)[0]);
     z /= MortalityRates_->MonthlyCoiRates(mce_gen_curr)[0];
     z *=
         (   1.0
diff --git a/currency.hpp b/currency.hpp
index 9c55583..31c8128 100644
--- a/currency.hpp
+++ b/currency.hpp
@@ -44,9 +44,9 @@ inline currency from_cents(double z) {return z / 100.0;}
 
 // CURRENCY !! Rename these both to 'dblize'.
 
-inline double d(currency z) {return z;}
+inline double dblize(currency z) {return z;}
 
-inline std::vector<double> doubleize(std::vector<currency> const& z)
+inline std::vector<double> dblize(std::vector<currency> const& z)
 {
     return z;
 }
@@ -133,9 +133,9 @@ inline std::ostream& operator<<(std::ostream& os, currency 
const& z)
 
 inline currency from_cents(double z) {return currency(z, raw_cents{});}
 
-inline double d(currency z) {return z.d();}
+inline double dblize(currency z) {return z.d();}
 
-inline std::vector<double> doubleize(std::vector<currency> const& z)
+inline std::vector<double> dblize(std::vector<currency> const& z)
 {
     std::vector<double> r;
     r.reserve(z.size());
diff --git a/currency_test.cpp b/currency_test.cpp
index 176b474..18a7da1 100644
--- a/currency_test.cpp
+++ b/currency_test.cpp
@@ -146,7 +146,7 @@ void currency_test::test_times_int()
     // currency * int returns currency
     currency const mult2 {3125, raw_cents {}};
     BOOST_TEST_EQUAL(1000.0,  (32 * mult2).d());
-    BOOST_TEST_EQUAL(1000.0, d(32 * mult2));
+    BOOST_TEST_EQUAL(1000.0, dblize(32 * mult2));
     BOOST_TEST_EQUAL(100000, (mult2 * 32).m_);
 }
 
@@ -223,12 +223,12 @@ void currency_test::test_quodlibet()
 {
     currency const a0(325, raw_cents{});
     BOOST_TEST_EQUAL(3.25, a0.d());
-    BOOST_TEST_EQUAL(3.25, d(a0));
+    BOOST_TEST_EQUAL(3.25, dblize(a0));
     currency       a1(475, raw_cents{});
     BOOST_TEST_EQUAL(4.75, a1.d());
-    BOOST_TEST_EQUAL(4.75, d(a1));
+    BOOST_TEST_EQUAL(4.75, dblize(a1));
     currency const a2 = from_cents(125);
-    BOOST_TEST_EQUAL(1.25, d(a2));
+    BOOST_TEST_EQUAL(1.25, dblize(a2));
 
     currency b0 = round_to_nearest_cent.c(464.180000000000006821);
     currency b1 = round_to_nearest_cent.c(263.01999999999998181);
diff --git a/gpt_specamt.cpp b/gpt_specamt.cpp
index 4dc430a..a9116bd 100644
--- a/gpt_specamt.cpp
+++ b/gpt_specamt.cpp
@@ -108,7 +108,7 @@ class FindSpecAmt
                     ,a_Trial
                     ,NetPmtFactorTgt
                     ,NetPmtFactorExc
-                    ,d(Values_.GetAnnualTgtPrem(Duration, SpecAmt))
+                    ,dblize(Values_.GetAnnualTgtPrem(Duration, SpecAmt))
                     )
             -   Premium
             ;
@@ -151,7 +151,7 @@ currency gpt_specamt::CalculateSpecAmt
         ,z
         ,a_EIOBasis
         ,a_Duration
-        ,d(a_Premium)
+        ,dblize(a_Premium)
         ,a_NetPmtFactorTgt
         ,a_NetPmtFactorExc
         );
diff --git a/ihs_acctval.cpp b/ihs_acctval.cpp
index eee40b1..94c763a 100644
--- a/ihs_acctval.cpp
+++ b/ihs_acctval.cpp
@@ -189,7 +189,7 @@ void AccountValue::assert_pmts_add_up(char const* file, int 
line, int month)
 #if defined CURRENCY_UNIT_IS_CENTS
                          GrossPmts[month] ==   EeGrossPmts[month]     + 
ErGrossPmts[month]
 #else  // !defined CURRENCY_UNIT_IS_CENTS
-        materially_equal(d(GrossPmts[month]), d(EeGrossPmts[month]) + 
d(ErGrossPmts[month]))
+        materially_equal(dblize(GrossPmts[month]), dblize(EeGrossPmts[month]) 
+ dblize(ErGrossPmts[month]))
 #endif // !defined CURRENCY_UNIT_IS_CENTS
         ;
     if(okay)
@@ -258,7 +258,7 @@ void AccountValue::SetGuarPrem()
         }
     // bignum: the largest integer convertible to and from double.
     LMI_ASSERT(GuarPremium < from_cents(1LL << 53));
-    ledger_->SetGuarPremium(d(GuarPremium));
+    ledger_->SetGuarPremium(dblize(GuarPremium));
 }
 
 //============================================================================
@@ -428,12 +428,12 @@ void AccountValue::InitializeLife(mcenum_run_basis 
a_Basis)
     SurrChg_.assign(BasicValues::GetLength(), C0);
 
     // TAXATION !! Input::InforceAnnualTargetPremium should be used here.
-    double annual_target_premium = d(GetModalTgtPrem
+    double annual_target_premium = dblize(GetModalTgtPrem
         (0
         ,mce_annual
         ,base_specamt(0)
         ));
-    double sa = d(specamt_for_7702(0));
+    double sa = dblize(specamt_for_7702(0));
 
     // It is at best superfluous to do this for every basis.
     // TAXATION !! Don't do that then.
@@ -477,7 +477,7 @@ void AccountValue::InitializeLife(mcenum_run_basis a_Basis)
     if(yare_input_.EffectiveDate == yare_input_.InforceAsOfDate)
         {
         // No need to initialize 'pmts_7702a' in this case.
-        bfts_7702a.push_back(d(specamt_for_7702A(0)));
+        bfts_7702a.push_back(dblize(specamt_for_7702A(0)));
         }
     else
         {
@@ -937,7 +937,7 @@ void AccountValue::InitializeSpecAmt()
 
     if(0 == Year)
         {
-        InvariantValues().InitTgtPrem = d(AnnualTargetPrem);
+        InvariantValues().InitTgtPrem = dblize(AnnualTargetPrem);
         }
 
     // TODO ?? Perform specamt strategy here?
@@ -976,8 +976,8 @@ void AccountValue::set_list_bill_premium()
             ,Outlay_->er_premium_modes()[Year]
             ,base_specamt(Year)
             );
-        InvariantValues().ListBillPremium   = d(z);
-        InvariantValues().ErListBillPremium = d(z);
+        InvariantValues().ListBillPremium   = dblize(z);
+        InvariantValues().ErListBillPremium = dblize(z);
         }
     else
         {
@@ -987,9 +987,9 @@ void AccountValue::set_list_bill_premium()
             ,base_specamt(Year)
             ,term_specamt(Year)
             );
-        InvariantValues().EeListBillPremium = d(z.first);
-        InvariantValues().ErListBillPremium = d(z.second);
-        InvariantValues().ListBillPremium = d(z.first) + d(z.second);
+        InvariantValues().EeListBillPremium = dblize(z.first);
+        InvariantValues().ErListBillPremium = dblize(z.second);
+        InvariantValues().ListBillPremium = dblize(z.first) + dblize(z.second);
         }
 }
 
@@ -1014,8 +1014,8 @@ void AccountValue::set_modal_min_premium()
             ,Outlay_->er_premium_modes()[Year]
             ,base_specamt(Year)
             );
-        InvariantValues().ModalMinimumPremium[Year]   = d(z);
-        InvariantValues().ErModalMinimumPremium[Year] = d(z);
+        InvariantValues().ModalMinimumPremium[Year]   = dblize(z);
+        InvariantValues().ErModalMinimumPremium[Year] = dblize(z);
         }
     else
         {
@@ -1025,9 +1025,9 @@ void AccountValue::set_modal_min_premium()
             ,base_specamt(Year)
             ,term_specamt(Year)
             );
-        InvariantValues().EeModalMinimumPremium[Year] = d(z.first);
-        InvariantValues().ErModalMinimumPremium[Year] = d(z.second);
-        InvariantValues().ModalMinimumPremium[Year] = d(z.first) + d(z.second);
+        InvariantValues().EeModalMinimumPremium[Year] = dblize(z.first);
+        InvariantValues().ErModalMinimumPremium[Year] = dblize(z.second);
+        InvariantValues().ModalMinimumPremium[Year] = dblize(z.first) + 
dblize(z.second);
         }
 }
 
@@ -1155,8 +1155,8 @@ void AccountValue::SetProjectedCoiCharge()
     TxSetTermAmt();
     // presumably material_difference() isn't needed at all? um...yes, it is
     double this_years_terminal_naar = material_difference
-        (d((DBReflectingCorr + TermDB))
-        ,d(TotalAccountValue())
+        (dblize((DBReflectingCorr + TermDB))
+        ,dblize(TotalAccountValue())
         );
     this_years_terminal_naar = std::max(0.0, this_years_terminal_naar);
     double next_years_coi_rate = GetBandedCoiRates(GenBasis_, ActualSpecAmt)[1 
+ Year];
@@ -1190,7 +1190,7 @@ void AccountValue::SetProjectedCoiCharge()
 
 void AccountValue::FinalizeYear()
 {
-    VariantValues().TotalLoanBalance[Year] = d(RegLnBal + PrfLnBal);
+    VariantValues().TotalLoanBalance[Year] = dblize(RegLnBal + PrfLnBal);
 
     currency total_av = TotalAccountValue();
     currency surr_chg = SurrChg();
@@ -1246,12 +1246,12 @@ void AccountValue::FinalizeYear()
         }
     cv_7702 = std::max(cv_7702, HoneymoonValue);
 
-    VariantValues().AcctVal     [Year] = d(total_av);
-    VariantValues().AVGenAcct   [Year] = d(AVGenAcct + AVRegLn + AVPrfLn);
-    VariantValues().AVSepAcct   [Year] = d(AVSepAcct);
+    VariantValues().AcctVal     [Year] = dblize(total_av);
+    VariantValues().AVGenAcct   [Year] = dblize(AVGenAcct + AVRegLn + AVPrfLn);
+    VariantValues().AVSepAcct   [Year] = dblize(AVSepAcct);
     VariantValues().DacTaxRsv   [Year] = DacTaxRsv;
-    VariantValues().CSVNet      [Year] = d(csv_net);
-    VariantValues().CV7702      [Year] = d(cv_7702);
+    VariantValues().CSVNet      [Year] = dblize(csv_net);
+    VariantValues().CV7702      [Year] = dblize(cv_7702);
 
     // Update death benefit. 'DBReflectingCorr' currently equals the
     // death benefit as of the beginning of the twelfth month, but its
@@ -1261,11 +1261,11 @@ void AccountValue::FinalizeYear()
     TxSetDeathBft();
     TxSetTermAmt();
     // post values to LedgerVariant
-    InvariantValues().TermSpecAmt   [Year] = d(TermSpecAmt);
-    VariantValues().TermPurchased   [Year] = d(TermDB);
+    InvariantValues().TermSpecAmt   [Year] = dblize(TermSpecAmt);
+    VariantValues().TermPurchased   [Year] = dblize(TermDB);
     // Add term rider DB
-    VariantValues().BaseDeathBft    [Year] = d(DBReflectingCorr);
-    VariantValues().EOYDeathBft     [Year] = d(DBReflectingCorr + TermDB);
+    VariantValues().BaseDeathBft    [Year] = dblize(DBReflectingCorr);
+    VariantValues().EOYDeathBft     [Year] = dblize(DBReflectingCorr + TermDB);
 
 /*
     // AV already includes any experience refund credited, but it's
@@ -1290,20 +1290,20 @@ void AccountValue::FinalizeYear()
 
     // Monthly deduction detail
 
-    VariantValues().COICharge         [Year] = d(YearsTotalCoiCharge)    ;
-    VariantValues().RiderCharges      [Year] = d(YearsTotalRiderCharges) ;
-    VariantValues().AVRelOnDeath      [Year] = YearsAVRelOnDeath          ;
-    VariantValues().ClaimsPaid        [Year] = YearsGrossClaims           ;
-    VariantValues().DeathProceedsPaid [Year] = YearsDeathProceeds         ;
-    VariantValues().NetClaims         [Year] = YearsNetClaims             ;
-    VariantValues().NetIntCredited    [Year] = d(YearsTotalNetIntCredited);
-    VariantValues().GrossIntCredited  [Year] = d(YearsTotalGrossIntCredited);
-    VariantValues().LoanIntAccrued    [Year] = d(YearsTotalLoanIntAccrued);
-    VariantValues().NetCOICharge      [Year] = YearsTotalNetCoiCharge     ;
-    VariantValues().PolicyFee         [Year] = d(YearsTotalPolicyFee)    ;
-    VariantValues().DacTaxLoad        [Year] = YearsTotalDacTaxLoad       ;
-    VariantValues().SpecAmtLoad       [Year] = d(YearsTotalSpecAmtLoad)  ;
-    VariantValues().PremTaxLoad       [Year] = PremiumTax_->ytd_load();
+    VariantValues().COICharge         [Year] = dblize(YearsTotalCoiCharge)    ;
+    VariantValues().RiderCharges      [Year] = dblize(YearsTotalRiderCharges) ;
+    VariantValues().AVRelOnDeath      [Year] = YearsAVRelOnDeath              ;
+    VariantValues().ClaimsPaid        [Year] = YearsGrossClaims               ;
+    VariantValues().DeathProceedsPaid [Year] = YearsDeathProceeds             ;
+    VariantValues().NetClaims         [Year] = YearsNetClaims                 ;
+    VariantValues().NetIntCredited    [Year] = 
dblize(YearsTotalNetIntCredited);
+    VariantValues().GrossIntCredited  [Year] = 
dblize(YearsTotalGrossIntCredited);
+    VariantValues().LoanIntAccrued    [Year] = 
dblize(YearsTotalLoanIntAccrued);
+    VariantValues().NetCOICharge      [Year] = YearsTotalNetCoiCharge         ;
+    VariantValues().PolicyFee         [Year] = dblize(YearsTotalPolicyFee)    ;
+    VariantValues().DacTaxLoad        [Year] = YearsTotalDacTaxLoad           ;
+    VariantValues().SpecAmtLoad       [Year] = dblize(YearsTotalSpecAmtLoad)  ;
+    VariantValues().PremTaxLoad       [Year] = PremiumTax_->ytd_load()        ;
 
     currency notional_sep_acct_charge =
           YearsTotalSepAcctLoad
@@ -1312,14 +1312,14 @@ void AccountValue::FinalizeYear()
         ;
 #if 0 // not needed--already currency
     double notional_sep_acct_charge =
-          d(YearsTotalSepAcctLoad)
+          dblize(YearsTotalSepAcctLoad)
         + material_difference
             (YearsTotalGrossIntCredited
             ,YearsTotalNetIntCredited
             )
         ;
 #endif // 0
-    VariantValues().SepAcctCharges    [Year] = d(notional_sep_acct_charge);
+    VariantValues().SepAcctCharges    [Year] = 
dblize(notional_sep_acct_charge);
 
     // Record dynamic interest rate in ledger object.
     //
@@ -1353,7 +1353,7 @@ void AccountValue::FinalizeYear()
             );
         }
 
-    VariantValues().NetPmt[Year] = d(std::accumulate
+    VariantValues().NetPmt[Year] = dblize(std::accumulate
         (NetPmts.begin()
         ,NetPmts.end()
         ,-YearsTotalGptForceout
@@ -1369,15 +1369,15 @@ void AccountValue::FinalizeYear()
         // Forceouts should be a distinct component, passed separately
         // to ledger values. Probably we should treat 1035 exchanges
         // and NAAR 'forceouts' the same way.
-        InvariantValues().GrossPmt  [Year]  -= d(YearsTotalGptForceout);
-        InvariantValues().EeGrossPmt[Year]  -= d(YearsTotalGptForceout);
+        InvariantValues().GrossPmt  [Year]  -= dblize(YearsTotalGptForceout);
+        InvariantValues().EeGrossPmt[Year]  -= dblize(YearsTotalGptForceout);
 
         for(int j = 0; j < 12; ++j)
             {
             assert_pmts_add_up(__FILE__, __LINE__, j);
-            InvariantValues().GrossPmt  [Year]  += d(GrossPmts  [j]);
-            InvariantValues().EeGrossPmt[Year]  += d(EeGrossPmts[j]);
-            InvariantValues().ErGrossPmt[Year]  += d(ErGrossPmts[j]);
+            InvariantValues().GrossPmt  [Year]  += dblize(GrossPmts  [j]);
+            InvariantValues().EeGrossPmt[Year]  += dblize(EeGrossPmts[j]);
+            InvariantValues().ErGrossPmt[Year]  += dblize(ErGrossPmts[j]);
             }
         if(0 == Year)
             {
@@ -1398,7 +1398,7 @@ void AccountValue::FinalizeYear()
             -   InvariantValues().NewCashLoan[Year]
             ;
 
-        InvariantValues().GptForceout[Year] = d(YearsTotalGptForceout);
+        InvariantValues().GptForceout[Year] = dblize(YearsTotalGptForceout);
 
 // SOMEDAY !! Not yet implemented.
 //        InvariantValues().NaarForceout[Year] = 
InvariantValues().ErGrossPmt[Year];
diff --git a/ihs_avdebug.cpp b/ihs_avdebug.cpp
index 81a8f2d..592391d 100644
--- a/ihs_avdebug.cpp
+++ b/ihs_avdebug.cpp
@@ -261,7 +261,7 @@ inline void AccountValue::SetMonthlyDetail(int enumerator, 
double d)
 inline void AccountValue::SetMonthlyDetail(int enumerator, currency c)
 {
     // CURRENCY !! Probably value_cast<>(currency) should be specialized.
-    DebugRecord[enumerator] = value_cast<std::string>(d(c));
+    DebugRecord[enumerator] = value_cast<std::string>(dblize(c));
 }
 #endif // defined USE_CURRENCY_CLASS
 
diff --git a/ihs_avmly.cpp b/ihs_avmly.cpp
index bc15cde..a0f88a9 100644
--- a/ihs_avmly.cpp
+++ b/ihs_avmly.cpp
@@ -120,14 +120,14 @@ void AccountValue::DoMonthDR()
     // TAXATION !! Is it really useful to comment the arguments here?
     Irc7702A_->UpdateBft7702A
         (Dcv
-        ,d(DBReflectingCorr + TermDB) // DB7702A
-        ,d(OldDB) // prior_db_7702A
+        ,dblize(DBReflectingCorr + TermDB) // DB7702A
+        ,dblize(OldDB) // prior_db_7702A
         ,DBReflectingCorr == DBIgnoringCorr
         // TAXATION !! This assumes the term rider can be treated as death 
benefit;
         // use 'TermIsDbFor7702A'.
-        ,d(ActualSpecAmt + TermSpecAmt)
-        ,d(OldSA) // prior_sa_7702A
-        ,d(CashValueFor7702())
+        ,dblize(ActualSpecAmt + TermSpecAmt)
+        ,dblize(OldSA) // prior_sa_7702A
+        ,dblize(CashValueFor7702())
         );
 
     NetPmts  [Month] = C0; // TODO ?? expunge as being unnecessary
@@ -154,20 +154,20 @@ void AccountValue::DoMonthDR()
     // Not already rounded by class Irc7702A.
     double max_necessary_premium = Irc7702A_->MaxNecessaryPremium
         (Dcv
-        ,d(AnnualTargetPrem)
+        ,dblize(AnnualTargetPrem)
         ,YearsTotLoadTgtLowestPremtax
         ,YearsTotLoadExcLowestPremtax
-        ,d(kludge_account_value)
+        ,dblize(kludge_account_value)
         );
 // TAXATION !! Should round here, but need to investigate regressions.
 //  max_necessary_premium = round_max_premium()(max_necessary_premium);
     // Already rounded by class Irc7702A.
     double max_non_mec_premium = Irc7702A_->MaxNonMecPremium
         (Dcv
-        ,d(AnnualTargetPrem)
+        ,dblize(AnnualTargetPrem)
         ,YearsTotLoadTgtLowestPremtax
         ,YearsTotLoadExcLowestPremtax
-        ,d(kludge_account_value)
+        ,dblize(kludge_account_value)
         );
 
     // Saved for monthly detail report only. TAXATION !! Then are
@@ -191,12 +191,12 @@ void AccountValue::DoMonthDR()
         {
         Irc7702A_->UpdatePmt7702A
             (Dcv
-            ,-d(NetWD) // TAXATION !! This should be gross, not net.
+            ,-dblize(NetWD) // TAXATION !! This should be gross, not net.
             ,false
-            ,d(AnnualTargetPrem)
+            ,dblize(AnnualTargetPrem)
             ,YearsTotLoadTgtLowestPremtax
             ,YearsTotLoadExcLowestPremtax
-            ,d(kludge_account_value)
+            ,dblize(kludge_account_value)
             );
         }
 
@@ -207,14 +207,14 @@ void AccountValue::DoMonthDR()
         }
     double necessary_premium = std::min // round?
         (material_difference // round?
-            (d(GrossPmts[Month])
-            ,d(gross_1035)
+            (dblize(GrossPmts[Month])
+            ,dblize(gross_1035)
             )
         ,max_necessary_premium
         );
     double unnecessary_premium = material_difference // round?
-        (d(GrossPmts[Month])
-        ,d(gross_1035) + necessary_premium
+        (dblize(GrossPmts[Month])
+        ,dblize(gross_1035) + necessary_premium
         );
 //  NetMaxNecessaryPremium
 //  GrossMaxNecessaryPremium
@@ -251,7 +251,7 @@ void AccountValue::DoMonthDR()
         (Dcv // Potentially modified.
         ,unnecessary_premium
         ,necessary_premium
-        ,d(CashValueFor7702())
+        ,dblize(CashValueFor7702())
         );
     LMI_ASSERT(0.0 <= Dcv);
 
@@ -305,7 +305,7 @@ void AccountValue::process_payment(currency payment)
     double er_proportion = 0.0;
     if(C0 != gross_non_1035_pmts)
         {
-        er_proportion = ErGrossPmts[Month] / d(gross_non_1035_pmts);
+        er_proportion = ErGrossPmts[Month] / dblize(gross_non_1035_pmts);
         }
 
     // This is a net premium that's multiplied by a gross-premium
@@ -361,8 +361,8 @@ void AccountValue::IncrementAVProportionally(currency 
increment)
     AVGenAcct += genacct_increment;
     AVSepAcct += increment - genacct_increment;
 #if !defined CURRENCY_UNIT_IS_CENTS
-    AVSepAcct = round_minutiae().c(d(AVSepAcct));
-    if(0.0 == d(AVSepAcct)) AVSepAcct = C0; // Negate negative zeroes.
+    AVSepAcct = round_minutiae().c(dblize(AVSepAcct));
+    if(0.0 == dblize(AVSepAcct)) AVSepAcct = C0; // Negate negative zeroes.
 #endif // !defined CURRENCY_UNIT_IS_CENTS
 }
 
@@ -453,8 +453,8 @@ void AccountValue::DecrementAVProportionally(currency 
decrement)
 
     double general_account_proportion  = 0.0;
     double separate_account_proportion = 0.0;
-    double general_account_nonnegative_assets  = std::max(0.0, d(AVGenAcct));
-    double separate_account_nonnegative_assets = std::max(0.0, d(AVSepAcct));
+    double general_account_nonnegative_assets  = std::max(0.0, 
dblize(AVGenAcct));
+    double separate_account_nonnegative_assets = std::max(0.0, 
dblize(AVSepAcct));
     if
         (  0.0 == general_account_nonnegative_assets
         && 0.0 == separate_account_nonnegative_assets
@@ -491,8 +491,8 @@ void AccountValue::DecrementAVProportionally(currency 
decrement)
     AVGenAcct -= genacct_decrement;
     AVSepAcct -= decrement - genacct_decrement;
 #if !defined CURRENCY_UNIT_IS_CENTS
-    AVSepAcct = round_minutiae().c(d(AVSepAcct));
-    if(0.0 == d(AVSepAcct)) AVSepAcct = C0; // Negate negative zeroes.
+    AVSepAcct = round_minutiae().c(dblize(AVSepAcct));
+    if(0.0 == dblize(AVSepAcct)) AVSepAcct = C0; // Negate negative zeroes.
 #endif // !defined CURRENCY_UNIT_IS_CENTS
 }
 
@@ -568,7 +568,7 @@ void AccountValue::TxExch1035()
         if(!SolvingForGuarPremium)
             {
             // Maybe this should return the modified value instead of altering 
the argument.
-            double z = d(GrossPmts[Month]);
+            double z = dblize(GrossPmts[Month]);
             Irc7702_->ProcessGptPmt(Year, z);
             GrossPmts[Month] = round_gross_premium().c(z);
             }
@@ -613,10 +613,10 @@ void AccountValue::TxExch1035()
     LMI_ASSERT(0.0 == Dcv);
     Irc7702A_->Update1035Exch7702A
         (Dcv
-        ,d(NetPmts[Month])
+        ,dblize(NetPmts[Month])
         // TAXATION !! This assumes the term rider can be treated as death 
benefit;
         // use 'TermIsDbFor7702A'.
-        ,d(ActualSpecAmt + TermSpecAmt)
+        ,dblize(ActualSpecAmt + TermSpecAmt)
 //        ,DBReflectingCorr + TermDB // TAXATION !! Alternate if 7702A benefit 
is DB?
         );
 
@@ -637,7 +637,7 @@ void AccountValue::TxExch1035()
         // Immediately after a 1035 exchange, DCV should be
         // the 1035 amount reduced by any premium-based loads,
         // but only for the current rate basis.
-        LMI_ASSERT(materially_equal(Dcv, d(NetPmts[Month])));
+        LMI_ASSERT(materially_equal(Dcv, dblize(NetPmts[Month])));
 
         // The initial seven-pay premium shown on the illustration
         // must be its value immediately after any 1035 exchange,
@@ -746,7 +746,7 @@ void AccountValue::ChangeSpecAmtBy(currency delta)
                 break;
             case mce_adjust_both:
                 {
-                term_proportion = TermSpecAmt / d(old_total_specamt);
+                term_proportion = TermSpecAmt / dblize(old_total_specamt);
                 }
                 break;
             case mce_adjust_base:
@@ -804,12 +804,12 @@ void AccountValue::ChangeSpecAmtBy(currency delta)
 // TODO ?? Shouldn't this be moved to FinalizeMonth()? The problem is
 // that the ledger object is used for working storage, where it should
 // probably be write-only instead.
-        InvariantValues().SpecAmt[j] = d(ActualSpecAmt);
+        InvariantValues().SpecAmt[j] = dblize(ActualSpecAmt);
         // Adjust term here only if it's formally a rider.
         // Otherwise, its amount should not have been changed.
         if(!TermIsNotRider)
             {
-            InvariantValues().TermSpecAmt[j] = d(TermSpecAmt);
+            InvariantValues().TermSpecAmt[j] = dblize(TermSpecAmt);
             }
 // Term specamt is a vector in class LedgerInvariant, but a scalar in
 // the input classes, e.g.:
@@ -836,7 +836,7 @@ void AccountValue::ChangeSupplAmtBy(currency delta)
     // Carry the new supplemental amount forward into all future years.
     for(int j = Year; j < BasicValues::GetLength(); ++j)
         {
-        InvariantValues().TermSpecAmt[j] = d(TermSpecAmt);
+        InvariantValues().TermSpecAmt[j] = dblize(TermSpecAmt);
         }
     // Reset term DB whenever term SA changes. It's not obviously
     // necessary to do this here, but neither should it do any harm.
@@ -1140,15 +1140,15 @@ void AccountValue::TxTestGPT()
         // Or maybe not, because we can't match it if there was a plan change.
         Irc7702_->ProcessAdjustableEvent
             (Year
-            ,d(DBReflectingCorr + TermDB)
-            ,d(OldDB)
+            ,dblize(DBReflectingCorr + TermDB)
+            ,dblize(OldDB)
             // TAXATION !! This assumes the term rider can be treated as death 
benefit;
             // use 'TermIsDbFor7702'.
-            ,d(ActualSpecAmt + TermSpecAmt)
-            ,d(OldSA)
+            ,dblize(ActualSpecAmt + TermSpecAmt)
+            ,dblize(OldSA)
             ,new_dbopt
             ,old_dbopt
-            ,d(AnnualTargetPrem)
+            ,dblize(AnnualTargetPrem)
             );
         }
 
@@ -1242,7 +1242,7 @@ void AccountValue::TxAscertainDesiredPayment()
         // Illustration-reg guaranteed premium ignores GPT limit.
         if(!SolvingForGuarPremium)
             {
-            double z = d(eepmt);
+            double z = dblize(eepmt);
             Irc7702_->ProcessGptPmt(Year, z);
             eepmt = round_gross_premium().c(z);
             }
@@ -1257,7 +1257,7 @@ void AccountValue::TxAscertainDesiredPayment()
         // Illustration-reg guaranteed premium ignores GPT limit.
         if(!SolvingForGuarPremium)
             {
-            double z = d(erpmt);
+            double z = dblize(erpmt);
             Irc7702_->ProcessGptPmt(Year, z);
             erpmt = round_gross_premium().c(z);
             }
@@ -1284,7 +1284,7 @@ void AccountValue::TxAscertainDesiredPayment()
         // Illustration-reg guaranteed premium ignores GPT limit.
         if(!SolvingForGuarPremium)
             {
-            double z = d(Dumpin);
+            double z = dblize(Dumpin);
             Irc7702_->ProcessGptPmt(Year, z);
             Dumpin = round_gross_premium().c(z);
             }
@@ -1322,7 +1322,7 @@ void AccountValue::TxLimitPayment(double a_maxpmt)
             gross_1035 = External1035Amount + Internal1035Amount;
             }
         currency gross_pmt_without_1035 = GrossPmts[Month] - gross_1035;
-        gross_pmt_without_1035 = 
round_gross_premium().c(std::min(d(gross_pmt_without_1035), a_maxpmt));
+        gross_pmt_without_1035 = 
round_gross_premium().c(std::min(dblize(gross_pmt_without_1035), a_maxpmt));
         // TODO ?? For now at least, reduce employee premium first.
         progressively_limit
             (EeGrossPmts[Month]
@@ -1387,12 +1387,12 @@ void AccountValue::TxRecognizePaymentFor7702A
     currency amount_paid_7702A = a_pmt;
     Irc7702A_->UpdatePmt7702A
         (Dcv
-        ,d(amount_paid_7702A)
+        ,dblize(amount_paid_7702A)
         ,a_this_payment_is_unnecessary
-        ,d(AnnualTargetPrem)
+        ,dblize(AnnualTargetPrem)
         ,YearsTotLoadTgtLowestPremtax
         ,YearsTotLoadExcLowestPremtax
-        ,d(kludge_account_value)
+        ,dblize(kludge_account_value)
         );
 }
 
@@ -1428,7 +1428,7 @@ void AccountValue::TxAcceptPayment(currency a_pmt)
 
     process_payment(net_pmt);
 
-    Dcv += std::max(0.0, d(net_pmt));
+    Dcv += std::max(0.0, dblize(net_pmt));
     LMI_ASSERT(0.0 <= Dcv);
 
     if(HoneymoonActive)
@@ -1505,7 +1505,7 @@ currency AccountValue::GetPremLoad
     CumulativeSalesLoad += round_net_premium().c(sales_load_);
 
     premium_tax_load_ = PremiumTax_->calculate_load
-        (d(a_pmt - a_portion_exempt_from_premium_tax)
+        (dblize(a_pmt - a_portion_exempt_from_premium_tax)
         ,*StratifiedCharges_
         );
 
@@ -1577,7 +1577,7 @@ void AccountValue::TxLoanRepay()
 // This seems wrong. If we're changing something that's invariant among
 // bases, why do we change it for each basis?
 // TODO ?? Shouldn't this be moved to FinalizeMonth()?
-    InvariantValues().NewCashLoan[Year] = d(ActualLoan);
+    InvariantValues().NewCashLoan[Year] = dblize(ActualLoan);
     // TODO ?? Consider changing loan_ullage_[Year] here.
 }
 
@@ -1602,7 +1602,7 @@ void AccountValue::TxSetBOMAV()
             std::min
                 (   SpecAmtLoadLimit
                 ,   (0 == Year && 0 == Month)
-                    ? d(std::max
+                    ? dblize(std::max
                         (term_specamt(0) + base_specamt(0)
                         ,round_death_benefit().c(NetPmts[0] * 
YearsCorridorFactor)
                         ))
@@ -1625,7 +1625,7 @@ void AccountValue::TxSetBOMAV()
 
     process_deduction(MonthsPolicyFees + SpecAmtLoad);
 
-    Dcv -= d(MonthsPolicyFees + SpecAmtLoad);
+    Dcv -= dblize(MonthsPolicyFees + SpecAmtLoad);
     Dcv = std::max(0.0, Dcv);
 }
 
@@ -1723,12 +1723,12 @@ void AccountValue::TxSetDeathBft()
     DB7702A = DBReflectingCorr + TermDB;
 
     DcvDeathBft = std::max
-        (d(DBIgnoringCorr)
+        (dblize(DBIgnoringCorr)
         ,   (
                 YearsCorridorFactor
             *   (   Dcv
-                -   d(std::min(C0, SurrChg()))
-                +   d(GetRefundableSalesLoad())
+                -   dblize(std::min(C0, SurrChg()))
+                +   dblize(GetRefundableSalesLoad())
 //                +   std::max(0.0, ExpRatReserve) // This would be added if 
it existed.
                 )
             )
@@ -1797,7 +1797,7 @@ void AccountValue::EndTermRider(bool convert)
     // Carry the new term spec amt forward into all future years.
     for(int j = Year; j < BasicValues::GetLength(); ++j)
         {
-        InvariantValues().TermSpecAmt[j] = d(TermSpecAmt);
+        InvariantValues().TermSpecAmt[j] = dblize(TermSpecAmt);
         }
 }
 
@@ -1817,7 +1817,7 @@ void AccountValue::TxSetCoiCharge()
     // the account value by deducting a negative mortality charge.
     NAAR = material_difference
         (DBReflectingCorr * DBDiscountRate[Year]
-        ,std::max(0.0, d(TotalAccountValue()))
+        ,std::max(0.0, dblize(TotalAccountValue()))
         );
     NAAR = std::max(0.0, round_naar()(NAAR));
 
@@ -1827,7 +1827,7 @@ void AccountValue::TxSetCoiCharge()
 // TAXATION !! Should this be handled at the same time as GPT forceouts?
 
     DcvNaar = material_difference
-        (std::max(DcvDeathBft, d(DBIgnoringCorr)) * DBDiscountRate[Year]
+        (std::max(DcvDeathBft, dblize(DBIgnoringCorr)) * DBDiscountRate[Year]
         ,std::max(0.0, Dcv)
         );
     // DCV need not be rounded.
@@ -1876,7 +1876,7 @@ void AccountValue::TxSetRiderDed()
     if(yare_input_.AccidentalDeathBenefit)
         {
         AdbCharge = round_rider_charges().c
-            (YearsAdbRate * std::min(d(ActualSpecAmt), AdbLimit)
+            (YearsAdbRate * std::min(dblize(ActualSpecAmt), AdbLimit)
             );
         }
 
@@ -1919,9 +1919,9 @@ void AccountValue::TxSetRiderDed()
             case oe_waiver_times_specamt:
                 {
                 WpCharge = round_rider_charges().c
-                    (YearsWpRate * std::min(d(ActualSpecAmt), WpLimit)
+                    (YearsWpRate * std::min(dblize(ActualSpecAmt), WpLimit)
                     );
-                DcvWpCharge = d(WpCharge);
+                DcvWpCharge = dblize(WpCharge);
                 }
                 break;
             case oe_waiver_times_deductions:
@@ -1945,11 +1945,11 @@ void AccountValue::TxSetRiderDed()
                     YearsWpRate
                     *   (
                             DcvCoiCharge
-                        +   d(MonthsPolicyFees)
-                        +   d(SpecAmtLoad)
-                        +   d(AdbCharge)
-                        +   d(SpouseRiderCharge)
-                        +   d(ChildRiderCharge)
+                        +   dblize(MonthsPolicyFees)
+                        +   dblize(SpecAmtLoad)
+                        +   dblize(AdbCharge)
+                        +   dblize(SpouseRiderCharge)
+                        +   dblize(ChildRiderCharge)
                         +   DcvTermCharge
                         );
                 }
@@ -1977,7 +1977,7 @@ void AccountValue::TxDoMlyDed()
 
     double dcv_mly_ded =
             DcvCoiCharge
-        +   d(simple_rider_charges)
+        +   dblize(simple_rider_charges)
         +   DcvTermCharge
         +   DcvWpCharge
         ;
@@ -1998,7 +1998,7 @@ void AccountValue::TxDoMlyDed()
     // determined.
     MlyDed += MonthsPolicyFees + SpecAmtLoad;
 
-    YearsTotalNetCoiCharge += d(NetCoiCharge);
+    YearsTotalNetCoiCharge += dblize(NetCoiCharge);
 
     SepAcctValueAfterDeduction = AVSepAcct;
 }
@@ -2065,15 +2065,15 @@ void AccountValue::TxTakeSepAcctLoad()
         {
         double stratified_load = StratifiedCharges_->stratified_sepacct_load
             (GenBasis_
-            ,d(AssetsPostBom)
-            ,d(CumPmtsPostBom)
+            ,dblize(AssetsPostBom)
+            ,dblize(CumPmtsPostBom)
             ,database().query<double>(DB_DynSepAcctLoadLimit)
             );
 
         double tiered_comp = 0.0;
         if(oe_asset_charge_load == 
database().query<oenum_asset_charge_type>(DB_AssetChargeType))
             {
-            tiered_comp = 
StratifiedCharges_->tiered_asset_based_compensation(d(AssetsPostBom));
+            tiered_comp = 
StratifiedCharges_->tiered_asset_based_compensation(dblize(AssetsPostBom));
             }
         if(0.0 != tiered_comp)
             {
@@ -2101,7 +2101,7 @@ void AccountValue::TxTakeSepAcctLoad()
     // Does this seem right? Mightn't it take a sepacct load from the genacct?
     process_deduction(SepAcctLoad);
     YearsTotalSepAcctLoad += SepAcctLoad;
-    Dcv -= d(SepAcctLoad);
+    Dcv -= dblize(SepAcctLoad);
     Dcv = std::max(0.0, Dcv);
 }
 
@@ -2142,8 +2142,8 @@ void AccountValue::ApplyDynamicMandE(currency assets)
 
     // Annual separate-account rates.
 
-    double m_and_e_rate = StratifiedCharges_->tiered_m_and_e(GenBasis_, 
d(assets));
-    double imf_rate = 
StratifiedCharges_->tiered_investment_management_fee(d(assets));
+    double m_and_e_rate = StratifiedCharges_->tiered_m_and_e(GenBasis_, 
dblize(assets));
+    double imf_rate = 
StratifiedCharges_->tiered_investment_management_fee(dblize(assets));
     if(0.0 != imf_rate)
         {
         alarum()
@@ -2153,7 +2153,7 @@ void AccountValue::ApplyDynamicMandE(currency assets)
         }
     double asset_comp_rate =
         (oe_asset_charge_spread == 
database().query<oenum_asset_charge_type>(DB_AssetChargeType))
-            ? StratifiedCharges_->tiered_asset_based_compensation(d(assets))
+            ? 
StratifiedCharges_->tiered_asset_based_compensation(dblize(assets))
             : 0.0
             ;
     if(0.0 != asset_comp_rate)
@@ -2359,12 +2359,12 @@ void AccountValue::SetMaxWD()
     double max_wd =
           AVGenAcct * MaxWdGenAcctValMult
         + AVSepAcct * MaxWdSepAcctValMult
-        + d(AVRegLn  + AVPrfLn)
-        - d(RegLnBal + PrfLnBal)
-        - d(anticipated_deduction(MaxWDDed_))
-        - d(std::max(C0, SurrChg()))
+        + dblize(AVRegLn  + AVPrfLn)
+        - dblize(RegLnBal + PrfLnBal)
+        - dblize(anticipated_deduction(MaxWDDed_))
+        - dblize(std::max(C0, SurrChg()))
         ;
-    if(max_wd < d(MinWD))
+    if(max_wd < dblize(MinWD))
         {
         max_wd = 0.0;
         }
@@ -2540,14 +2540,14 @@ void AccountValue::TxTakeWD()
         return;
         }
 
-    GrossWD = round_withdrawal().c(d(NetWD) + std::min(d(WDFee), NetWD * 
WDFeeRate));
+    GrossWD = round_withdrawal().c(dblize(NetWD) + std::min(dblize(WDFee), 
NetWD * WDFeeRate));
 
     // Free partial surrenders: for instance, the first 20% of account
     // value might be withdrawn each policy year free of surrender
     // charge. This would become more complicated if we maintained
     // distinct surrender-charge layers.
 
-    double surrchg_proportion = SurrChg_[Year] / d(csv);
+    double surrchg_proportion = SurrChg_[Year] / dblize(csv);
     currency non_free_wd = GrossWD;
     if(0.0 != FreeWDProportion[Year])
         {
@@ -2564,7 +2564,7 @@ void AccountValue::TxTakeWD()
     GrossWD += round_withdrawal().c(partial_surrchg);
 
     process_distribution(GrossWD);
-    Dcv -= d(GrossWD);
+    Dcv -= dblize(GrossWD);
     Dcv = std::max(0.0, Dcv);
 
     switch(YearsDBOpt)
@@ -2646,7 +2646,7 @@ void AccountValue::TxTakeWD()
             {
             // TODO ?? TAXATION !! What if reference argument
             // 'premiums_paid_increment' is modified?
-            double premiums_paid_increment = 0.0 - d(GrossWD);
+            double premiums_paid_increment = 0.0 - dblize(GrossWD);
             Irc7702_->ProcessGptPmt(Year, premiums_paid_increment);
             }
         }
@@ -2654,7 +2654,7 @@ void AccountValue::TxTakeWD()
 // This seems wrong. If we're changing something that's invariant among
 // bases, why do we change it for each basis?
 // TODO ?? Shouldn't this be moved to FinalizeMonth()?
-    InvariantValues().NetWD[Year] = d(NetWD);
+    InvariantValues().NetWD[Year] = dblize(NetWD);
 }
 
 //============================================================================
@@ -2662,10 +2662,10 @@ void AccountValue::TxTakeWD()
 void AccountValue::SetMaxLoan()
 {
     double max_loan =
-          d(AVGenAcct + AVSepAcct) * MaxLoanAVMult
-        + d(AVRegLn + AVPrfLn)
-        - d(anticipated_deduction(MaxLoanDed_))
-        - d(std::max(C0, SurrChg()))
+          dblize(AVGenAcct + AVSepAcct) * MaxLoanAVMult
+        + dblize(AVRegLn + AVPrfLn)
+        - dblize(anticipated_deduction(MaxLoanDed_))
+        - dblize(std::max(C0, SurrChg()))
         ;
 
     // Illustrations generally permit loans only on anniversary.
@@ -2758,7 +2758,7 @@ void AccountValue::TxTakeLoan()
         ActualLoan = std::min(max_loan_increment, RequestedLoan);
         ActualLoan = std::max(ActualLoan, C0);
         // TODO ?? Shouldn't this happen in FinalizeMonth()?
-        InvariantValues().NewCashLoan[Year] = d(ActualLoan);
+        InvariantValues().NewCashLoan[Year] = dblize(ActualLoan);
         }
 
     {
@@ -2934,9 +2934,9 @@ void AccountValue::FinalizeMonth()
         {
         if(0 == Year && 0 == Month)
             {
-            InvariantValues().External1035Amount = d(External1035Amount);
-            InvariantValues().Internal1035Amount = d(Internal1035Amount);
-            InvariantValues().Dumpin = d(Dumpin);
+            InvariantValues().External1035Amount = dblize(External1035Amount);
+            InvariantValues().Internal1035Amount = dblize(Internal1035Amount);
+            InvariantValues().Dumpin = dblize(Dumpin);
             }
 
         // TAXATION !! We could also capture MEC status on other bases here.
diff --git a/ihs_avsolve.cpp b/ihs_avsolve.cpp
index 3ca12db..ec57dd6 100644
--- a/ihs_avsolve.cpp
+++ b/ihs_avsolve.cpp
@@ -70,7 +70,7 @@ class SolveHelper
     double operator()(double a_CandidateValue)
         {
 // CURRENCY !! Consider using zero<currency> instead of double.
-        return d(av.SolveTest(av.round_minutiae().c(a_CandidateValue)));
+        return dblize(av.SolveTest(av.round_minutiae().c(a_CandidateValue)));
         }
 };
 
@@ -379,7 +379,7 @@ currency AccountValue::Solve
             // Generally, base and term are independent, and it is
             // the base specamt that's being solved for here, so set
             // the minimum as though there were no term.
-            lower_bound = d(minimum_specified_amount
+            lower_bound = dblize(minimum_specified_amount
                 (  0 == SolveBeginYear_
                 && yare_input_.EffectiveDate == yare_input_.InforceAsOfDate
                 ,false
diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index 13cdc93..caf67b6 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -504,9 +504,9 @@ void BasicValues::Init7702()
             ,yare_input_.SpecifiedAmount[0] + yare_input_.TermRiderAmount
             ,yare_input_.SpecifiedAmount[0] + yare_input_.TermRiderAmount
             ,effective_dbopt_7702(yare_input_.DeathBenefitOption[0], 
Effective7702DboRop)
-            ,doubleize(Loads_->annual_policy_fee  (mce_gen_curr))
-            ,doubleize(Loads_->monthly_policy_fee (mce_gen_curr))
-            ,Loads_->specified_amount_load        (mce_gen_curr)
+            ,dblize(Loads_->annual_policy_fee  (mce_gen_curr))
+            ,dblize(Loads_->monthly_policy_fee (mce_gen_curr))
+            ,Loads_->specified_amount_load     (mce_gen_curr)
             ,SpecAmtLoadLimit
             ,local_mly_charge_add
             ,local_adb_limit
@@ -1034,8 +1034,8 @@ currency BasicValues::GetModalPremGLP
     // for GPT reimplementation.
     double z = Irc7702_->CalculateGLP
         (a_duration
-        ,d(a_bft_amt)
-        ,d(a_specamt)
+        ,dblize(a_bft_amt)
+        ,dblize(a_specamt)
         ,Irc7702_->GetLeastBftAmtEver()
         ,effective_dbopt_7702(DeathBfts_->dbopt()[0], Effective7702DboRop)
         );
@@ -1058,8 +1058,8 @@ currency BasicValues::GetModalPremGSP
 {
     double z = Irc7702_->CalculateGSP
         (a_duration
-        ,d(a_bft_amt)
-        ,d(a_specamt)
+        ,dblize(a_bft_amt)
+        ,dblize(a_specamt)
         ,Irc7702_->GetLeastBftAmtEver()
         );
 
@@ -1154,7 +1154,7 @@ std::pair<double,double> BasicValues::approx_mly_ded
     if(yare_input_.AccidentalDeathBenefit)
         {
         double const r = MortalityRates_->AdbRates()[year];
-        mly_ded += r * std::min(d(specamt), AdbLimit);
+        mly_ded += r * std::min(dblize(specamt), AdbLimit);
         }
 
     if(yare_input_.SpouseRider)
@@ -1172,12 +1172,12 @@ std::pair<double,double> BasicValues::approx_mly_ded
     if(true) // Written thus for parallelism and to keep 'r' local.
         {
         double const r = Loads_->specified_amount_load(mce_gen_curr)[year];
-        mly_ded += r * std::min(d(specamt), SpecAmtLoadLimit);
+        mly_ded += r * std::min(dblize(specamt), SpecAmtLoadLimit);
         }
 
-    mly_ded += d(Loads_->monthly_policy_fee(mce_gen_curr)[year]);
+    mly_ded += dblize(Loads_->monthly_policy_fee(mce_gen_curr)[year]);
 
-    double ann_ded = d(Loads_->annual_policy_fee(mce_gen_curr)[year]);
+    double ann_ded = dblize(Loads_->annual_policy_fee(mce_gen_curr)[year]);
 
     if(yare_input_.WaiverOfPremiumBenefit)
         {
@@ -1186,7 +1186,7 @@ std::pair<double,double> BasicValues::approx_mly_ded
             {
             case oe_waiver_times_specamt:
                 {
-                mly_ded += r * std::min(d(specamt), WpLimit);
+                mly_ded += r * std::min(dblize(specamt), WpLimit);
                 }
                 break;
             case oe_waiver_times_deductions:
@@ -1244,7 +1244,7 @@ std::pair<double,double> BasicValues::approx_mly_ded_ex
     if(yare_input_.AccidentalDeathBenefit)
         {
         double const r = MortalityRates_->AdbRates()[year];
-        er_ded += r * std::min(d(specamt), AdbLimit);
+        er_ded += r * std::min(dblize(specamt), AdbLimit);
         }
 
     // Paid by ee.
@@ -1265,11 +1265,11 @@ std::pair<double,double> BasicValues::approx_mly_ded_ex
     if(true) // Written thus for parallelism and to keep 'r' local.
         {
         double const r = Loads_->specified_amount_load(mce_gen_curr)[year];
-        er_ded += r * std::min(d(specamt), SpecAmtLoadLimit);
+        er_ded += r * std::min(dblize(specamt), SpecAmtLoadLimit);
         }
 
     // Paid by er.
-    er_ded += d(Loads_->monthly_policy_fee(mce_gen_curr)[year]);
+    er_ded += dblize(Loads_->monthly_policy_fee(mce_gen_curr)[year]);
 
     if(yare_input_.WaiverOfPremiumBenefit)
         {
@@ -1279,7 +1279,7 @@ std::pair<double,double> BasicValues::approx_mly_ded_ex
             case oe_waiver_times_specamt:
                 {
                 // Paid by er. (In this case, WP excludes term.)
-                er_ded += r * std::min(d(specamt), WpLimit);
+                er_ded += r * std::min(dblize(specamt), WpLimit);
                 }
                 break;
             case oe_waiver_times_deductions:
@@ -1575,11 +1575,11 @@ std::vector<double> const& 
BasicValues::GetBandedCoiRates
 {
     if(UseUnusualCOIBanding && mce_gen_guar != rate_basis)
         {
-        if(CurrCoiTable0Limit <= d(a_specamt) && d(a_specamt) < 
CurrCoiTable1Limit)
+        if(CurrCoiTable0Limit <= dblize(a_specamt) && dblize(a_specamt) < 
CurrCoiTable1Limit)
             {
             return MortalityRates_->MonthlyCoiRatesBand1(rate_basis);
             }
-        else if(CurrCoiTable1Limit <= d(a_specamt))
+        else if(CurrCoiTable1Limit <= dblize(a_specamt))
             {
             return MortalityRates_->MonthlyCoiRatesBand2(rate_basis);
             }
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index fc13377..922c488 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -108,7 +108,7 @@ void LedgerInvariant::Init(BasicValues const* b)
         }
     else if(b->database().query<bool>(DB_TermIsNotRider))
         {
-        TermSpecAmt            = doubleize(b->DeathBfts_->supplamt());
+        TermSpecAmt            = dblize(b->DeathBfts_->supplamt());
         if(!each_equal(TermSpecAmt, 0.0))
             {
             HasSupplSpecAmt    = true;
@@ -118,7 +118,7 @@ void LedgerInvariant::Init(BasicValues const* b)
         {
         TermSpecAmt            .assign(Length, 0.0);
         }
-    SpecAmt                    = doubleize(b->DeathBfts_->specamt());
+    SpecAmt                    = dblize(b->DeathBfts_->specamt());
 
     // Forborne vectors.
 
@@ -147,7 +147,7 @@ void LedgerInvariant::Init(BasicValues const* b)
     // Scalable scalars.
 
     // SOMEDAY !! Things indexed with '[0]' should probably use inforce year 
instead.
-    InitBaseSpecAmt            = d(b->DeathBfts_->specamt()[0]);
+    InitBaseSpecAmt            = dblize(b->DeathBfts_->specamt()[0]);
     InitTermSpecAmt            = TermSpecAmt[0];
     ChildRiderAmount           = b->yare_input_.ChildRiderAmount;
     SpouseRiderAmount          = b->yare_input_.SpouseRiderAmount;
@@ -726,7 +726,7 @@ void LedgerInvariant::ReInit(BasicValues const* b)
         }
     else if(b->database().query<bool>(DB_TermIsNotRider))
         {
-        TermSpecAmt            = doubleize(b->DeathBfts_->supplamt());
+        TermSpecAmt            = dblize(b->DeathBfts_->supplamt());
         if(!each_equal(TermSpecAmt, 0.0))
             {
             HasSupplSpecAmt    = true;
@@ -736,9 +736,9 @@ void LedgerInvariant::ReInit(BasicValues const* b)
         {
         TermSpecAmt            .assign(Length, 0.0);
         }
-    SpecAmt                    = doubleize(b->DeathBfts_->specamt());
+    SpecAmt                    = dblize(b->DeathBfts_->specamt());
 
-    InitBaseSpecAmt            = d(b->DeathBfts_->specamt()[0]);
+    InitBaseSpecAmt            = dblize(b->DeathBfts_->specamt()[0]);
     InitTermSpecAmt            = TermSpecAmt[0];
 
     IsMec                      = false;
diff --git a/ledger_variant_init.cpp b/ledger_variant_init.cpp
index 55bc3ab..080dae4 100644
--- a/ledger_variant_init.cpp
+++ b/ledger_variant_init.cpp
@@ -112,7 +112,7 @@ void LedgerVariant::Init
         ;
 
     InitTgtPremHiLoadRate = 
bv.Loads_->target_premium_load_maximum_premium_tax()[bv.yare_input_.InforceYear];
-    InitMlyPolFee         = d(bv.Loads_->monthly_policy_fee(GenBasis_)         
   [bv.yare_input_.InforceYear]);
+    InitMlyPolFee         = dblize(bv.Loads_->monthly_policy_fee(GenBasis_)    
        [bv.yare_input_.InforceYear]);
 
     FullyInitialized = true;
 }
diff --git a/loads.cpp b/loads.cpp
index 0fa5135..021de45 100644
--- a/loads.cpp
+++ b/loads.cpp
@@ -56,8 +56,8 @@ void assign_midpoint
     ,round_to<double>      const& round_minutiae
     )
 {
-    std::vector<double> const v0 = doubleize(in_0);
-    std::vector<double> const v1 = doubleize(in_1);
+    std::vector<double> const v0 = dblize(in_0);
+    std::vector<double> const v1 = dblize(in_1);
     std::vector<double>       z;
     ::assign_midpoint(z, v0, v1);
     out = round_minutiae.c(z);
diff --git a/round_to_test.cpp b/round_to_test.cpp
index a21f4be..9813dfc 100644
--- a/round_to_test.cpp
+++ b/round_to_test.cpp
@@ -579,7 +579,7 @@ void round_to_test::test_fundamentals()
 
     // Test rounding double to currency.
     currency c = round0.c(1.61803398875);
-    BOOST_TEST((1.62 - d(c)) < 1e-14);
+    BOOST_TEST((1.62 - dblize(c)) < 1e-14);
     BOOST_TEST_EQUAL(162, c.cents());
 //  c *= 0.61803398875;
 //  BOOST_TEST_EQUAL(1, c);
diff --git a/solve.cpp b/solve.cpp
index 5be0d24..124d906 100644
--- a/solve.cpp
+++ b/solve.cpp
@@ -162,7 +162,7 @@ inline static double SolveSpecAmt(double CandidateValue)
 {
 // IHS !! Change surrchg when SA changes?
     That->SolveSetSpecAmt(round_to_cents.c(CandidateValue), ThatSolveBegYear, 
ThatSolveEndYear);
-    return only_set_values ? 0.0 : d(SolveTest());
+    return only_set_values ? 0.0 : dblize(SolveTest());
 }
 
 //============================================================================
@@ -170,7 +170,7 @@ inline static double SolvePrem(double CandidateValue)
 //inline static double SolvePrem(currency CandidateValue)
 {
     That->SolveSetPmts(round_to_cents.c(CandidateValue), ThatSolveBegYear, 
ThatSolveEndYear);
-    return only_set_values ? 0.0 : d(SolveTest());
+    return only_set_values ? 0.0 : dblize(SolveTest());
 }
 
 //============================================================================
@@ -178,7 +178,7 @@ inline static double SolveLoan(double CandidateValue)
 //inline static double SolveLoan(currency CandidateValue)
 {
     That->SolveSetLoans(round_to_cents.c(CandidateValue), ThatSolveBegYear, 
ThatSolveEndYear);
-    return only_set_values ? 0.0 : d(SolveTest());
+    return only_set_values ? 0.0 : dblize(SolveTest());
 }
 
 //============================================================================
@@ -186,7 +186,7 @@ inline static double SolveWD(double CandidateValue)
 //inline static double SolveWD(currency CandidateValue)
 {
     That->SolveSetWDs(round_to_cents.c(CandidateValue), ThatSolveBegYear, 
ThatSolveEndYear);
-    return only_set_values ? 0.0 : d(SolveTest());
+    return only_set_values ? 0.0 : dblize(SolveTest());
 }
 
 //============================================================================
@@ -290,7 +290,7 @@ currency AccountValue::Solve()
             LowerBound = 0.0;
             // If solved premium exceeds specified amount, there's a problem.
             // IHS !! Better to use the maximum SA, not the first SA?
-            UpperBound = d(DeathBfts_->specamt()[0]);
+            UpperBound = dblize(DeathBfts_->specamt()[0]);
             Decimals   = 2;
             SolveFn    = SolvePrem;
             }
@@ -360,6 +360,6 @@ currency AccountValue::Solve()
     only_set_values = !Solving;
     currency const solution_cents = round_to_cents.c(Solution.first);
 
-    SolveFn(d(solution_cents));
+    SolveFn(dblize(solution_cents));
     return solution_cents;
 }



reply via email to

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