[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [lmi] valyuta/005 133d646: Rename two free functions,
Greg Chicares <=