[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master e653634 08/13: Regularize whitespace
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master e653634 08/13: Regularize whitespace |
Date: |
Tue, 14 Apr 2020 12:07:01 -0400 (EDT) |
branch: master
commit e653634087d7083f7eaaa828bdd4499ebbc46c39
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>
Regularize whitespace
---
ledger_invariant.cpp | 256 ++++++++++-----------
ledger_invariant.hpp | 522 ++++++++++++++++++++---------------------
ledger_invariant_init.cpp | 576 +++++++++++++++++++++++-----------------------
ledger_variant.hpp | 16 +-
4 files changed, 685 insertions(+), 685 deletions(-)
diff --git a/ledger_invariant.cpp b/ledger_invariant.cpp
index 2746076..de0e048 100644
--- a/ledger_invariant.cpp
+++ b/ledger_invariant.cpp
@@ -77,7 +77,7 @@ LedgerInvariant::~LedgerInvariant()
//============================================================================
void LedgerInvariant::Alloc(int len)
{
- Length = len;
+ Length = len;
// BOY vectors.
BegYearVectors ["TgtPrem" ] = &TgtPrem ;
@@ -405,9 +405,9 @@ void LedgerInvariant::Alloc(int len)
// be part of the maps populated above. We can reserve space for
// such vectors, though, if we know what their lengths will be.
- DBOpt .reserve(Length);
- EeMode .reserve(Length);
- ErMode .reserve(Length);
+ DBOpt .reserve(Length);
+ EeMode .reserve(Length);
+ ErMode .reserve(Length);
// Vectors of length other than 'Length' can't be part of the maps
// populated above, but we can reserve space for them here if we
@@ -420,7 +420,7 @@ void LedgerInvariant::Alloc(int len)
// have zeros, so that adding each cell to it produces the
// correct total. For each actual non-composite cell, it's
// initialized correctly by the account-value class.
- InforceLives .assign(1 + Length, 0.0);
+ InforceLives .assign(1 + Length, 0.0);
// Data excluded from the maps above must be copied explicitly in
// Copy(), which is called by the copy ctor and assignment operator.
@@ -471,42 +471,42 @@ void LedgerInvariant::Init()
// Zero-initialize elements of AllVectors and AllScalars.
LedgerBase::Initialize(GetLength());
- DBOpt .assign(Length, mce_dbopt(mce_option1));
- EeMode .assign(Length, mce_mode(mce_annual));
- ErMode .assign(Length, mce_mode(mce_annual));
+ DBOpt .assign(Length, mce_dbopt(mce_option1));
+ EeMode .assign(Length, mce_mode(mce_annual));
+ ErMode .assign(Length, mce_mode(mce_annual));
// Nonscalable scalars.
- MaleProportion = 0;
- NonsmokerProportion = 0;
- Age = 0;
- EndtAge = 100;
- NoLongerIssued = false;
- AllowGroupQuote = true;
- SurviveToExpectancy = true;
- SurviveToYear = true;
- SurviveToAge = true;
- SurvivalMaxYear = 0;
- SurvivalMaxAge = 0;
- InforceYear = Length;
- InforceMonth = 11;
- MecYear = Length;
- MecMonth = 11;
- SpouseIssueAge = 100;
- IsSinglePremium = oe_flexible_premium;
- CurrentCoiMultiplier= 0;
- NoLapseAlwaysActive = false;
- NoLapseMinDur = 100;
- NoLapseMinAge = 100;
- Has1035ExchCharge = false;
- WriteTsvFile = false;
- SupplementalReport = true;
+ MaleProportion = 0;
+ NonsmokerProportion = 0;
+ Age = 0;
+ EndtAge = 100;
+ NoLongerIssued = false;
+ AllowGroupQuote = true;
+ SurviveToExpectancy = true;
+ SurviveToYear = true;
+ SurviveToAge = true;
+ SurvivalMaxYear = 0;
+ SurvivalMaxAge = 0;
+ InforceYear = Length;
+ InforceMonth = 11;
+ MecYear = Length;
+ MecMonth = 11;
+ SpouseIssueAge = 100;
+ IsSinglePremium = oe_flexible_premium;
+ CurrentCoiMultiplier = 0;
+ NoLapseAlwaysActive = false;
+ NoLapseMinDur = 100;
+ NoLapseMinAge = 100;
+ Has1035ExchCharge = false;
+ WriteTsvFile = false;
+ SupplementalReport = true;
// Private internals.
- irr_precision_ = 0;
- irr_initialized_ = false;
- FullyInitialized = false;
+ irr_precision_ = 0;
+ irr_initialized_ = false;
+ FullyInitialized = false;
}
// Notes on effective date.
@@ -602,7 +602,7 @@ LedgerInvariant& LedgerInvariant::PlusEq(LedgerInvariant
const& a_Addend)
// discontinuity at the older life's maturity age).
for(int j = 0; j < a_Addend.Length; ++j)
{
- CorridorFactor [j] = 0.0;
+ CorridorFactor [j] = 0.0;
}
irr_precision_ = a_Addend.irr_precision_;
@@ -618,106 +618,106 @@ LedgerInvariant&
LedgerInvariant::PlusEq(LedgerInvariant const& a_Addend)
if(0.0 == N[j])
break;
// Don't multiply InforceLives by N--it *is* N.
- InforceLives [j] += a_Addend.InforceLives [j];
+ InforceLives [j] += a_Addend.InforceLives [j];
}
// InforceLives is one longer than the other vectors.
- InforceLives [Max] += a_Addend.InforceLives [Max];
+ InforceLives [Max] += a_Addend.InforceLives [Max];
- FundNumbers = a_Addend.FundNumbers;
- FundNames = a_Addend.FundNames;
- FundAllocs = a_Addend.FundAllocs;
- FundAllocations = a_Addend.FundAllocations;
+ FundNumbers = a_Addend.FundNumbers;
+ FundNames = a_Addend.FundNames;
+ FundAllocs = a_Addend.FundAllocs;
+ FundAllocations = a_Addend.FundAllocations;
// Nonscalable scalars.
- MaleProportion = std::max(MaleProportion ,
a_Addend.MaleProportion);
- NonsmokerProportion = std::max(NonsmokerProportion,
a_Addend.NonsmokerProportion);
- GuarMaxMandE = std::max(GuarMaxMandE ,
a_Addend.GuarMaxMandE);
- InitDacTaxRate = std::max(InitDacTaxRate ,
a_Addend.InitDacTaxRate);
- InitPremTaxRate = std::max(InitPremTaxRate ,
a_Addend.InitPremTaxRate);
- GenderDistinct = a_Addend.GenderDistinct;
- GenderBlended = a_Addend.GenderBlended;
- SmokerDistinct = a_Addend.SmokerDistinct;
- SmokerBlended = a_Addend.SmokerBlended;
- SubstdTable = a_Addend.SubstdTable;
- Age = std::min(Age, a_Addend.Age);
- RetAge = std::min(RetAge, a_Addend.RetAge);
- EndtAge = std::max(EndtAge, a_Addend.EndtAge);
- GroupIndivSelection = GroupIndivSelection ||
a_Addend.GroupIndivSelection;
- NoLongerIssued = NoLongerIssued ||
a_Addend.NoLongerIssued;
- AllowGroupQuote = AllowGroupQuote &&
a_Addend.AllowGroupQuote;
- TxCallsGuarUwSubstd = TxCallsGuarUwSubstd ||
a_Addend.TxCallsGuarUwSubstd;
- AllowExperienceRating = AllowExperienceRating ||
a_Addend.AllowExperienceRating;
- UseExperienceRating = UseExperienceRating ||
a_Addend.UseExperienceRating;
- UsePartialMort = a_Addend.UsePartialMort;
-
- SurviveToExpectancy = SurviveToExpectancy &&
a_Addend.SurviveToExpectancy;
- SurviveToYear = SurviveToYear &&
a_Addend.SurviveToYear;
- SurviveToAge = SurviveToAge &&
a_Addend.SurviveToAge;
+ MaleProportion = std::max(MaleProportion ,
a_Addend.MaleProportion);
+ NonsmokerProportion = std::max(NonsmokerProportion,
a_Addend.NonsmokerProportion);
+ GuarMaxMandE = std::max(GuarMaxMandE ,
a_Addend.GuarMaxMandE);
+ InitDacTaxRate = std::max(InitDacTaxRate ,
a_Addend.InitDacTaxRate);
+ InitPremTaxRate = std::max(InitPremTaxRate ,
a_Addend.InitPremTaxRate);
+ GenderDistinct = a_Addend.GenderDistinct;
+ GenderBlended = a_Addend.GenderBlended;
+ SmokerDistinct = a_Addend.SmokerDistinct;
+ SmokerBlended = a_Addend.SmokerBlended;
+ SubstdTable = a_Addend.SubstdTable;
+ Age = std::min(Age, a_Addend.Age);
+ RetAge = std::min(RetAge, a_Addend.RetAge);
+ EndtAge = std::max(EndtAge, a_Addend.EndtAge);
+ GroupIndivSelection = GroupIndivSelection ||
a_Addend.GroupIndivSelection;
+ NoLongerIssued = NoLongerIssued ||
a_Addend.NoLongerIssued;
+ AllowGroupQuote = AllowGroupQuote &&
a_Addend.AllowGroupQuote;
+ TxCallsGuarUwSubstd = TxCallsGuarUwSubstd ||
a_Addend.TxCallsGuarUwSubstd;
+ AllowExperienceRating = AllowExperienceRating ||
a_Addend.AllowExperienceRating;
+ UseExperienceRating = UseExperienceRating ||
a_Addend.UseExperienceRating;
+ UsePartialMort = a_Addend.UsePartialMort;
+
+ SurviveToExpectancy = SurviveToExpectancy &&
a_Addend.SurviveToExpectancy;
+ SurviveToYear = SurviveToYear &&
a_Addend.SurviveToYear;
+ SurviveToAge = SurviveToAge &&
a_Addend.SurviveToAge;
LMI_ASSERT(SurviveToExpectancy + SurviveToYear + SurviveToAge <= 1);
- SurvivalMaxYear = std::max(SurvivalMaxYear,
a_Addend.SurvivalMaxYear);
- SurvivalMaxAge = std::max(SurvivalMaxAge ,
a_Addend.SurvivalMaxAge);
+ SurvivalMaxYear = std::max(SurvivalMaxYear,
a_Addend.SurvivalMaxYear);
+ SurvivalMaxAge = std::max(SurvivalMaxAge ,
a_Addend.SurvivalMaxAge);
- AvgFund = a_Addend.AvgFund;
- CustomFund = a_Addend.CustomFund;
- IsMec = a_Addend.IsMec || IsMec;
- InforceIsMec = a_Addend.InforceIsMec || InforceIsMec;
+ AvgFund = a_Addend.AvgFund;
+ CustomFund = a_Addend.CustomFund;
+ IsMec = a_Addend.IsMec || IsMec;
+ InforceIsMec = a_Addend.InforceIsMec || InforceIsMec;
if(InforceYear == a_Addend.InforceYear)
{
- InforceMonth = std::min(InforceMonth,
a_Addend.InforceMonth);
+ InforceMonth = std::min(InforceMonth, a_Addend.InforceMonth);
}
else if(a_Addend.InforceYear < InforceYear)
{
- InforceMonth = a_Addend.InforceMonth;
+ InforceMonth = a_Addend.InforceMonth;
}
- InforceYear = std::min(InforceYear,
a_Addend.InforceYear);
+ InforceYear = std::min(InforceYear, a_Addend.InforceYear);
if(MecYear == a_Addend.MecYear)
{
- MecMonth = std::min(MecMonth, a_Addend.MecMonth);
+ MecMonth = std::min(MecMonth, a_Addend.MecMonth);
}
else if(a_Addend.MecYear < MecYear)
{
- MecMonth = a_Addend.MecMonth;
+ MecMonth = a_Addend.MecMonth;
}
- MecYear = std::min(MecYear, a_Addend.MecYear);
-
- HasWP = HasWP || a_Addend.HasWP
;
- HasADD = HasADD || a_Addend.HasADD
;
- HasTerm = HasTerm || a_Addend.HasTerm
;
- HasSupplSpecAmt = HasSupplSpecAmt ||
a_Addend.HasSupplSpecAmt;
- HasChildRider = HasChildRider ||
a_Addend.HasChildRider ;
- HasSpouseRider = HasSpouseRider ||
a_Addend.HasSpouseRider ;
- SpouseIssueAge = std::min(SpouseIssueAge,
a_Addend.SpouseIssueAge);
- HasHoneymoon = HasHoneymoon || a_Addend.HasHoneymoon ;
- PostHoneymoonSpread = a_Addend.PostHoneymoonSpread ;
- SplitMinPrem = SplitMinPrem || a_Addend.SplitMinPrem ;
- ErNotionallyPaysTerm = ErNotionallyPaysTerm ||
a_Addend.ErNotionallyPaysTerm;
- IsSinglePremium = std::max(a_Addend.IsSinglePremium ,
IsSinglePremium );
- MaxAnnGuarLoanSpread = std::max(a_Addend.MaxAnnGuarLoanSpread ,
MaxAnnGuarLoanSpread );
- MaxAnnCurrLoanDueRate = std::max(a_Addend.MaxAnnCurrLoanDueRate,
MaxAnnCurrLoanDueRate);
+ MecYear = std::min(MecYear, a_Addend.MecYear);
+
+ HasWP = HasWP || a_Addend.HasWP ;
+ HasADD = HasADD || a_Addend.HasADD ;
+ HasTerm = HasTerm || a_Addend.HasTerm ;
+ HasSupplSpecAmt = HasSupplSpecAmt || a_Addend.HasSupplSpecAmt;
+ HasChildRider = HasChildRider || a_Addend.HasChildRider
;
+ HasSpouseRider = HasSpouseRider || a_Addend.HasSpouseRider
;
+ SpouseIssueAge = std::min(SpouseIssueAge,
a_Addend.SpouseIssueAge);
+ HasHoneymoon = HasHoneymoon || a_Addend.HasHoneymoon ;
+ PostHoneymoonSpread = a_Addend.PostHoneymoonSpread ;
+ SplitMinPrem = SplitMinPrem || a_Addend.SplitMinPrem ;
+ ErNotionallyPaysTerm = ErNotionallyPaysTerm ||
a_Addend.ErNotionallyPaysTerm;
+ IsSinglePremium = std::max(a_Addend.IsSinglePremium ,
IsSinglePremium );
+ MaxAnnGuarLoanSpread = std::max(a_Addend.MaxAnnGuarLoanSpread ,
MaxAnnGuarLoanSpread );
+ MaxAnnCurrLoanDueRate = std::max(a_Addend.MaxAnnCurrLoanDueRate,
MaxAnnCurrLoanDueRate);
// Logical OR because IsInforce is a taint that prevents us from
// calculating a meaningful IRR. For one thing, we lack payment
// history. For another, even if we had it, payments probably
// wouldn't be equally spaced, so we'd need a more general irr
// routine.
- IsInforce = IsInforce || a_Addend.IsInforce ;
-
- CurrentCoiMultiplier = std::max(a_Addend.CurrentCoiMultiplier ,
CurrentCoiMultiplier );
- NoLapseAlwaysActive = a_Addend.NoLapseAlwaysActive||
NoLapseAlwaysActive;
- NoLapseMinDur = std::min(a_Addend.NoLapseMinDur,
NoLapseMinDur);
- NoLapseMinAge = std::min(a_Addend.NoLapseMinAge,
NoLapseMinAge);
- Has1035ExchCharge = a_Addend.Has1035ExchCharge ||
Has1035ExchCharge;
- EffDateJdn = a_Addend.EffDateJdn;
- DateOfBirthJdn = a_Addend.DateOfBirthJdn;
- LastCoiReentryDateJdn = a_Addend.LastCoiReentryDateJdn;
- ListBillDateJdn = a_Addend.ListBillDateJdn;
- InforceAsOfDateJdn = a_Addend.InforceAsOfDateJdn;
- GenAcctAllocation = a_Addend.GenAcctAllocation;
- SplitFundAllocation = SplitFundAllocation ||
a_Addend.SplitFundAllocation;
- WriteTsvFile = WriteTsvFile || a_Addend.WriteTsvFile ;
+ IsInforce = IsInforce || a_Addend.IsInforce ;
+
+ CurrentCoiMultiplier = std::max(a_Addend.CurrentCoiMultiplier ,
CurrentCoiMultiplier );
+ NoLapseAlwaysActive = a_Addend.NoLapseAlwaysActive||
NoLapseAlwaysActive;
+ NoLapseMinDur = std::min(a_Addend.NoLapseMinDur,
NoLapseMinDur);
+ NoLapseMinAge = std::min(a_Addend.NoLapseMinAge,
NoLapseMinAge);
+ Has1035ExchCharge = a_Addend.Has1035ExchCharge ||
Has1035ExchCharge;
+ EffDateJdn = a_Addend.EffDateJdn;
+ DateOfBirthJdn = a_Addend.DateOfBirthJdn;
+ LastCoiReentryDateJdn = a_Addend.LastCoiReentryDateJdn;
+ ListBillDateJdn = a_Addend.ListBillDateJdn;
+ InforceAsOfDateJdn = a_Addend.InforceAsOfDateJdn;
+ GenAcctAllocation = a_Addend.GenAcctAllocation;
+ SplitFundAllocation = SplitFundAllocation ||
a_Addend.SplitFundAllocation;
+ WriteTsvFile = WriteTsvFile || a_Addend.WriteTsvFile ;
// The composite has a supplemental report iff every cell has one,
// in which case it uses the same columns as the last cell. There
@@ -725,27 +725,27 @@ LedgerInvariant& LedgerInvariant::PlusEq(LedgerInvariant
const& a_Addend)
// union of all columns selected for any life becomes infeasible
// when its cardinality exceeds the maximum.)
//
- SupplementalReport = SupplementalReport &&
a_Addend.SupplementalReport;
+ SupplementalReport = SupplementalReport &&
a_Addend.SupplementalReport;
// Nonscalable scalars end.
// Strings.
//
// Override the behavior of LedgerBase::PlusEq() for this handful
// of strings, which would often or even necessarily vary by life.
- ContractNumber = "";
- Insured1 = "";
- Gender = "";
- Smoker = "";
- UWClass = "";
- SubstandardTable = "";
+ ContractNumber = "";
+ Insured1 = "";
+ Gender = "";
+ Smoker = "";
+ UWClass = "";
+ SubstandardTable = "";
// Special-case strings.
- EffDate = a_Addend.EffDate;
- DateOfBirth = a_Addend.DateOfBirth;
- LastCoiReentryDate = a_Addend.LastCoiReentryDate;
- ListBillDate = a_Addend.ListBillDate;
- InforceAsOfDate = a_Addend.InforceAsOfDate;
+ EffDate = a_Addend.EffDate;
+ DateOfBirth = a_Addend.DateOfBirth;
+ LastCoiReentryDate = a_Addend.LastCoiReentryDate;
+ ListBillDate = a_Addend.ListBillDate;
+ InforceAsOfDate = a_Addend.InforceAsOfDate;
return *this;
}
@@ -848,12 +848,12 @@ void LedgerInvariant::Spew(std::ostream& os) const
{
LedgerBase::Spew(os);
- SpewVector(os, std::string("InforceLives") ,InforceLives );
- SpewVector(os, std::string("DBOpt") ,DBOpt );
- SpewVector(os, std::string("EeMode") ,EeMode );
- SpewVector(os, std::string("ErMode") ,ErMode );
- SpewVector(os, std::string("FundNumbers") ,FundNumbers );
- SpewVector(os, std::string("FundNames") ,FundNames );
- SpewVector(os, std::string("FundAllocs") ,FundAllocs );
- SpewVector(os, std::string("FundAllocations") ,FundAllocations );
+ SpewVector(os, std::string("InforceLives") ,InforceLives );
+ SpewVector(os, std::string("DBOpt") ,DBOpt );
+ SpewVector(os, std::string("EeMode") ,EeMode );
+ SpewVector(os, std::string("ErMode") ,ErMode );
+ SpewVector(os, std::string("FundNumbers") ,FundNumbers );
+ SpewVector(os, std::string("FundNames") ,FundNames );
+ SpewVector(os, std::string("FundAllocs") ,FundAllocs );
+ SpewVector(os, std::string("FundAllocations") ,FundAllocations );
}
diff --git a/ledger_invariant.hpp b/ledger_invariant.hpp
index ea151ec..d142778 100644
--- a/ledger_invariant.hpp
+++ b/ledger_invariant.hpp
@@ -53,10 +53,10 @@ class LMI_SO LedgerInvariant final
LedgerInvariant& PlusEq(LedgerInvariant const& a_Addend);
- bool is_irr_initialized() const;
- bool IsFullyInitialized() const;
- int GetLength() const override;
- std::vector<double> const& GetInforceLives() const;
+ bool is_irr_initialized() const;
+ bool IsFullyInitialized() const;
+ int GetLength() const override;
+ std::vector<double> const& GetInforceLives() const;
void CalculateIrrs(Ledger const&);
@@ -107,116 +107,116 @@ class LMI_SO LedgerInvariant final
std::vector<double> RefundableSalesLoad;
// Scalable scalars.
- double InitBaseSpecAmt;
- double InitTermSpecAmt;
- double ChildRiderAmount;
- double SpouseRiderAmount;
- double InitPrem;
- double GuarPrem;
- double InitSevenPayPrem;
- double InitGSP;
- double InitGLP;
- double InitTgtPrem;
- double ListBillPremium;
- double EeListBillPremium;
- double ErListBillPremium;
- double Dumpin;
- double External1035Amount;
- double Internal1035Amount;
- double InforceUnloanedAV;
- double InforceTaxBasis;
+ double InitBaseSpecAmt;
+ double InitTermSpecAmt;
+ double ChildRiderAmount;
+ double SpouseRiderAmount;
+ double InitPrem;
+ double GuarPrem;
+ double InitSevenPayPrem;
+ double InitGSP;
+ double InitGLP;
+ double InitTgtPrem;
+ double ListBillPremium;
+ double EeListBillPremium;
+ double ErListBillPremium;
+ double Dumpin;
+ double External1035Amount;
+ double Internal1035Amount;
+ double InforceUnloanedAV;
+ double InforceTaxBasis;
// Nonscalable scalars.
- double MaleProportion;
- double NonsmokerProportion;
- double GuarMaxMandE;
- double InitDacTaxRate;
- double InitPremTaxRate;
- double GenderDistinct;
- double GenderBlended;
- double SmokerDistinct;
- double SmokerBlended;
- double SubstdTable; // Prefer string 'SubstandardTable'.
- double Age;
- double RetAge;
- double EndtAge;
- double GroupIndivSelection;
- double NoLongerIssued;
- double AllowGroupQuote;
- double TxCallsGuarUwSubstd;
- double AllowExperienceRating;
- double UseExperienceRating;
- double UsePartialMort;
- double SurviveToExpectancy;
- double SurviveToYear;
- double SurviveToAge;
- double SurvivalMaxYear;
- double SurvivalMaxAge;
- double AvgFund;
- double CustomFund;
- double IsMec;
- double InforceIsMec;
- double InforceYear;
- double InforceMonth;
- double MecYear;
- double MecMonth;
- double HasWP;
- double HasADD;
- double HasTerm;
- double HasSupplSpecAmt;
- double HasChildRider;
- double HasSpouseRider;
- double SpouseIssueAge;
- double HasHoneymoon;
- double PostHoneymoonSpread;
- double SplitMinPrem;
- double ErNotionallyPaysTerm;
- double IsSinglePremium;
- double MaxAnnGuarLoanSpread;
- double MaxAnnCurrLoanDueRate;
- double IsInforce;
- double CurrentCoiMultiplier;
- double NoLapseAlwaysActive;
- double NoLapseMinDur;
- double NoLapseMinAge;
- double Has1035ExchCharge;
- double EffDateJdn;
- double DateOfBirthJdn;
- double LastCoiReentryDateJdn;
- double ListBillDateJdn;
- double InforceAsOfDateJdn;
- double GenAcctAllocation;
- double SplitFundAllocation;
- double WriteTsvFile;
- double SupplementalReport;
+ double MaleProportion;
+ double NonsmokerProportion;
+ double GuarMaxMandE;
+ double InitDacTaxRate;
+ double InitPremTaxRate;
+ double GenderDistinct;
+ double GenderBlended;
+ double SmokerDistinct;
+ double SmokerBlended;
+ double SubstdTable; // Prefer string 'SubstandardTable'.
+ double Age;
+ double RetAge;
+ double EndtAge;
+ double GroupIndivSelection;
+ double NoLongerIssued;
+ double AllowGroupQuote;
+ double TxCallsGuarUwSubstd;
+ double AllowExperienceRating;
+ double UseExperienceRating;
+ double UsePartialMort;
+ double SurviveToExpectancy;
+ double SurviveToYear;
+ double SurviveToAge;
+ double SurvivalMaxYear;
+ double SurvivalMaxAge;
+ double AvgFund;
+ double CustomFund;
+ double IsMec;
+ double InforceIsMec;
+ double InforceYear;
+ double InforceMonth;
+ double MecYear;
+ double MecMonth;
+ double HasWP;
+ double HasADD;
+ double HasTerm;
+ double HasSupplSpecAmt;
+ double HasChildRider;
+ double HasSpouseRider;
+ double SpouseIssueAge;
+ double HasHoneymoon;
+ double PostHoneymoonSpread;
+ double SplitMinPrem;
+ double ErNotionallyPaysTerm;
+ double IsSinglePremium;
+ double MaxAnnGuarLoanSpread;
+ double MaxAnnCurrLoanDueRate;
+ double IsInforce;
+ double CurrentCoiMultiplier;
+ double NoLapseAlwaysActive;
+ double NoLapseMinDur;
+ double NoLapseMinAge;
+ double Has1035ExchCharge;
+ double EffDateJdn;
+ double DateOfBirthJdn;
+ double LastCoiReentryDateJdn;
+ double ListBillDateJdn;
+ double InforceAsOfDateJdn;
+ double GenAcctAllocation;
+ double SplitFundAllocation;
+ double WriteTsvFile;
+ double SupplementalReport;
// Strings.
// Essential strings describing the policy and company.
- std::string PolicyForm;
+ std::string PolicyForm;
// Ledger needs no member like product_data::PolicyFormAlternative;
- std::string PolicyMktgName;
- std::string PolicyLegalName;
- std::string CsoEra;
- std::string InsCoShortName;
- std::string InsCoName;
- std::string InsCoAddr;
- std::string InsCoStreet;
- std::string InsCoPhone;
+ std::string PolicyMktgName;
+ std::string PolicyLegalName;
+ std::string CsoEra;
+ std::string InsCoShortName;
+ std::string InsCoName;
+ std::string InsCoAddr;
+ std::string InsCoStreet;
+ std::string InsCoPhone;
// Ledger needs no member like product_data::InsCoDomicile;
- std::string MainUnderwriter;
- std::string MainUnderwriterAddress;
- std::string CoUnderwriter;
- std::string CoUnderwriterAddress;
+ std::string MainUnderwriter;
+ std::string MainUnderwriterAddress;
+ std::string CoUnderwriter;
+ std::string CoUnderwriterAddress;
// Terms defined in the contract, which must be used for column
// headers according to the illustration reg.
- std::string AvName;
- std::string CsvName;
- std::string CsvHeaderName;
- std::string NoLapseProvisionName;
- std::string ContractName;
- std::string DboName;
+ std::string AvName;
+ std::string CsvName;
+ std::string CsvHeaderName;
+ std::string NoLapseProvisionName;
+ std::string ContractName;
+ std::string DboName;
// PDF !! 'DboName+' variables are used only to assemble DBO
// definitions for mce_ill_reg PDFs. Probably those definitions
// should be moved into '.policy' files instead, in which case
@@ -224,176 +224,176 @@ class LMI_SO LedgerInvariant final
// 'DboNameReturnOfPremium' is omitted here only because the
// mce_ill_reg products that lmi supports happen not to use a
// definition for it today.
- std::string DboNameLevel;
- std::string DboNameIncreasing;
-// std::string DboNameReturnOfPremium;
- std::string DboNameMinDeathBenefit;
- std::string GenAcctName;
- std::string GenAcctNameElaborated;
- std::string SepAcctName;
- std::string SpecAmtName;
- std::string SpecAmtNameElaborated;
- std::string UwBasisMedical;
- std::string UwBasisParamedical;
- std::string UwBasisNonmedical;
- std::string UwBasisSimplified;
- std::string UwBasisGuaranteed;
- std::string UwClassPreferred;
- std::string UwClassStandard;
- std::string UwClassRated;
- std::string UwClassUltra;
+ std::string DboNameLevel;
+ std::string DboNameIncreasing;
+// std::string DboNameReturnOfPremium;
+ std::string DboNameMinDeathBenefit;
+ std::string GenAcctName;
+ std::string GenAcctNameElaborated;
+ std::string SepAcctName;
+ std::string SpecAmtName;
+ std::string SpecAmtNameElaborated;
+ std::string UwBasisMedical;
+ std::string UwBasisParamedical;
+ std::string UwBasisNonmedical;
+ std::string UwBasisSimplified;
+ std::string UwBasisGuaranteed;
+ std::string UwClassPreferred;
+ std::string UwClassStandard;
+ std::string UwClassRated;
+ std::string UwClassUltra;
// Ledger column definitions.
- std::string AccountValueFootnote;
- std::string AttainedAgeFootnote;
- std::string CashSurrValueFootnote;
- std::string DeathBenefitFootnote;
- std::string InitialPremiumFootnote;
- std::string NetPremiumFootnote;
- std::string GrossPremiumFootnote;
- std::string OutlayFootnote;
- std::string PolicyYearFootnote;
+ std::string AccountValueFootnote;
+ std::string AttainedAgeFootnote;
+ std::string CashSurrValueFootnote;
+ std::string DeathBenefitFootnote;
+ std::string InitialPremiumFootnote;
+ std::string NetPremiumFootnote;
+ std::string GrossPremiumFootnote;
+ std::string OutlayFootnote;
+ std::string PolicyYearFootnote;
// Terse rider names.
- std::string ADDTerseName;
- std::string InsurabilityTerseName;
- std::string ChildTerseName;
- std::string SpouseTerseName;
- std::string TermTerseName;
- std::string WaiverTerseName;
- std::string AccelBftRiderTerseName;
- std::string OverloanRiderTerseName;
+ std::string ADDTerseName;
+ std::string InsurabilityTerseName;
+ std::string ChildTerseName;
+ std::string SpouseTerseName;
+ std::string TermTerseName;
+ std::string WaiverTerseName;
+ std::string AccelBftRiderTerseName;
+ std::string OverloanRiderTerseName;
// Rider footnotes.
- std::string ADDFootnote;
- std::string ChildFootnote;
- std::string SpouseFootnote;
- std::string TermFootnote;
- std::string WaiverFootnote;
- std::string AccelBftRiderFootnote;
- std::string OverloanRiderFootnote;
+ std::string ADDFootnote;
+ std::string ChildFootnote;
+ std::string SpouseFootnote;
+ std::string TermFootnote;
+ std::string WaiverFootnote;
+ std::string AccelBftRiderFootnote;
+ std::string OverloanRiderFootnote;
// Group quote footnotes.
- std::string GroupQuoteShortProductName;
- std::string GroupQuoteIsNotAnOffer ;
- std::string GroupQuoteRidersFooter ;
- std::string GroupQuotePolicyFormId ;
- std::string GroupQuoteStateVariations ;
- std::string GroupQuoteProspectus ;
- std::string GroupQuoteUnderwriter ;
- std::string GroupQuoteBrokerDealer ;
- std::string GroupQuoteRubricMandatory ;
- std::string GroupQuoteRubricVoluntary ;
- std::string GroupQuoteRubricFusion ;
- std::string GroupQuoteFooterMandatory ;
- std::string GroupQuoteFooterVoluntary ;
- std::string GroupQuoteFooterFusion ;
+ std::string GroupQuoteShortProductName;
+ std::string GroupQuoteIsNotAnOffer ;
+ std::string GroupQuoteRidersFooter ;
+ std::string GroupQuotePolicyFormId ;
+ std::string GroupQuoteStateVariations ;
+ std::string GroupQuoteProspectus ;
+ std::string GroupQuoteUnderwriter ;
+ std::string GroupQuoteBrokerDealer ;
+ std::string GroupQuoteRubricMandatory ;
+ std::string GroupQuoteRubricVoluntary ;
+ std::string GroupQuoteRubricFusion ;
+ std::string GroupQuoteFooterMandatory ;
+ std::string GroupQuoteFooterVoluntary ;
+ std::string GroupQuoteFooterFusion ;
// Premium-specific footnotes.
- std::string MinimumPremiumFootnote;
- std::string PremAllocationFootnote;
+ std::string MinimumPremiumFootnote;
+ std::string PremAllocationFootnote;
// Miscellaneous other footnotes.
- std::string InterestDisclaimer;
- std::string GuarMortalityFootnote;
- std::string ProductDescription;
- std::string StableValueFootnote;
- std::string NoVanishPremiumFootnote;
- std::string RejectPremiumFootnote;
- std::string ExpRatingFootnote;
- std::string MortalityBlendFootnote;
- std::string HypotheticalRatesFootnote;
- std::string SalesLoadRefundFootnote;
- std::string NoLapseEverFootnote;
- std::string NoLapseFootnote;
- std::string MarketValueAdjFootnote;
- std::string ExchangeChargeFootnote0;
- std::string CurrentValuesFootnote;
- std::string DBOption1Footnote;
- std::string DBOption2Footnote;
- std::string DBOption3Footnote;
- std::string MinDeathBenefitFootnote;
- std::string ExpRatRiskChargeFootnote;
- std::string ExchangeChargeFootnote1;
- std::string FlexiblePremiumFootnote;
- std::string GuaranteedValuesFootnote;
- std::string CreditingRateFootnote;
- std::string GuaranteedCreditRateFootnote;
- std::string GrossRateFootnote;
- std::string NetRateFootnote;
- std::string MecFootnote;
- std::string GptFootnote;
- std::string MidpointValuesFootnote;
- std::string SinglePremiumFootnote;
- std::string MonthlyChargesFootnote;
- std::string UltCreditingRateFootnote;
- std::string UltCreditingRateHeader;
- std::string MaxNaarFootnote;
- std::string PremTaxSurrChgFootnote;
- std::string PolicyFeeFootnote;
- std::string AssetChargeFootnote;
- std::string InvestmentIncomeFootnote;
- std::string IrrDbFootnote;
- std::string IrrCsvFootnote;
- std::string MortalityChargesFootnote;
- std::string LoanAndWithdrawalFootnote;
- std::string LoanFootnote;
- std::string ImprimaturPresale;
- std::string ImprimaturPresaleComposite;
- std::string ImprimaturInforce;
- std::string ImprimaturInforceComposite;
- std::string StateMarketingImprimatur;
- std::string InforceNonGuaranteedFootnote0;
- std::string InforceNonGuaranteedFootnote1;
- std::string InforceNonGuaranteedFootnote2;
- std::string InforceNonGuaranteedFootnote3;
- std::string NonGuaranteedFootnote;
- std::string NonGuaranteedFootnote1;
- std::string NonGuaranteedFootnote1Tx;
- std::string MonthlyChargesPaymentFootnote;
- std::string SurrenderFootnote;
- std::string PortabilityFootnote;
- std::string FundRateFootnote;
- std::string IssuingCompanyFootnote;
- std::string SubsidiaryFootnote;
- std::string PlacementAgentFootnote;
- std::string MarketingNameFootnote;
- std::string GuarIssueDisclaimerNcSc;
- std::string GuarIssueDisclaimerMd;
- std::string GuarIssueDisclaimerTx;
- std::string IllRegCertAgent;
- std::string IllRegCertAgentIl;
- std::string IllRegCertAgentTx;
- std::string IllRegCertClient;
- std::string IllRegCertClientIl;
- std::string IllRegCertClientTx;
+ std::string InterestDisclaimer;
+ std::string GuarMortalityFootnote;
+ std::string ProductDescription;
+ std::string StableValueFootnote;
+ std::string NoVanishPremiumFootnote;
+ std::string RejectPremiumFootnote;
+ std::string ExpRatingFootnote;
+ std::string MortalityBlendFootnote;
+ std::string HypotheticalRatesFootnote;
+ std::string SalesLoadRefundFootnote;
+ std::string NoLapseEverFootnote;
+ std::string NoLapseFootnote;
+ std::string MarketValueAdjFootnote;
+ std::string ExchangeChargeFootnote0;
+ std::string CurrentValuesFootnote;
+ std::string DBOption1Footnote;
+ std::string DBOption2Footnote;
+ std::string DBOption3Footnote;
+ std::string MinDeathBenefitFootnote;
+ std::string ExpRatRiskChargeFootnote;
+ std::string ExchangeChargeFootnote1;
+ std::string FlexiblePremiumFootnote;
+ std::string GuaranteedValuesFootnote;
+ std::string CreditingRateFootnote;
+ std::string GuaranteedCreditRateFootnote;
+ std::string GrossRateFootnote;
+ std::string NetRateFootnote;
+ std::string MecFootnote;
+ std::string GptFootnote;
+ std::string MidpointValuesFootnote;
+ std::string SinglePremiumFootnote;
+ std::string MonthlyChargesFootnote;
+ std::string UltCreditingRateFootnote;
+ std::string UltCreditingRateHeader;
+ std::string MaxNaarFootnote;
+ std::string PremTaxSurrChgFootnote;
+ std::string PolicyFeeFootnote;
+ std::string AssetChargeFootnote;
+ std::string InvestmentIncomeFootnote;
+ std::string IrrDbFootnote;
+ std::string IrrCsvFootnote;
+ std::string MortalityChargesFootnote;
+ std::string LoanAndWithdrawalFootnote;
+ std::string LoanFootnote;
+ std::string ImprimaturPresale;
+ std::string ImprimaturPresaleComposite;
+ std::string ImprimaturInforce;
+ std::string ImprimaturInforceComposite;
+ std::string StateMarketingImprimatur;
+ std::string InforceNonGuaranteedFootnote0;
+ std::string InforceNonGuaranteedFootnote1;
+ std::string InforceNonGuaranteedFootnote2;
+ std::string InforceNonGuaranteedFootnote3;
+ std::string NonGuaranteedFootnote;
+ std::string NonGuaranteedFootnote1;
+ std::string NonGuaranteedFootnote1Tx;
+ std::string MonthlyChargesPaymentFootnote;
+ std::string SurrenderFootnote;
+ std::string PortabilityFootnote;
+ std::string FundRateFootnote;
+ std::string IssuingCompanyFootnote;
+ std::string SubsidiaryFootnote;
+ std::string PlacementAgentFootnote;
+ std::string MarketingNameFootnote;
+ std::string GuarIssueDisclaimerNcSc;
+ std::string GuarIssueDisclaimerMd;
+ std::string GuarIssueDisclaimerTx;
+ std::string IllRegCertAgent;
+ std::string IllRegCertAgentIl;
+ std::string IllRegCertAgentTx;
+ std::string IllRegCertClient;
+ std::string IllRegCertClientIl;
+ std::string IllRegCertClientTx;
// Strings from class Input.
- std::string ProductName;
- std::string ProducerName;
- std::string ProducerStreet;
- std::string ProducerCityEtc;
- std::string ProducerPhone;
- std::string ProducerId;
- std::string CorpName;
- std::string MasterContractNumber;
- std::string ContractNumber;
- std::string Insured1;
- std::string Gender;
- std::string UWType;
- std::string Smoker;
- std::string UWClass;
- std::string SubstandardTable;
- std::string DefnLifeIns;
- std::string DefnMaterialChange;
- std::string AvoidMec;
- std::string PartMortTableName;
-
- std::string StateOfJurisdiction;
- std::string PremiumTaxState;
- std::string CountryIso3166Abbrev;
- std::string Comments;
+ std::string ProductName;
+ std::string ProducerName;
+ std::string ProducerStreet;
+ std::string ProducerCityEtc;
+ std::string ProducerPhone;
+ std::string ProducerId;
+ std::string CorpName;
+ std::string MasterContractNumber;
+ std::string ContractNumber;
+ std::string Insured1;
+ std::string Gender;
+ std::string UWType;
+ std::string Smoker;
+ std::string UWClass;
+ std::string SubstandardTable;
+ std::string DefnLifeIns;
+ std::string DefnMaterialChange;
+ std::string AvoidMec;
+ std::string PartMortTableName;
+
+ std::string StateOfJurisdiction;
+ std::string PremiumTaxState;
+ std::string CountryIso3166Abbrev;
+ std::string Comments;
std::string SupplementalReportColumn00;
std::string SupplementalReportColumn01;
@@ -413,9 +413,9 @@ class LMI_SO LedgerInvariant final
// generating reports from this class's data, and mc_enum::str()
// is not visible across a shared-library boundary. For now, this
// kludge solves an immediate problem for premium quotes.
- std::string InitDBOpt;
- std::string InitEeMode;
- std::string InitErMode;
+ std::string InitDBOpt;
+ std::string InitEeMode;
+ std::string InitErMode;
// Public data members not included in any of the maps that are
// handled by the base class are "special".
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 34df7bf..bb207b2 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -53,10 +53,10 @@ void LedgerInvariant::Init(BasicValues const* b)
// BOY vectors.
-// TgtPrem = DYNAMIC ?
-// GrossPmt = DYNAMIC
-// EeGrossPmt = DYNAMIC
-// ErGrossPmt = DYNAMIC
+// TgtPrem = DYNAMIC ?
+// GrossPmt = DYNAMIC
+// EeGrossPmt = DYNAMIC
+// ErGrossPmt = DYNAMIC
// Certain data members, including but almost certainly not
// limited to these, should not be initialized to any non-zero
@@ -64,96 +64,96 @@ void LedgerInvariant::Init(BasicValues const* b)
// processing, subject to various restrictions that often cause
// them to differ from input values. Notably, values need to be
// zero after lapse.
-// NetWD = DYNAMIC
-// NewCashLoan = DYNAMIC
-// Outlay = DYNAMIC
-// GptForceout = DYNAMIC
-// NaarForceout = DYNAMIC ?
-// ModalMinimumPremium = DYNAMIC
-// EeModalMinimumPremium = DYNAMIC
-// ErModalMinimumPremium = DYNAMIC
+// NetWD = DYNAMIC
+// NewCashLoan = DYNAMIC
+// Outlay = DYNAMIC
+// GptForceout = DYNAMIC
+// NaarForceout = DYNAMIC ?
+// ModalMinimumPremium = DYNAMIC
+// EeModalMinimumPremium = DYNAMIC
+// ErModalMinimumPremium = DYNAMIC
- AddonMonthlyFee = b->yare_input_.ExtraMonthlyCustodialFee ;
+ AddonMonthlyFee = b->yare_input_.ExtraMonthlyCustodialFee ;
// EOY vectors.
- HasSupplSpecAmt = false;
+ HasSupplSpecAmt = false;
if(b->yare_input_.TermRider)
{
- TermSpecAmt .assign(Length, b->yare_input_.TermRiderAmount);
+ TermSpecAmt .assign(Length, b->yare_input_.TermRiderAmount);
}
else if(b->database().query<bool>(DB_TermIsNotRider))
{
- TermSpecAmt = b->DeathBfts_->supplamt();
+ TermSpecAmt = b->DeathBfts_->supplamt();
if(!each_equal(TermSpecAmt, 0.0))
{
- HasSupplSpecAmt = true;
+ HasSupplSpecAmt = true;
}
}
else
{
TermSpecAmt .assign(Length, 0.0);
}
- SpecAmt = b->DeathBfts_->specamt();
+ SpecAmt = b->DeathBfts_->specamt();
// Forborne vectors.
- Salary = b->yare_input_.ProjectedSalary ;
+ Salary = b->yare_input_.ProjectedSalary ;
// Nonscalable vectors.
- IndvTaxBracket = b->yare_input_.TaxBracket ;
- CorpTaxBracket = b->yare_input_.CorporationTaxBracket ;
- AnnualFlatExtra = b->yare_input_.FlatExtra ;
- HoneymoonValueSpread = b->yare_input_.HoneymoonValueSpread ;
- PartMortTableMult = b->yare_input_.PartialMortalityMultiplier;
- AddonCompOnAssets = b->yare_input_.ExtraCompensationOnAssets ;
- AddonCompOnPremium = b->yare_input_.ExtraCompensationOnPremium;
- CorridorFactor = b->GetCorridorFactor();
+ IndvTaxBracket = b->yare_input_.TaxBracket ;
+ CorpTaxBracket = b->yare_input_.CorporationTaxBracket ;
+ AnnualFlatExtra = b->yare_input_.FlatExtra ;
+ HoneymoonValueSpread = b->yare_input_.HoneymoonValueSpread ;
+ PartMortTableMult = b->yare_input_.PartialMortalityMultiplier;
+ AddonCompOnAssets = b->yare_input_.ExtraCompensationOnAssets ;
+ AddonCompOnPremium = b->yare_input_.ExtraCompensationOnPremium;
+ CorridorFactor = b->GetCorridorFactor();
- AnnLoanDueRate = b->InterestRates_->RegLnDueRate
+ AnnLoanDueRate = b->InterestRates_->RegLnDueRate
(mce_gen_curr
,mce_annual_rate
);
- CurrMandE = b->InterestRates_->MAndERate(mce_gen_curr);
- TotalIMF = b->InterestRates_->InvestmentManagementFee();
- RefundableSalesLoad = b->Loads_->refundable_sales_load_proportion();
+ CurrMandE = b->InterestRates_->MAndERate(mce_gen_curr);
+ TotalIMF = b->InterestRates_->InvestmentManagementFee();
+ RefundableSalesLoad = b->Loads_->refundable_sales_load_proportion();
// Scalable scalars.
// SOMEDAY !! Things indexed with '[0]' should probably use inforce year
instead.
- InitBaseSpecAmt = b->DeathBfts_->specamt()[0];
- InitTermSpecAmt = TermSpecAmt[0];
- ChildRiderAmount = b->yare_input_.ChildRiderAmount;
- SpouseRiderAmount = b->yare_input_.SpouseRiderAmount;
-
-// InitPrem = DYNAMIC
-// GuarPrem = DYNAMIC
-// InitSevenPayPrem = DYNAMIC
-// InitGSP = DYNAMIC
-// InitGLP = DYNAMIC
-// InitTgtPrem = DYNAMIC
-// ListBillPremium = DYNAMIC
-// EeListBillPremium = DYNAMIC
-// ErListBillPremium = DYNAMIC
+ InitBaseSpecAmt = b->DeathBfts_->specamt()[0];
+ InitTermSpecAmt = TermSpecAmt[0];
+ ChildRiderAmount = b->yare_input_.ChildRiderAmount;
+ SpouseRiderAmount = b->yare_input_.SpouseRiderAmount;
+
+// InitPrem = DYNAMIC
+// GuarPrem = DYNAMIC
+// InitSevenPayPrem = DYNAMIC
+// InitGSP = DYNAMIC
+// InitGLP = DYNAMIC
+// InitTgtPrem = DYNAMIC
+// ListBillPremium = DYNAMIC
+// EeListBillPremium = DYNAMIC
+// ErListBillPremium = DYNAMIC
// These must be set dynamically because they may be changed,
// e.g. to respect guideline limits. ?
-// Dumpin = DYNAMIC
-// External1035Amount = DYNAMIC
-// Internal1035Amount = DYNAMIC
+// Dumpin = DYNAMIC
+// External1035Amount = DYNAMIC
+// Internal1035Amount = DYNAMIC
InforceUnloanedAV =
b->yare_input_.InforceGeneralAccountValue
+ b->yare_input_.InforceSeparateAccountValue
;
- InforceTaxBasis = b->yare_input_.InforceTaxBasis ;
+ InforceTaxBasis = b->yare_input_.InforceTaxBasis ;
// Nonscalable scalars.
- MaleProportion = b->yare_input_.MaleProportion;
- NonsmokerProportion = b->yare_input_.NonsmokerProportion;
+ MaleProportion = b->yare_input_.MaleProportion;
+ NonsmokerProportion = b->yare_input_.NonsmokerProportion;
// Assert this because the illustration currently prints a scalar
// guaranteed max, assuming that it's the same for all years.
@@ -161,30 +161,30 @@ void LedgerInvariant::Init(BasicValues const* b)
(mce_gen_guar
);
LMI_ASSERT(each_equal(guar_m_and_e_rate, guar_m_and_e_rate.front()));
- GuarMaxMandE = guar_m_and_e_rate[0];
- InitDacTaxRate =
b->Loads_->dac_tax_load()[b->yare_input_.InforceYear];
- InitPremTaxRate = b->PremiumTax_->maximum_load_rate();
-// GenderDistinct = UNUSED ?
- GenderBlended = b->yare_input_.BlendGender;
-// SmokerDistinct = UNUSED ?
- SmokerBlended = b->yare_input_.BlendSmoking;
-
- SubstdTable = b->yare_input_.SubstandardTable;
-
- Age = b->yare_input_.IssueAge;
- RetAge = b->yare_input_.RetirementAge;
- EndtAge = b->yare_input_.IssueAge + b->GetLength();
+ GuarMaxMandE = guar_m_and_e_rate[0];
+ InitDacTaxRate =
b->Loads_->dac_tax_load()[b->yare_input_.InforceYear];
+ InitPremTaxRate = b->PremiumTax_->maximum_load_rate();
+// GenderDistinct = UNUSED ?
+ GenderBlended = b->yare_input_.BlendGender;
+// SmokerDistinct = UNUSED ?
+ SmokerBlended = b->yare_input_.BlendSmoking;
+
+ SubstdTable = b->yare_input_.SubstandardTable;
+
+ Age = b->yare_input_.IssueAge;
+ RetAge = b->yare_input_.RetirementAge;
+ EndtAge = b->yare_input_.IssueAge + b->GetLength();
b->database().query_into(DB_GroupIndivSelection, GroupIndivSelection);
- NoLongerIssued = b->database().query<bool>(DB_NoLongerIssued);
- AllowGroupQuote = b->database().query<bool>(DB_AllowGroupQuote);
+ NoLongerIssued = b->database().query<bool>(DB_NoLongerIssued);
+ AllowGroupQuote = b->database().query<bool>(DB_AllowGroupQuote);
b->database().query_into(DB_TxCallsGuarUwSubstd, TxCallsGuarUwSubstd);
- AllowExperienceRating = b->database().query<bool>(DB_AllowExpRating);
- UseExperienceRating = b->yare_input_.UseExperienceRating;
- UsePartialMort = b->yare_input_.UsePartialMortality;
+ AllowExperienceRating = b->database().query<bool>(DB_AllowExpRating);
+ UseExperienceRating = b->yare_input_.UseExperienceRating;
+ UsePartialMort = b->yare_input_.UsePartialMortality;
- SurviveToExpectancy = false;
- SurviveToYear = false;
- SurviveToAge = false;
+ SurviveToExpectancy = false;
+ SurviveToYear = false;
+ SurviveToAge = false;
switch(b->yare_input_.SurviveToType)
{
case mce_no_survival_limit: /* do nothing */ ; break;
@@ -199,38 +199,38 @@ void LedgerInvariant::Init(BasicValues const* b)
// duration for the case (and both cells) is 25 years, then the
// composite max duration really is 25: it's not limited to 20
// because the 80-year-old matures earlier.
- SurvivalMaxYear = b->yare_input_.SurviveToYear;
- SurvivalMaxAge = b->yare_input_.SurviveToAge;
-
- AvgFund = b->yare_input_.UseAverageOfAllFunds;
- CustomFund = b->yare_input_.OverrideFundManagementFee;
-
-// IsMec = DYNAMIC
-// InforceIsMec = DYNAMIC ?
-// InforceYear = DYNAMIC ?
-// InforceMonth = DYNAMIC ?
-// MecYear = DYNAMIC
-// MecMonth = DYNAMIC
-
- HasWP = b->yare_input_.WaiverOfPremiumBenefit;
- HasADD = b->yare_input_.AccidentalDeathBenefit;
- HasTerm = b->yare_input_.TermRider;
-// HasSupplSpecAmt // Out of order--see above.
- HasChildRider = b->yare_input_.ChildRider;
- HasSpouseRider = b->yare_input_.SpouseRider;
- SpouseIssueAge = b->yare_input_.SpouseIssueAge;
-
- HasHoneymoon = b->yare_input_.HoneymoonEndorsement;
- PostHoneymoonSpread = b->yare_input_.PostHoneymoonSpread;
+ SurvivalMaxYear = b->yare_input_.SurviveToYear;
+ SurvivalMaxAge = b->yare_input_.SurviveToAge;
+
+ AvgFund = b->yare_input_.UseAverageOfAllFunds;
+ CustomFund = b->yare_input_.OverrideFundManagementFee;
+
+// IsMec = DYNAMIC
+// InforceIsMec = DYNAMIC ?
+// InforceYear = DYNAMIC ?
+// InforceMonth = DYNAMIC ?
+// MecYear = DYNAMIC
+// MecMonth = DYNAMIC
+
+ HasWP = b->yare_input_.WaiverOfPremiumBenefit;
+ HasADD = b->yare_input_.AccidentalDeathBenefit;
+ HasTerm = b->yare_input_.TermRider;
+// HasSupplSpecAmt // Out of order--see above.
+ HasChildRider = b->yare_input_.ChildRider;
+ HasSpouseRider = b->yare_input_.SpouseRider;
+ SpouseIssueAge = b->yare_input_.SpouseIssueAge;
+
+ HasHoneymoon = b->yare_input_.HoneymoonEndorsement;
+ PostHoneymoonSpread = b->yare_input_.PostHoneymoonSpread;
b->database().query_into(DB_SplitMinPrem , SplitMinPrem);
b->database().query_into(DB_ErNotionallyPaysTerm, ErNotionallyPaysTerm);
b->database().query_into(DB_IsSinglePremium , IsSinglePremium);
- std::vector<double> z= b->InterestRates_->RegLoanSpread(mce_gen_guar);
- LMI_ASSERT(!z.empty()); // Ensure *(std::max_element()) works.
- MaxAnnGuarLoanSpread = *std::max_element(z.begin(), z.end());
+ std::vector<double> z =
b->InterestRates_->RegLoanSpread(mce_gen_guar);
+ LMI_ASSERT(!z.empty()); // Ensure *(std::max_element()) works.
+ MaxAnnGuarLoanSpread = *std::max_element(z.begin(), z.end());
LMI_ASSERT(!AnnLoanDueRate.empty()); // Ensure *(std::max_element()) works.
- MaxAnnCurrLoanDueRate = *std::max_element
+ MaxAnnCurrLoanDueRate = *std::max_element
(AnnLoanDueRate.begin()
,AnnLoanDueRate.end()
);
@@ -263,13 +263,13 @@ void LedgerInvariant::Init(BasicValues const* b)
b->database().query_into(DB_NoLapseMinAge , NoLapseMinAge);
b->database().query_into(DB_Has1035ExchCharge , Has1035ExchCharge);
- EffDateJdn = calendar_date(b->yare_input_.EffectiveDate
).julian_day_number();
- DateOfBirthJdn = calendar_date(b->yare_input_.DateOfBirth
).julian_day_number();
- LastCoiReentryDateJdn =
calendar_date(b->yare_input_.LastCoiReentryDate).julian_day_number();
- ListBillDateJdn = calendar_date(b->yare_input_.ListBillDate
).julian_day_number();
- InforceAsOfDateJdn = calendar_date(b->yare_input_.InforceAsOfDate
).julian_day_number();
+ EffDateJdn = calendar_date(b->yare_input_.EffectiveDate
).julian_day_number();
+ DateOfBirthJdn = calendar_date(b->yare_input_.DateOfBirth
).julian_day_number();
+ LastCoiReentryDateJdn =
calendar_date(b->yare_input_.LastCoiReentryDate).julian_day_number();
+ ListBillDateJdn = calendar_date(b->yare_input_.ListBillDate
).julian_day_number();
+ InforceAsOfDateJdn = calendar_date(b->yare_input_.InforceAsOfDate
).julian_day_number();
- GenAcctAllocation = 1.0 - premium_allocation_to_sepacct(b->yare_input_);
+ GenAcctAllocation = 1.0 -
premium_allocation_to_sepacct(b->yare_input_);
SplitFundAllocation =
(0.0 != GenAcctAllocation && 1.0 != GenAcctAllocation)
@@ -279,7 +279,7 @@ void LedgerInvariant::Init(BasicValues const* b)
)
;
- WriteTsvFile = contains(b->yare_input_.Comments, "idiosyncrasyY");
+ WriteTsvFile = contains(b->yare_input_.Comments,
"idiosyncrasyY");
SupplementalReport = b->yare_input_.CreateSupplementalReport;
@@ -298,191 +298,191 @@ void LedgerInvariant::Init(BasicValues const* b)
// strings in class product_data vary across the same axes as
// database_entity objects.
bool alt_form = b->database().query<bool>(DB_UsePolicyFormAlt);
- dbo_name_option1 = p.datum("DboNameLevel"
);
- dbo_name_option2 = p.datum("DboNameIncreasing"
);
- dbo_name_rop = p.datum("DboNameReturnOfPremium"
);
- dbo_name_mdb = p.datum("DboNameMinDeathBenefit"
);
+ dbo_name_option1 = p.datum("DboNameLevel"
);
+ dbo_name_option2 = p.datum("DboNameIncreasing"
);
+ dbo_name_rop = p.datum("DboNameReturnOfPremium"
);
+ dbo_name_mdb = p.datum("DboNameMinDeathBenefit"
);
// Strings.
PolicyForm = p.datum(alt_form ? "PolicyFormAlternative" :
"PolicyForm");
- PolicyMktgName = p.datum("PolicyMktgName"
);
- PolicyLegalName = p.datum("PolicyLegalName"
);
+ PolicyMktgName = p.datum("PolicyMktgName"
);
+ PolicyLegalName = p.datum("PolicyLegalName"
);
CsoEra = mc_str(b->database().query<mcenum_cso_era>(DB_CsoEra));
- InsCoShortName = p.datum("InsCoShortName"
);
- InsCoName = p.datum("InsCoName"
);
- InsCoAddr = p.datum("InsCoAddr"
);
- InsCoStreet = p.datum("InsCoStreet"
);
- InsCoPhone = p.datum("InsCoPhone"
);
- MainUnderwriter = p.datum("MainUnderwriter"
);
- MainUnderwriterAddress = p.datum("MainUnderwriterAddress"
);
- CoUnderwriter = p.datum("CoUnderwriter"
);
- CoUnderwriterAddress = p.datum("CoUnderwriterAddress"
);
+ InsCoShortName = p.datum("InsCoShortName"
);
+ InsCoName = p.datum("InsCoName"
);
+ InsCoAddr = p.datum("InsCoAddr"
);
+ InsCoStreet = p.datum("InsCoStreet"
);
+ InsCoPhone = p.datum("InsCoPhone"
);
+ MainUnderwriter = p.datum("MainUnderwriter"
);
+ MainUnderwriterAddress = p.datum("MainUnderwriterAddress"
);
+ CoUnderwriter = p.datum("CoUnderwriter"
);
+ CoUnderwriterAddress = p.datum("CoUnderwriterAddress"
);
// Terms defined in the contract
- AvName = p.datum("AvName"
);
- CsvName = p.datum("CsvName"
);
- CsvHeaderName = p.datum("CsvHeaderName"
);
- NoLapseProvisionName = p.datum("NoLapseProvisionName"
);
- ContractName = p.datum("ContractName"
);
- DboName = p.datum("DboName"
);
+ AvName = p.datum("AvName"
);
+ CsvName = p.datum("CsvName"
);
+ CsvHeaderName = p.datum("CsvHeaderName"
);
+ NoLapseProvisionName = p.datum("NoLapseProvisionName"
);
+ ContractName = p.datum("ContractName"
);
+ DboName = p.datum("DboName"
);
// PDF !! It is hoped that these three local variables (which
// duplicate 'dbo_name_option1' etc. above) can be expunged.
- DboNameLevel = p.datum("DboNameLevel"
);
- DboNameIncreasing = p.datum("DboNameIncreasing"
);
- DboNameMinDeathBenefit = p.datum("DboNameMinDeathBenefit"
);
- GenAcctName = p.datum("GenAcctName"
);
- GenAcctNameElaborated = p.datum("GenAcctNameElaborated"
);
- SepAcctName = p.datum("SepAcctName"
);
- SpecAmtName = p.datum("SpecAmtName"
);
- SpecAmtNameElaborated = p.datum("SpecAmtNameElaborated"
);
- UwBasisMedical = p.datum("UwBasisMedical"
);
- UwBasisParamedical = p.datum("UwBasisParamedical"
);
- UwBasisNonmedical = p.datum("UwBasisNonmedical"
);
- UwBasisSimplified = p.datum("UwBasisSimplified"
);
- UwBasisGuaranteed = p.datum("UwBasisGuaranteed"
);
- UwClassPreferred = p.datum("UwClassPreferred"
);
- UwClassStandard = p.datum("UwClassStandard"
);
- UwClassRated = p.datum("UwClassRated"
);
- UwClassUltra = p.datum("UwClassUltra"
);
+ DboNameLevel = p.datum("DboNameLevel"
);
+ DboNameIncreasing = p.datum("DboNameIncreasing"
);
+ DboNameMinDeathBenefit = p.datum("DboNameMinDeathBenefit"
);
+ GenAcctName = p.datum("GenAcctName"
);
+ GenAcctNameElaborated = p.datum("GenAcctNameElaborated"
);
+ SepAcctName = p.datum("SepAcctName"
);
+ SpecAmtName = p.datum("SpecAmtName"
);
+ SpecAmtNameElaborated = p.datum("SpecAmtNameElaborated"
);
+ UwBasisMedical = p.datum("UwBasisMedical"
);
+ UwBasisParamedical = p.datum("UwBasisParamedical"
);
+ UwBasisNonmedical = p.datum("UwBasisNonmedical"
);
+ UwBasisSimplified = p.datum("UwBasisSimplified"
);
+ UwBasisGuaranteed = p.datum("UwBasisGuaranteed"
);
+ UwClassPreferred = p.datum("UwClassPreferred"
);
+ UwClassStandard = p.datum("UwClassStandard"
);
+ UwClassRated = p.datum("UwClassRated"
);
+ UwClassUltra = p.datum("UwClassUltra"
);
// Ledger column definitions.
- AccountValueFootnote = p.datum("AccountValueFootnote"
);
- AttainedAgeFootnote = p.datum("AttainedAgeFootnote"
);
- CashSurrValueFootnote = p.datum("CashSurrValueFootnote"
);
- DeathBenefitFootnote = p.datum("DeathBenefitFootnote"
);
- InitialPremiumFootnote = p.datum("InitialPremiumFootnote"
);
- NetPremiumFootnote = p.datum("NetPremiumFootnote"
);
- GrossPremiumFootnote = p.datum("GrossPremiumFootnote"
);
- OutlayFootnote = p.datum("OutlayFootnote"
);
- PolicyYearFootnote = p.datum("PolicyYearFootnote"
);
+ AccountValueFootnote = p.datum("AccountValueFootnote"
);
+ AttainedAgeFootnote = p.datum("AttainedAgeFootnote"
);
+ CashSurrValueFootnote = p.datum("CashSurrValueFootnote"
);
+ DeathBenefitFootnote = p.datum("DeathBenefitFootnote"
);
+ InitialPremiumFootnote = p.datum("InitialPremiumFootnote"
);
+ NetPremiumFootnote = p.datum("NetPremiumFootnote"
);
+ GrossPremiumFootnote = p.datum("GrossPremiumFootnote"
);
+ OutlayFootnote = p.datum("OutlayFootnote"
);
+ PolicyYearFootnote = p.datum("PolicyYearFootnote"
);
// Terse rider names.
- ADDTerseName = p.datum("ADDTerseName"
);
- InsurabilityTerseName = p.datum("InsurabilityTerseName"
);
- ChildTerseName = p.datum("ChildTerseName"
);
- SpouseTerseName = p.datum("SpouseTerseName"
);
- TermTerseName = p.datum("TermTerseName"
);
- WaiverTerseName = p.datum("WaiverTerseName"
);
- AccelBftRiderTerseName = p.datum("AccelBftRiderTerseName"
);
- OverloanRiderTerseName = p.datum("OverloanRiderTerseName"
);
+ ADDTerseName = p.datum("ADDTerseName"
);
+ InsurabilityTerseName = p.datum("InsurabilityTerseName"
);
+ ChildTerseName = p.datum("ChildTerseName"
);
+ SpouseTerseName = p.datum("SpouseTerseName"
);
+ TermTerseName = p.datum("TermTerseName"
);
+ WaiverTerseName = p.datum("WaiverTerseName"
);
+ AccelBftRiderTerseName = p.datum("AccelBftRiderTerseName"
);
+ OverloanRiderTerseName = p.datum("OverloanRiderTerseName"
);
// Rider footnotes.
- ADDFootnote = p.datum("ADDFootnote"
);
- ChildFootnote = p.datum("ChildFootnote"
);
- SpouseFootnote = p.datum("SpouseFootnote"
);
- TermFootnote = p.datum("TermFootnote"
);
- WaiverFootnote = p.datum("WaiverFootnote"
);
- AccelBftRiderFootnote = p.datum("AccelBftRiderFootnote"
);
- OverloanRiderFootnote = p.datum("OverloanRiderFootnote"
);
+ ADDFootnote = p.datum("ADDFootnote"
);
+ ChildFootnote = p.datum("ChildFootnote"
);
+ SpouseFootnote = p.datum("SpouseFootnote"
);
+ TermFootnote = p.datum("TermFootnote"
);
+ WaiverFootnote = p.datum("WaiverFootnote"
);
+ AccelBftRiderFootnote = p.datum("AccelBftRiderFootnote"
);
+ OverloanRiderFootnote = p.datum("OverloanRiderFootnote"
);
// Group quote footnotes.
- GroupQuoteShortProductName = p.datum("GroupQuoteShortProductName"
);
- GroupQuoteIsNotAnOffer = p.datum("GroupQuoteIsNotAnOffer"
);
- GroupQuoteRidersFooter = p.datum("GroupQuoteRidersFooter"
);
- GroupQuotePolicyFormId = p.datum("GroupQuotePolicyFormId"
);
- GroupQuoteStateVariations = p.datum("GroupQuoteStateVariations"
);
- GroupQuoteProspectus = p.datum("GroupQuoteProspectus"
);
- GroupQuoteUnderwriter = p.datum("GroupQuoteUnderwriter"
);
- GroupQuoteBrokerDealer = p.datum("GroupQuoteBrokerDealer"
);
- GroupQuoteRubricMandatory = p.datum("GroupQuoteRubricMandatory"
);
- GroupQuoteRubricVoluntary = p.datum("GroupQuoteRubricVoluntary"
);
- GroupQuoteRubricFusion = p.datum("GroupQuoteRubricFusion"
);
- GroupQuoteFooterMandatory = p.datum("GroupQuoteFooterMandatory"
);
- GroupQuoteFooterVoluntary = p.datum("GroupQuoteFooterVoluntary"
);
- GroupQuoteFooterFusion = p.datum("GroupQuoteFooterFusion"
);
+ GroupQuoteShortProductName = p.datum("GroupQuoteShortProductName"
);
+ GroupQuoteIsNotAnOffer = p.datum("GroupQuoteIsNotAnOffer"
);
+ GroupQuoteRidersFooter = p.datum("GroupQuoteRidersFooter"
);
+ GroupQuotePolicyFormId = p.datum("GroupQuotePolicyFormId"
);
+ GroupQuoteStateVariations = p.datum("GroupQuoteStateVariations"
);
+ GroupQuoteProspectus = p.datum("GroupQuoteProspectus"
);
+ GroupQuoteUnderwriter = p.datum("GroupQuoteUnderwriter"
);
+ GroupQuoteBrokerDealer = p.datum("GroupQuoteBrokerDealer"
);
+ GroupQuoteRubricMandatory = p.datum("GroupQuoteRubricMandatory"
);
+ GroupQuoteRubricVoluntary = p.datum("GroupQuoteRubricVoluntary"
);
+ GroupQuoteRubricFusion = p.datum("GroupQuoteRubricFusion"
);
+ GroupQuoteFooterMandatory = p.datum("GroupQuoteFooterMandatory"
);
+ GroupQuoteFooterVoluntary = p.datum("GroupQuoteFooterVoluntary"
);
+ GroupQuoteFooterFusion = p.datum("GroupQuoteFooterFusion"
);
// Premium-specific footnotes.
- MinimumPremiumFootnote = p.datum("MinimumPremiumFootnote"
);
- PremAllocationFootnote = p.datum("PremAllocationFootnote"
);
+ MinimumPremiumFootnote = p.datum("MinimumPremiumFootnote"
);
+ PremAllocationFootnote = p.datum("PremAllocationFootnote"
);
// Miscellaneous other footnotes.
- InterestDisclaimer = p.datum("InterestDisclaimer"
);
- GuarMortalityFootnote = p.datum("GuarMortalityFootnote"
);
- ProductDescription = p.datum("ProductDescription"
);
- StableValueFootnote = p.datum("StableValueFootnote"
);
- NoVanishPremiumFootnote = p.datum("NoVanishPremiumFootnote"
);
- RejectPremiumFootnote = p.datum("RejectPremiumFootnote"
);
- ExpRatingFootnote = p.datum("ExpRatingFootnote"
);
- MortalityBlendFootnote = p.datum("MortalityBlendFootnote"
);
- HypotheticalRatesFootnote = p.datum("HypotheticalRatesFootnote"
);
- SalesLoadRefundFootnote = p.datum("SalesLoadRefundFootnote"
);
- NoLapseEverFootnote = p.datum("NoLapseEverFootnote"
);
- NoLapseFootnote = p.datum("NoLapseFootnote"
);
- MarketValueAdjFootnote = p.datum("MarketValueAdjFootnote"
);
- ExchangeChargeFootnote0 = p.datum("ExchangeChargeFootnote0"
);
- CurrentValuesFootnote = p.datum("CurrentValuesFootnote"
);
- DBOption1Footnote = p.datum("DBOption1Footnote"
);
- DBOption2Footnote = p.datum("DBOption2Footnote"
);
- DBOption3Footnote = p.datum("DBOption3Footnote"
);
- MinDeathBenefitFootnote = p.datum("MinDeathBenefitFootnote"
);
- ExpRatRiskChargeFootnote = p.datum("ExpRatRiskChargeFootnote"
);
- ExchangeChargeFootnote1 = p.datum("ExchangeChargeFootnote1"
);
- FlexiblePremiumFootnote = p.datum("FlexiblePremiumFootnote"
);
- GuaranteedValuesFootnote = p.datum("GuaranteedValuesFootnote"
);
- CreditingRateFootnote = p.datum("CreditingRateFootnote"
);
- GuaranteedCreditRateFootnote =
p.datum("GuaranteedCreditRateFootnote" );
- GrossRateFootnote = p.datum("GrossRateFootnote"
);
- NetRateFootnote = p.datum("NetRateFootnote"
);
- MecFootnote = p.datum("MecFootnote"
);
- GptFootnote = p.datum("GptFootnote"
);
- MidpointValuesFootnote = p.datum("MidpointValuesFootnote"
);
- SinglePremiumFootnote = p.datum("SinglePremiumFootnote"
);
- MonthlyChargesFootnote = p.datum("MonthlyChargesFootnote"
);
- UltCreditingRateFootnote = p.datum("UltCreditingRateFootnote"
);
- UltCreditingRateHeader = p.datum("UltCreditingRateHeader"
);
- MaxNaarFootnote = p.datum("MaxNaarFootnote"
);
- PremTaxSurrChgFootnote = p.datum("PremTaxSurrChgFootnote"
);
- PolicyFeeFootnote = p.datum("PolicyFeeFootnote"
);
- AssetChargeFootnote = p.datum("AssetChargeFootnote"
);
- InvestmentIncomeFootnote = p.datum("InvestmentIncomeFootnote"
);
- IrrDbFootnote = p.datum("IrrDbFootnote"
);
- IrrCsvFootnote = p.datum("IrrCsvFootnote"
);
- MortalityChargesFootnote = p.datum("MortalityChargesFootnote"
);
- LoanAndWithdrawalFootnote = p.datum("LoanAndWithdrawalFootnote"
);
- LoanFootnote = p.datum("LoanFootnote"
);
- ImprimaturPresale = p.datum("ImprimaturPresale"
);
- ImprimaturPresaleComposite = p.datum("ImprimaturPresaleComposite"
);
- ImprimaturInforce = p.datum("ImprimaturInforce"
);
- ImprimaturInforceComposite = p.datum("ImprimaturInforceComposite"
);
- StateMarketingImprimatur = p.datum("StateMarketingImprimatur"
);
- InforceNonGuaranteedFootnote0 =
p.datum("InforceNonGuaranteedFootnote0" );
- InforceNonGuaranteedFootnote1 =
p.datum("InforceNonGuaranteedFootnote1" );
- InforceNonGuaranteedFootnote2 =
p.datum("InforceNonGuaranteedFootnote2" );
- InforceNonGuaranteedFootnote3 =
p.datum("InforceNonGuaranteedFootnote3" );
- NonGuaranteedFootnote = p.datum("NonGuaranteedFootnote"
);
- NonGuaranteedFootnote1 = p.datum("NonGuaranteedFootnote1"
);
- NonGuaranteedFootnote1Tx = p.datum("NonGuaranteedFootnote1Tx"
);
- MonthlyChargesPaymentFootnote =
p.datum("MonthlyChargesPaymentFootnote" );
- SurrenderFootnote = p.datum("SurrenderFootnote"
);
- PortabilityFootnote = p.datum("PortabilityFootnote"
);
- FundRateFootnote = p.datum("FundRateFootnote"
);
- IssuingCompanyFootnote = p.datum("IssuingCompanyFootnote"
);
- SubsidiaryFootnote = p.datum("SubsidiaryFootnote"
);
- PlacementAgentFootnote = p.datum("PlacementAgentFootnote"
);
- MarketingNameFootnote = p.datum("MarketingNameFootnote"
);
- GuarIssueDisclaimerNcSc = p.datum("GuarIssueDisclaimerNcSc"
);
- GuarIssueDisclaimerMd = p.datum("GuarIssueDisclaimerMd"
);
- GuarIssueDisclaimerTx = p.datum("GuarIssueDisclaimerTx"
);
- IllRegCertAgent = p.datum("IllRegCertAgent"
);
- IllRegCertAgentIl = p.datum("IllRegCertAgentIl"
);
- IllRegCertAgentTx = p.datum("IllRegCertAgentTx"
);
- IllRegCertClient = p.datum("IllRegCertClient"
);
- IllRegCertClientIl = p.datum("IllRegCertClientIl"
);
- IllRegCertClientTx = p.datum("IllRegCertClientTx"
);
+ InterestDisclaimer = p.datum("InterestDisclaimer"
);
+ GuarMortalityFootnote = p.datum("GuarMortalityFootnote"
);
+ ProductDescription = p.datum("ProductDescription"
);
+ StableValueFootnote = p.datum("StableValueFootnote"
);
+ NoVanishPremiumFootnote = p.datum("NoVanishPremiumFootnote"
);
+ RejectPremiumFootnote = p.datum("RejectPremiumFootnote"
);
+ ExpRatingFootnote = p.datum("ExpRatingFootnote"
);
+ MortalityBlendFootnote = p.datum("MortalityBlendFootnote"
);
+ HypotheticalRatesFootnote = p.datum("HypotheticalRatesFootnote"
);
+ SalesLoadRefundFootnote = p.datum("SalesLoadRefundFootnote"
);
+ NoLapseEverFootnote = p.datum("NoLapseEverFootnote"
);
+ NoLapseFootnote = p.datum("NoLapseFootnote"
);
+ MarketValueAdjFootnote = p.datum("MarketValueAdjFootnote"
);
+ ExchangeChargeFootnote0 = p.datum("ExchangeChargeFootnote0"
);
+ CurrentValuesFootnote = p.datum("CurrentValuesFootnote"
);
+ DBOption1Footnote = p.datum("DBOption1Footnote"
);
+ DBOption2Footnote = p.datum("DBOption2Footnote"
);
+ DBOption3Footnote = p.datum("DBOption3Footnote"
);
+ MinDeathBenefitFootnote = p.datum("MinDeathBenefitFootnote"
);
+ ExpRatRiskChargeFootnote = p.datum("ExpRatRiskChargeFootnote"
);
+ ExchangeChargeFootnote1 = p.datum("ExchangeChargeFootnote1"
);
+ FlexiblePremiumFootnote = p.datum("FlexiblePremiumFootnote"
);
+ GuaranteedValuesFootnote = p.datum("GuaranteedValuesFootnote"
);
+ CreditingRateFootnote = p.datum("CreditingRateFootnote"
);
+ GuaranteedCreditRateFootnote = p.datum("GuaranteedCreditRateFootnote"
);
+ GrossRateFootnote = p.datum("GrossRateFootnote"
);
+ NetRateFootnote = p.datum("NetRateFootnote"
);
+ MecFootnote = p.datum("MecFootnote"
);
+ GptFootnote = p.datum("GptFootnote"
);
+ MidpointValuesFootnote = p.datum("MidpointValuesFootnote"
);
+ SinglePremiumFootnote = p.datum("SinglePremiumFootnote"
);
+ MonthlyChargesFootnote = p.datum("MonthlyChargesFootnote"
);
+ UltCreditingRateFootnote = p.datum("UltCreditingRateFootnote"
);
+ UltCreditingRateHeader = p.datum("UltCreditingRateHeader"
);
+ MaxNaarFootnote = p.datum("MaxNaarFootnote"
);
+ PremTaxSurrChgFootnote = p.datum("PremTaxSurrChgFootnote"
);
+ PolicyFeeFootnote = p.datum("PolicyFeeFootnote"
);
+ AssetChargeFootnote = p.datum("AssetChargeFootnote"
);
+ InvestmentIncomeFootnote = p.datum("InvestmentIncomeFootnote"
);
+ IrrDbFootnote = p.datum("IrrDbFootnote"
);
+ IrrCsvFootnote = p.datum("IrrCsvFootnote"
);
+ MortalityChargesFootnote = p.datum("MortalityChargesFootnote"
);
+ LoanAndWithdrawalFootnote = p.datum("LoanAndWithdrawalFootnote"
);
+ LoanFootnote = p.datum("LoanFootnote"
);
+ ImprimaturPresale = p.datum("ImprimaturPresale"
);
+ ImprimaturPresaleComposite = p.datum("ImprimaturPresaleComposite"
);
+ ImprimaturInforce = p.datum("ImprimaturInforce"
);
+ ImprimaturInforceComposite = p.datum("ImprimaturInforceComposite"
);
+ StateMarketingImprimatur = p.datum("StateMarketingImprimatur"
);
+ InforceNonGuaranteedFootnote0 =
p.datum("InforceNonGuaranteedFootnote0" );
+ InforceNonGuaranteedFootnote1 =
p.datum("InforceNonGuaranteedFootnote1" );
+ InforceNonGuaranteedFootnote2 =
p.datum("InforceNonGuaranteedFootnote2" );
+ InforceNonGuaranteedFootnote3 =
p.datum("InforceNonGuaranteedFootnote3" );
+ NonGuaranteedFootnote = p.datum("NonGuaranteedFootnote"
);
+ NonGuaranteedFootnote1 = p.datum("NonGuaranteedFootnote1"
);
+ NonGuaranteedFootnote1Tx = p.datum("NonGuaranteedFootnote1Tx"
);
+ MonthlyChargesPaymentFootnote =
p.datum("MonthlyChargesPaymentFootnote" );
+ SurrenderFootnote = p.datum("SurrenderFootnote"
);
+ PortabilityFootnote = p.datum("PortabilityFootnote"
);
+ FundRateFootnote = p.datum("FundRateFootnote"
);
+ IssuingCompanyFootnote = p.datum("IssuingCompanyFootnote"
);
+ SubsidiaryFootnote = p.datum("SubsidiaryFootnote"
);
+ PlacementAgentFootnote = p.datum("PlacementAgentFootnote"
);
+ MarketingNameFootnote = p.datum("MarketingNameFootnote"
);
+ GuarIssueDisclaimerNcSc = p.datum("GuarIssueDisclaimerNcSc"
);
+ GuarIssueDisclaimerMd = p.datum("GuarIssueDisclaimerMd"
);
+ GuarIssueDisclaimerTx = p.datum("GuarIssueDisclaimerTx"
);
+ IllRegCertAgent = p.datum("IllRegCertAgent"
);
+ IllRegCertAgentIl = p.datum("IllRegCertAgentIl"
);
+ IllRegCertAgentTx = p.datum("IllRegCertAgentTx"
);
+ IllRegCertClient = p.datum("IllRegCertClient"
);
+ IllRegCertClientIl = p.datum("IllRegCertClientIl"
);
+ IllRegCertClientTx = p.datum("IllRegCertClientTx"
);
}
// Strings from class Input.
- ProductName = b->yare_input_.ProductName;
- ProducerName = b->yare_input_.AgentName;
+ ProductName = b->yare_input_.ProductName;
+ ProducerName = b->yare_input_.AgentName;
std::string const agent_city = b->yare_input_.AgentCity;
std::string const agent_state = mc_str(b->yare_input_.AgentState);
@@ -498,19 +498,19 @@ void LedgerInvariant::Init(BasicValues const* b)
agent_city_etc += " " + agent_zip_code;
}
- ProducerStreet = b->yare_input_.AgentAddress;
- ProducerCityEtc = agent_city_etc;
- ProducerPhone = b->yare_input_.AgentPhone;
- ProducerId = b->yare_input_.AgentId;
+ ProducerStreet = b->yare_input_.AgentAddress;
+ ProducerCityEtc = agent_city_etc;
+ ProducerPhone = b->yare_input_.AgentPhone;
+ ProducerId = b->yare_input_.AgentId;
- CorpName = b->yare_input_.CorporationName;
+ CorpName = b->yare_input_.CorporationName;
- MasterContractNumber = b->yare_input_.MasterContractNumber;
- ContractNumber = b->yare_input_.ContractNumber;
+ MasterContractNumber = b->yare_input_.MasterContractNumber;
+ ContractNumber = b->yare_input_.ContractNumber;
- Insured1 = b->yare_input_.InsuredName;
- Gender = mc_str(b->yare_input_.Gender);
- UWType = mc_str(b->yare_input_.GroupUnderwritingType);
+ Insured1 = b->yare_input_.InsuredName;
+ Gender = mc_str(b->yare_input_.Gender);
+ UWType = mc_str(b->yare_input_.GroupUnderwritingType);
// This could be factored out if it ever needs to be reused.
//
@@ -537,17 +537,17 @@ void LedgerInvariant::Init(BasicValues const* b)
throw std::logic_error("Unknown oe_smoker_nonsmoker convention.");
}
- UWClass = mc_str(b->yare_input_.UnderwritingClass);
- SubstandardTable = mc_str(b->yare_input_.SubstandardTable);
+ UWClass = mc_str(b->yare_input_.UnderwritingClass);
+ SubstandardTable = mc_str(b->yare_input_.SubstandardTable);
- DefnLifeIns = mc_str(b->yare_input_.DefinitionOfLifeInsurance);
- DefnMaterialChange =
mc_str(b->yare_input_.DefinitionOfMaterialChange);
- AvoidMec = mc_str(b->yare_input_.AvoidMecMethod);
- PartMortTableName = "1983 GAM"; // TODO ?? Hardcoded.
- StateOfJurisdiction = mc_str(b->GetStateOfJurisdiction());
- PremiumTaxState = mc_str(b->GetPremiumTaxState());
- CountryIso3166Abbrev = mc_str(b->yare_input_.Country);
- Comments = b->yare_input_.Comments;
+ DefnLifeIns =
mc_str(b->yare_input_.DefinitionOfLifeInsurance);
+ DefnMaterialChange =
mc_str(b->yare_input_.DefinitionOfMaterialChange);
+ AvoidMec = mc_str(b->yare_input_.AvoidMecMethod);
+ PartMortTableName = "1983 GAM"; // TODO ?? Hardcoded.
+ StateOfJurisdiction = mc_str(b->GetStateOfJurisdiction());
+ PremiumTaxState = mc_str(b->GetPremiumTaxState());
+ CountryIso3166Abbrev = mc_str(b->yare_input_.Country);
+ Comments = b->yare_input_.Comments;
SupplementalReportColumn00 =
mc_str(b->yare_input_.SupplementalReportColumn00);
SupplementalReportColumn01 =
mc_str(b->yare_input_.SupplementalReportColumn01);
@@ -570,8 +570,8 @@ void LedgerInvariant::Init(BasicValues const* b)
:(mce_mdb == init_dbo) ? dbo_name_mdb
:throw std::logic_error("Unrecognized initial death benefit option.")
;
- InitEeMode = mc_str(b->Outlay_->ee_premium_modes()[0]);
- InitErMode = mc_str(b->Outlay_->er_premium_modes()[0]);
+ InitEeMode = mc_str(b->Outlay_->ee_premium_modes()[0]);
+ InitErMode = mc_str(b->Outlay_->er_premium_modes()[0]);
// Special-case vectors.
@@ -638,16 +638,16 @@ void LedgerInvariant::Init(BasicValues const* b)
// premium-strategy calculations. Use E[er]GrossPmt for illustrations:
// they're *output* values that result from transaction processing.
- EePmt = b->Outlay_->ee_modal_premiums();
- ErPmt = b->Outlay_->er_modal_premiums();
+ EePmt = b->Outlay_->ee_modal_premiums();
+ ErPmt = b->Outlay_->er_modal_premiums();
// Special-case strings.
- EffDate = calendar_date(b->yare_input_.EffectiveDate
).str();
- DateOfBirth = calendar_date(b->yare_input_.DateOfBirth
).str();
- LastCoiReentryDate =
calendar_date(b->yare_input_.LastCoiReentryDate).str();
- ListBillDate = calendar_date(b->yare_input_.ListBillDate
).str();
- InforceAsOfDate = calendar_date(b->yare_input_.InforceAsOfDate
).str();
+ EffDate = calendar_date(b->yare_input_.EffectiveDate
).str();
+ DateOfBirth = calendar_date(b->yare_input_.DateOfBirth
).str();
+ LastCoiReentryDate =
calendar_date(b->yare_input_.LastCoiReentryDate).str();
+ ListBillDate = calendar_date(b->yare_input_.ListBillDate
).str();
+ InforceAsOfDate = calendar_date(b->yare_input_.InforceAsOfDate
).str();
// irr_initialized_ is deliberately not set here: it's not
// encompassed by 'FullyInitialized'.
diff --git a/ledger_variant.hpp b/ledger_variant.hpp
index d4fc641..6d0d7db 100644
--- a/ledger_variant.hpp
+++ b/ledger_variant.hpp
@@ -137,8 +137,8 @@ class LMI_SO LedgerVariant final
std::vector<double> KFactor;
// Nonscalable scalars.
- double LapseMonth;
- double LapseYear;
+ double LapseMonth;
+ double LapseYear;
private:
void Alloc(int len);
@@ -147,12 +147,12 @@ class LMI_SO LedgerVariant final
void Init();
// Nonscalable scalars.
- double InitAnnLoanCredRate;
- double InitAnnGenAcctInt;
- double InitAnnSepAcctGrossInt;
- double InitAnnSepAcctNetInt;
- double InitTgtPremHiLoadRate; // Rate on first dollar, at maximum premium
tax rate.
- double InitMlyPolFee; // Nonscalable: policy parameter (unlike
'PolicyFee').
+ double InitAnnLoanCredRate;
+ double InitAnnGenAcctInt;
+ double InitAnnSepAcctGrossInt;
+ double InitAnnSepAcctNetInt;
+ double InitTgtPremHiLoadRate; // Rate on first dollar, at maximum premium
tax rate.
+ double InitMlyPolFee; // Nonscalable: policy parameter (unlike
'PolicyFee').
// Special cases.
int Length;
- [lmi-commits] [lmi] master 11c3b2d 07/13: Mark skipped initializations uniformly, (continued)
- [lmi-commits] [lmi] master 11c3b2d 07/13: Mark skipped initializations uniformly, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 1492645 04/13: Declare two variables in dependency order, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 25cc457 05/13: Mark formerly-missing variables as dynamically-assigned, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 278dab3 10/13: Explain some curious comments, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 180c84e 03/13: Initialize ledger members in declaration order, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 517a8fe 01/13: Remove a defect marker: refractory compositing issue [347], Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master e09ae5e 09/13: Improve documentation, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 664a0df 11/13: Expunge unused ledger vector 'TgtPrem', Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 45cf6f4 13/13: Move initialization of some ledger members, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master 1611b81 12/13: Expunge several unused ledger scalars, Greg Chicares, 2020/04/14
- [lmi-commits] [lmi] master e653634 08/13: Regularize whitespace,
Greg Chicares <=