[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master fd6ea84 3/4: Specify certain calculations for
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master fd6ea84 3/4: Specify certain calculations for the new MDB DBO |
Date: |
Fri, 2 Nov 2018 07:42:53 -0400 (EDT) |
branch: master
commit fd6ea844470ddf59a557cd9f0fc184583a7efc59
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>
Specify certain calculations for the new MDB DBO
---
ihs_avmly.cpp | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/ihs_avmly.cpp b/ihs_avmly.cpp
index d9bee90..651d20c 100644
--- a/ihs_avmly.cpp
+++ b/ihs_avmly.cpp
@@ -875,9 +875,14 @@ void AccountValue::TxOptionChange()
{
ChangeSpecAmtBy(std::max(0.0, CumPmts));
}
- else if(mce_mdb == old_option) // DBO3 !! reconsider
+ else if(mce_mdb == old_option)
{
- alarum() << "MDB DBO not yet implemented." << LMI_FLUSH;
+ // Do nothing. An argument could be made for this
+ // alternative:
+ // TxSetDeathBft(); // update DBReflectingCorr
+ // ChangeSpecAmtBy(std::max(0.0, DBReflectingCorr));
+ // but that takes more work and is not clearly
+ // preferable.
}
else
{
@@ -912,9 +917,10 @@ void AccountValue::TxOptionChange()
// Do nothing.
}
break;
- case mce_mdb: // DBO3 !! reconsider
+ case mce_mdb:
{
- alarum() << "MDB DBO not yet implemented." << LMI_FLUSH;
+ // Change spec amt by its additive inverse, making it 0.
+ ChangeSpecAmtBy(-(ActualSpecAmt + TermSpecAmt));
}
break;
}
@@ -1610,9 +1616,13 @@ void AccountValue::TxSetDeathBft()
DB7702A = ActualSpecAmt + std::max(0.0, CumPmts);
}
break;
- case mce_mdb: // DBO3 !! reconsider
+ case mce_mdb:
{
- alarum() << "MDB DBO not yet implemented." << LMI_FLUSH;
+ // Specamt is a floor under DB (and therefore zero here)
+ // because this option defines the DB as the minimum
+ // required by the corridor (but not less than zero).
+ DBIgnoringCorr = 0.0;
+ DB7702A = 0.0;
}
break;
}
@@ -2541,9 +2551,11 @@ void AccountValue::TxTakeWD()
}
}
break;
- case mce_mdb: // DBO3 !! reconsider
+ case mce_mdb:
{
- alarum() << "MDB DBO not yet implemented." << LMI_FLUSH;
+ // Do nothing. Every other DBO conditionally decreases the
+ // specamt, but the mce_mdb specamt is zero by definition
+ // and cannot be decreased.
}
break;
}