[comp.sys.handhelds] Time Value of Money

gerson@parc.xerox.com (Dan Gerson) (07/12/90)

Here is yet another version of the TVM calculations available on HP's financial
calculators (the TVM equation was copied from the HP-12C manual).  This displays
all the variables' values when any are changed, and permits you to solve for any
unknown given the other values.  It also supports different number of
compounding periods per year, giving annualize displays and inputs for the
number of payments and interest rates.

To use it, when you go into its directory, eval CST to get the custom menu.
Then you can store into any variable by entering the number and then the menu
item.  Right-shifted menu items solves the variable.  Left-shifted N or I
permits you to enter annualized figures (similar to the blue shifted variables
on the HP-12C).  {N} is the number of payment periods, {I} is the interest rate
per period, {PMT} is the payment per period, {PV} is the principal value, {FV}
is the future value, and {N/YR} is the number of payment periods per year.

You can also directly enter in values using the VAR menu if you don't want the
display, using CST just to solve unknowns.  I suppose this could have a better
interface.

Checksum: #B7B4h (I think.  Alright, so I'm lazy.)
Size: 1163
------------------------------------------------------------
%%HP: T(3)A(D)F(.);
DIR
  NPYR 12
  N 0
  I 0
  PMT 0
  PV 0
  FV 0
  DVALS
    \<< CLLCD RCLF 0
FIX "  N = " N +
" (" + 1 FIX N NPYR
/ + "yrs)" + 1 DISP
3 FIX "  I = " I +
" (" + I NPYR * +
")" + 2 DISP 2 FIX
"PMT = " PMT + 3
DISP " PV = " PV +
4 DISP " FV = " FV
+ 5 DISP 0 FIX
"N/yr= " NPYR + 6
DISP 3 FREEZE STOF
    \>>
  STOD
    \<< STO DVALS
    \>>
  CST { { "N" {
    \<< 'N' STOD
    \>>
    \<< NPYR * 'N'
STOD
    \>>
    \<< 'N' TVM
    \>> } } { "I" {
    \<< 'I' STOD
    \>>
    \<< NPYR / 'I'
STOD
    \>>
    \<< 'I' TVM
    \>> } } { "PMT" {
    \<< 'PMT' STOD
    \>>
    \<< 'PMT' STOD
    \>>
    \<< 'PMT' TVM
    \>> } } { "PV" {
    \<< 'PV' STOD
    \>>
    \<< 'PV' STOD
    \>>
    \<< 'PV' TVM
    \>> } } { "FV" {
    \<< 'FV' STOD
    \>>
    \<< 'FV' STOD
    \>>
    \<< 'FV' TVM
    \>> } } { "N/YR"
{
    \<< 'NPYR' STOD
    \>> } } }
  TVM
    \<< 'EXP(-N*LNP1(
I/100))' \-> ivar s
      \<< '-(.01*(s*
FV+PV)/(1-s)*I)=PMT
' ivar 0 ROOT DVALS
      \>>
    \>>
END