[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] valyuta/002 540c4f3 11/65: currency(0.0)
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] valyuta/002 540c4f3 11/65: currency(0.0) |
Date: |
Wed, 16 Sep 2020 16:55:13 -0400 (EDT) |
branch: valyuta/002
commit 540c4f385ff7558a9329c62b5b929be1203bb0d2
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
currency(0.0)
---
accountvalue.cpp | 14 ++++++------
group_values.cpp | 2 +-
ihs_acctval.cpp | 30 ++++++++++++-------------
ihs_avmly.cpp | 68 ++++++++++++++++++++++++++++----------------------------
ihs_avsolve.cpp | 6 ++---
ihs_avstrtgy.cpp | 10 ++++-----
ihs_basicval.cpp | 2 +-
solve.cpp | 4 ++--
8 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/accountvalue.cpp b/accountvalue.cpp
index d457372..d39b21f 100644
--- a/accountvalue.cpp
+++ b/accountvalue.cpp
@@ -184,7 +184,7 @@ currency AccountValue::RunAllApplicableBases()
,mce_sep_full
);
- currency z = currency(0);
+ currency z = currency(0.0);
if(Solving)
{
z = Solve();
@@ -331,8 +331,8 @@ void AccountValue::DoYear
YearsCorridorFactor = BasicValues::GetCorridorFactor()[Year];
- GrossPmts .assign(12, currency(0));
- NetPmts .assign(12, currency(0));
+ GrossPmts .assign(12, currency(0.0));
+ NetPmts .assign(12, currency(0.0));
// IHS !! Strategy here?
@@ -441,7 +441,7 @@ inline int AccountValue::MonthsToNextModalPmtDate() const
// Set specamt according to selected strategy, in every year.
void AccountValue::PerformSpecAmtStrategy()
{
- currency SA = currency(0);
+ currency SA = currency(0.0);
switch(yare_input_.SpecifiedAmountStrategy[0])
{
case mce_sa_input_scalar:
@@ -766,7 +766,7 @@ void AccountValue::TxSetDeathBft()
// Option 2: specamt plus AV, or corridor times AV if greater.
// Negative AV doesn't decrease death benefit.
deathbft = std::max
- (ActualSpecAmt + std::max(currency(0), AV)
+ (ActualSpecAmt + std::max(currency(0.0), AV)
,corr
);
break;
@@ -988,7 +988,7 @@ void AccountValue::TxTakeLoan()
double IntAdj = std::pow((1.0 + YearsRegLnIntDueRate), 12 - Month);
IntAdj = (IntAdj - 1.0) / IntAdj;
MaxLoan *= 1.0 - IntAdj;
- MaxLoan = std::max(currency(0), MaxLoan);
+ MaxLoan = std::max(currency(0.0), MaxLoan);
MaxLoan = round_loan()(MaxLoan);
// IHS !! Preferred loan calculations would go here: implemented in lmi.
@@ -1066,7 +1066,7 @@ double AccountValue::GetProjectedCoiChargeInforce() const
double AccountValue::GetSepAcctAssetsInforce() const
{return 0.0;}
currency AccountValue::IncrementBOM(int, int, double)
- {return currency(0);}
+ {return currency(0.0);}
void AccountValue::IncrementEOM(int, int, currency, currency)
{return;}
void AccountValue::IncrementEOY(int)
diff --git a/group_values.cpp b/group_values.cpp
index e41aca9..81987cb 100644
--- a/group_values.cpp
+++ b/group_values.cpp
@@ -419,7 +419,7 @@ census_run_result run_census_in_parallel::operator()
;
for(int month = inforce_month; month < 12; ++month)
{
- currency assets = currency(0);
+ currency assets = currency(0.0);
// Get total case assets prior to interest crediting because
// those assets may determine the M&E charge.
diff --git a/ihs_acctval.cpp b/ihs_acctval.cpp
index a737fff..e4cefce 100644
--- a/ihs_acctval.cpp
+++ b/ihs_acctval.cpp
@@ -240,7 +240,7 @@ currency AccountValue::RunOneBasis(mcenum_run_basis a_Basis)
;
}
- currency z(0);
+ currency z(0.0);
if(Solving)
{
// Apparently this should never be done because Solve() is called in
@@ -265,7 +265,7 @@ currency AccountValue::RunOneBasis(mcenum_run_basis a_Basis)
//
currency AccountValue::RunAllApplicableBases()
{
- currency z(0);
+ currency z(0.0);
// TODO ?? Normally, running on the current basis determines the
// overriding values for all components of outlay--e.g., premiums,
@@ -401,7 +401,7 @@ void AccountValue::InitializeLife(mcenum_run_basis a_Basis)
// TODO ?? TAXATION !! Shouldn't we increase initial SA if contract in
corridor at issue?
OldDB = OldSA;
- SurrChg_.assign(BasicValues::GetLength(), currency(0));
+ SurrChg_.assign(BasicValues::GetLength(), currency(0.0));
// TAXATION !! Input::InforceAnnualTargetPremium should be used here.
double annual_target_premium = GetModalTgtPrem
@@ -578,15 +578,15 @@ void AccountValue::SetInitialValues()
CumPmts = InforceCumPmts;
TaxBasis = InforceTaxBasis;
- YearlyTaxBasis.assign(BasicValues::GetLength(), currency(0));
+ YearlyTaxBasis.assign(BasicValues::GetLength(), currency(0.0));
MlyNoLapsePrem = 0.0;
CumNoLapsePrem = InforceCumNoLapsePrem;
// Initialize all elements of this vector to 'false'. Then, when
// the no-lapse criteria fail to be met, future values are right.
YearlyNoLapseActive.assign(BasicValues::GetLength(), false);
- loan_ullage_ .assign(BasicValues::GetLength(), currency(0));
- withdrawal_ullage_ .assign(BasicValues::GetLength(), currency(0));
+ loan_ullage_ .assign(BasicValues::GetLength(), currency(0.0));
+ withdrawal_ullage_ .assign(BasicValues::GetLength(), currency(0.0));
NoLapseActive = true;
if(NoLapseDboLvlOnly && mce_option1 != DeathBfts_->dbopt()[0])
{
@@ -690,7 +690,7 @@ currency AccountValue::IncrementBOM
{
// Return value is total assets. After the policy has lapsed or
// matured, there are no assets.
- return currency(0);
+ return currency(0.0);
}
// Paranoid check.
@@ -762,8 +762,8 @@ void AccountValue::IncrementEOM
// Save arguments, constraining their values to be nonnegative,
// for calculating banded and tiered quantities.
- AssetsPostBom = std::max(currency(0), assets_post_bom );
- CumPmtsPostBom = std::max(currency(0), cum_pmts_post_bom);
+ AssetsPostBom = std::max(currency(0.0), assets_post_bom );
+ CumPmtsPostBom = std::max(currency(0.0), cum_pmts_post_bom);
DoMonthCR();
}
@@ -845,10 +845,10 @@ void AccountValue::InitializeYear()
// value depends on the maximum loan, so it cannot be known here.
ActualLoan = 0.0;
- GrossPmts .assign(12, currency(0));
- EeGrossPmts .assign(12, currency(0));
- ErGrossPmts .assign(12, currency(0));
- NetPmts .assign(12, currency(0));
+ GrossPmts .assign(12, currency(0.0));
+ EeGrossPmts .assign(12, currency(0.0));
+ ErGrossPmts .assign(12, currency(0.0));
+ NetPmts .assign(12, currency(0.0));
InitializeSpecAmt();
}
@@ -1023,7 +1023,7 @@ currency AccountValue::CSVBoost() const
+ yare_input_.CashValueEnhancementRate[Year]
;
LMI_ASSERT(0.0 <= z);
- return currency(z * std::max(currency(0), TotalAccountValue()));
+ return currency(z * std::max(currency(0.0), TotalAccountValue()));
}
//============================================================================
@@ -1180,7 +1180,7 @@ void AccountValue::FinalizeYear()
if(!Solving)
{
- csv_net = std::max(csv_net, currency(0));
+ csv_net = std::max(csv_net, currency(0.0));
}
if(Solving)
diff --git a/ihs_avmly.cpp b/ihs_avmly.cpp
index 734ffa2..f03dd8c 100644
--- a/ihs_avmly.cpp
+++ b/ihs_avmly.cpp
@@ -196,7 +196,7 @@ void AccountValue::DoMonthDR()
);
}
- currency gross_1035 = currency(0);
+ currency gross_1035 = currency(0.0);
if(0 == Year && 0 == Month)
{
gross_1035 = External1035Amount + Internal1035Amount;
@@ -292,7 +292,7 @@ void AccountValue::process_payment(currency payment)
LMI_ASSERT(0.0 <= EeGrossPmts[Month]);
LMI_ASSERT(0.0 <= ErGrossPmts[Month]);
- currency gross_1035 = currency(0);
+ currency gross_1035 = currency(0.0);
if(0 == Year && 0 == Month)
{
gross_1035 = External1035Amount + Internal1035Amount;
@@ -578,7 +578,7 @@ void AccountValue::TxExch1035()
// TODO ?? Assume for now that all 1035 exchanges represent ee payments.
EeGrossPmts[Month] = GrossPmts[Month];
- currency amount_exempt_from_premium_tax = currency(0);
+ currency amount_exempt_from_premium_tax = currency(0.0);
if(WaivePmTxInt1035)
{
amount_exempt_from_premium_tax = Internal1035Amount;
@@ -610,7 +610,7 @@ void AccountValue::TxExch1035()
if(HoneymoonActive)
{
- HoneymoonValue += std::max(currency(0), GrossPmts[Month]);
+ HoneymoonValue += std::max(currency(0.0), GrossPmts[Month]);
}
CumPmts += GrossPmts[Month];
@@ -822,7 +822,7 @@ void AccountValue::ChangeSupplAmtBy(currency delta)
TermSpecAmt = std::max
(TermSpecAmt
- ,currency(0) // No minimum other than zero is defined.
+ ,currency(0.0) // No minimum other than zero is defined.
);
TermSpecAmt = round_specamt()(TermSpecAmt);
// At least for now, there is no effect on surrender charges.
@@ -913,11 +913,11 @@ void AccountValue::TxOptionChange()
{
if(mce_option2 == old_option)
{
- ChangeSpecAmtBy(std::max(currency(0),
TotalAccountValue()));
+ ChangeSpecAmtBy(std::max(currency(0.0),
TotalAccountValue()));
}
else if(mce_rop == old_option)
{
- ChangeSpecAmtBy(std::max(currency(0), CumPmts));
+ ChangeSpecAmtBy(std::max(currency(0.0), CumPmts));
}
else if(mce_mdb == old_option)
{
@@ -944,7 +944,7 @@ void AccountValue::TxOptionChange()
case mce_option2:
if(OptChgCanDecrSA)
{
- ChangeSpecAmtBy(currency(-std::max(currency(0),
TotalAccountValue())));
+ ChangeSpecAmtBy(currency(-std::max(currency(0.0),
TotalAccountValue())));
}
else
{
@@ -954,7 +954,7 @@ void AccountValue::TxOptionChange()
case mce_rop:
if(OptChgCanDecrSA)
{
- ChangeSpecAmtBy(currency(-std::max(currency(0), CumPmts)));
+ ChangeSpecAmtBy(currency(-std::max(currency(0.0), CumPmts)));
}
else
{
@@ -988,7 +988,7 @@ void AccountValue::TxSpecAmtChange()
// > post-1035 exchange calculation of the seven pay will have a death benefit
// > amount to base its calculations on.
#if 1
- ChangeSpecAmtBy(currency(0));
+ ChangeSpecAmtBy(currency(0.0));
#else // 0
// TODO ?? Changing specamt by zero is absurd. The following
// commented-out alternative seems to do the same thing as
@@ -1228,7 +1228,7 @@ void AccountValue::TxAscertainDesiredPayment()
;
LMI_ASSERT(materially_equal(GrossPmts[Month], EeGrossPmts[Month] +
ErGrossPmts[Month]));
- currency eepmt = currency(0);
+ currency eepmt = currency(0.0);
if(ee_pay_this_month)
{
eepmt = PerformEePmtStrategy();
@@ -1243,7 +1243,7 @@ void AccountValue::TxAscertainDesiredPayment()
GrossPmts [Month] += eepmt;
}
- currency erpmt = currency(0);
+ currency erpmt = currency(0.0);
if(er_pay_this_month)
{
erpmt = PerformErPmtStrategy();
@@ -1324,7 +1324,7 @@ void AccountValue::TxLimitPayment(double a_maxpmt)
if(mce_reduce_prem == yare_input_.AvoidMecMethod &&
!Irc7702A_->IsMecAlready())
{
- currency gross_1035 = currency(0);
+ currency gross_1035 = currency(0.0);
if(0 == Year && 0 == Month)
{
gross_1035 = External1035Amount + Internal1035Amount;
@@ -1428,7 +1428,7 @@ void AccountValue::TxAcceptPayment(currency a_pmt)
LMI_ASSERT(0.0 <= a_pmt);
// Internal 1035 exchanges may be exempt from premium tax; they're
// handled elsewhere, so here the exempt amount is always zero.
- currency actual_load = GetPremLoad(a_pmt, currency(0));
+ currency actual_load = GetPremLoad(a_pmt, currency(0.0));
currency net_pmt = a_pmt - actual_load;
LMI_ASSERT(0.0 <= net_pmt);
NetPmts[Month] += net_pmt;
@@ -1441,12 +1441,12 @@ void AccountValue::TxAcceptPayment(currency a_pmt)
process_payment(net_pmt);
- Dcv += std::max(currency(0), net_pmt);
+ Dcv += std::max(currency(0.0), net_pmt);
LMI_ASSERT(0.0 <= Dcv);
if(HoneymoonActive)
{
- HoneymoonValue += std::max(currency(0), a_pmt);
+ HoneymoonValue += std::max(currency(0.0), a_pmt);
}
CumPmts += a_pmt;
@@ -1682,7 +1682,7 @@ void AccountValue::TxSetDeathBft()
case mce_option2:
{
// Negative AV doesn't decrease death benefit.
- DBIgnoringCorr = ActualSpecAmt + std::max(currency(0),
TotalAccountValue());
+ DBIgnoringCorr = ActualSpecAmt + std::max(currency(0.0),
TotalAccountValue());
DB7702A = ActualSpecAmt;
}
break;
@@ -1691,8 +1691,8 @@ void AccountValue::TxSetDeathBft()
// SA + sum of premiums less withdrawals, but not < SA;
// i.e., ignore 'CumPmts' if it is less than zero, as it
// easily can be, e.g., if WDs are not limited to basis.
- DBIgnoringCorr = ActualSpecAmt + std::max(currency(0), CumPmts);
- DB7702A = ActualSpecAmt + std::max(currency(0), CumPmts);
+ DBIgnoringCorr = ActualSpecAmt + std::max(currency(0.0), CumPmts);
+ DB7702A = ActualSpecAmt + std::max(currency(0.0), CumPmts);
}
break;
case mce_mdb:
@@ -1711,7 +1711,7 @@ void AccountValue::TxSetDeathBft()
// surrender charge must be subtracted, increasing the account value.
currency cash_value_for_corridor =
TotalAccountValue()
- - std::min(currency(0), SurrChg())
+ - std::min(currency(0.0), SurrChg())
+ GetRefundableSalesLoad()
// + std::max(0.0, ExpRatReserve) // This would be added if it existed.
;
@@ -1723,7 +1723,7 @@ void AccountValue::TxSetDeathBft()
DBReflectingCorr = std::max
(DBIgnoringCorr
- ,currency(round_death_benefit()(YearsCorridorFactor *
std::max(currency(0), cash_value_for_corridor)))
+ ,currency(round_death_benefit()(YearsCorridorFactor *
std::max(currency(0.0), cash_value_for_corridor)))
);
DBReflectingCorr = round_death_benefit()(DBReflectingCorr);
LMI_ASSERT(0.0 <= DBReflectingCorr);
@@ -1737,7 +1737,7 @@ void AccountValue::TxSetDeathBft()
, (
YearsCorridorFactor
* ( Dcv
- - std::min(currency(0), SurrChg())
+ - std::min(currency(0.0), SurrChg())
+ GetRefundableSalesLoad()
// + std::max(0.0, ExpRatReserve) // This would be added if
it existed.
)
@@ -1772,7 +1772,7 @@ void AccountValue::TxSetTermAmt()
return;
}
- TermDB = std::max(currency(0), TermSpecAmt + DBIgnoringCorr -
DBReflectingCorr);
+ TermDB = std::max(currency(0.0), TermSpecAmt + DBIgnoringCorr -
DBReflectingCorr);
TermDB = round_death_benefit()(TermDB);
}
@@ -2379,13 +2379,13 @@ void AccountValue::SetMaxWD()
+ (AVRegLn + AVPrfLn)
- (RegLnBal + PrfLnBal)
- anticipated_deduction(MaxWDDed_)
- - std::max(currency(0), SurrChg())
+ - std::max(currency(0.0), SurrChg())
;
if(MaxWD < MinWD)
{
- MaxWD = currency(0);
+ MaxWD = currency(0.0);
}
- MaxWD = std::max(currency(0), MaxWD);
+ MaxWD = std::max(currency(0.0), MaxWD);
}
/// Take a withdrawal.
@@ -2425,7 +2425,7 @@ void AccountValue::TxTakeWD()
if(Solving)
{
- withdrawal_ullage_[Year] = std::max(currency(0), RequestedWD - MaxWD);
+ withdrawal_ullage_[Year] = std::max(currency(0.0), RequestedWD -
MaxWD);
}
if(Solving || mce_run_gen_curr_sep_full == RunBasis_)
@@ -2599,7 +2599,7 @@ void AccountValue::TxTakeWD()
// Do you really want 'face' here rather than specamt? --Yes
if(WdDecrSpecAmtDboLvl)
{
- ChangeSpecAmtBy(currency(0) - GrossWD);
+ ChangeSpecAmtBy(currency(0.0) - GrossWD);
// Min AV after WD not directly implemented.
// If WD causes AV < min AV, do we:
// reduce the WD?
@@ -2619,7 +2619,7 @@ void AccountValue::TxTakeWD()
{
if(WdDecrSpecAmtDboInc)
{
- ChangeSpecAmtBy(currency(0) - GrossWD);
+ ChangeSpecAmtBy(currency(0.0) - GrossWD);
}
else
{
@@ -2631,7 +2631,7 @@ void AccountValue::TxTakeWD()
{
if(WdDecrSpecAmtDboRop)
{
- ChangeSpecAmtBy(currency(0) - GrossWD);
+ ChangeSpecAmtBy(currency(0.0) - GrossWD);
}
else
{
@@ -2681,7 +2681,7 @@ void AccountValue::SetMaxLoan()
(AVGenAcct + AVSepAcct) * MaxLoanAVMult
+ (AVRegLn + AVPrfLn)
- anticipated_deduction(MaxLoanDed_)
- - std::max(currency(0), SurrChg())
+ - std::max(currency(0.0), SurrChg())
;
// Illustrations generally permit loans only on anniversary.
@@ -2767,12 +2767,12 @@ void AccountValue::TxTakeLoan()
if(Solving)
{
ActualLoan = RequestedLoan;
- loan_ullage_[Year] = std::max(currency(0), RequestedLoan -
max_loan_increment);
+ loan_ullage_[Year] = std::max(currency(0.0), RequestedLoan -
max_loan_increment);
}
else
{
ActualLoan = std::min(max_loan_increment, RequestedLoan);
- ActualLoan = std::max(ActualLoan, currency(0));
+ ActualLoan = std::max(ActualLoan, currency(0.0));
// TODO ?? Shouldn't this happen in FinalizeMonth()?
InvariantValues().NewCashLoan[Year] = ActualLoan;
}
@@ -2852,7 +2852,7 @@ void AccountValue::TxTestLapse()
;
if(!LapseIgnoresSurrChg)
{
- lapse_test_csv -= std::max(currency(0), SurrChg());
+ lapse_test_csv -= std::max(currency(0.0), SurrChg());
}
lapse_test_csv = std::max(lapse_test_csv, HoneymoonValue);
diff --git a/ihs_avsolve.cpp b/ihs_avsolve.cpp
index 7631208..b0ce5b4 100644
--- a/ihs_avsolve.cpp
+++ b/ihs_avsolve.cpp
@@ -177,7 +177,7 @@ currency AccountValue::SolveTest(currency a_CandidateValue)
,0
);
LMI_ASSERT(0 <= no_lapse_dur);
- currency most_negative_csv(0);
+ currency most_negative_csv(0.0);
if(no_lapse_dur < SolveTargetDuration_)
{
most_negative_csv = *std::min_element
@@ -282,7 +282,7 @@ currency AccountValue::SolveGuarPremium()
// Store original er premiums for later restoration.
std::vector<currency> stored = Outlay_->er_modal_premiums();
// Zero out er premiums and solve for ee premiums only.
- Outlay_->set_er_modal_premiums(currency(0), 0, BasicValues::GetLength());
+ Outlay_->set_er_modal_premiums(currency(0.0), 0, BasicValues::GetLength());
bool temp_solving = Solving;
Solving = true;
@@ -294,7 +294,7 @@ currency AccountValue::SolveGuarPremium()
,0
,BasicValues::GetLength()
,mce_solve_for_endt
- ,currency(0)
+ ,currency(0.0)
,BasicValues::GetLength()
,mce_gen_guar
,mce_sep_full
diff --git a/ihs_avstrtgy.cpp b/ihs_avstrtgy.cpp
index 27f2aa9..4fc6cb6 100644
--- a/ihs_avstrtgy.cpp
+++ b/ihs_avstrtgy.cpp
@@ -174,7 +174,7 @@ void AccountValue::PerformSupplAmtStrategy()
{
for(int j = 0; j < BasicValues::Length; ++j)
{
- currency m = currency(0); // No minimum other than zero is defined.
+ currency m = currency(0.0); // No minimum other than zero is defined.
currency explicit_value = DeathBfts_->supplamt()[j];
mcenum_sa_strategy strategy =
yare_input_.SupplementalAmountStrategy[j];
currency z = CalculateSpecAmtFromStrategy(j, 0, explicit_value,
strategy);
@@ -273,22 +273,22 @@ currency AccountValue::DoPerformPmtStrategy
}
case mce_pmt_mep:
{
- currency sa = specamt_for_7702A(0);
+ currency sa = specamt_for_7702A(0.0);
return GetModalPremMaxNonMec(0, a_InitialMode, sa);
}
case mce_pmt_glp:
{
- currency sa = specamt_for_7702(0);
+ currency sa = specamt_for_7702(0.0);
return GetModalPremGLP(0, a_InitialMode, sa, sa);
}
case mce_pmt_gsp:
{
- currency sa = specamt_for_7702(0);
+ currency sa = specamt_for_7702(0.0);
return GetModalPremGSP(0, a_InitialMode, sa, sa);
}
case mce_pmt_corridor:
{
- currency sa = specamt_for_7702(0);
+ currency sa = specamt_for_7702(0.0);
return GetModalPremCorridor(0, a_InitialMode, sa);
}
case mce_pmt_table:
diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index 70bdbf6..f1d040e 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -1614,7 +1614,7 @@ currency BasicValues::GetModalSpecAmtMlyDed(currency,
mcenum_mode) const
<< "No maximum specified amount is defined for this product."
<< LMI_FLUSH
;
- return currency(0);
+ return currency(0.0);
}
/// 'Unusual' banding is one particular approach we needed to model.
diff --git a/solve.cpp b/solve.cpp
index ec601da..df49fcb 100644
--- a/solve.cpp
+++ b/solve.cpp
@@ -79,7 +79,7 @@ currency SolveTest()
// CSV at target duration
// lowest negative CSV through target duration
// amount of loan in excess of maximum loan through target duration
- currency Negative(0);
+ currency Negative(0.0);
// IHS !! Start counting only at end of no-lapse period--lmi does that
already.
for(int j = 0; j < ThatSolveTgtYear; ++j)
@@ -98,7 +98,7 @@ currency SolveTest()
z = std::min(z, Negative);
// IHS !! If SolveTgtYr within no-lapse period...see lmi.
- currency y(0);
+ currency y(0.0);
switch(ThatSolveTarget)
{
case mce_solve_for_endt:
- [lmi-commits] [lmi] branch valyuta/002 created (now 9433c8e), Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 ef7fe2f 01/65: Change type of currency variables to 'currency' in headers, Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 540c4f3 11/65: currency(0.0),
Greg Chicares <=
- [lmi-commits] [lmi] valyuta/002 e260d89 14/65: avoid operator double(), Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 deba50c 25/65: assert rounding to currency makes sense, Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 7dc9331 32/65: round.c(), Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 915d111 26/65: avoid operator double(), Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 d837132 38/65: Overload currency ctor, Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 5d2e8ec 49/65: prefer to avoid operator=(double)?, Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 015253b 10/65: add an alternative, Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 346c95b 05/65: improve, Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 c4e0809 24/65: use round_to<>.c(), Greg Chicares, 2020/09/16
- [lmi-commits] [lmi] valyuta/002 360060c 21/65: suppress failing assertions, Greg Chicares, 2020/09/16