MathU 12D 2.2 |
MathU 12D is a deluxe financial RPN calculator written from the ground up to behave exactly like and surpass the classic HP-12C.
MathU 12D uses the same RPN (Reverse Polish Notation) entry system and supports the same mathematical functions and the same button layout as the HP-12C. In fact, if you are familiar with the HP-12C you will be able to use MathU 12D right away.
MathU 12D also adds some big improvements over the original HP-12C:
What was new in Version 2.0?
MathU 12D runs on iPhone, iPad or iPod touch running iPhone OS (iOS) version 9.3 or higher.
MathU 12D is available exclusively through the App Store.
To purchase, open the App Store within iTunes or on the iPhone. Search for "MathU". Installation happens automatically when you purchase MathU 12D through the App Store.
Although care has been taken to insure a bug-free program, Creative Creek, LLC makes no warranty whatsoever, either implied or expressed, as to the correct functioning of this software. When using this software, the user assumes all responsibility for any damages caused, directly or indirectly, by its use.
MathU 12D is copyrighted. Copyright laws apply and the software shall be classified as proprietary material.
When you purchase MathU 12D you are granted a non-exclusive, nontransferable license to use the software and documentation for use in accordance with this License. This License allows use of the software by a single user unless otherwise specified by the description provided at time of purchase.
MathU, MathU 12D and Creative Creek are trademarks of Creative Creek, LLC. iPhone and iPod touch are trademark of Apple Inc. or its subsidiaries.
MathU 12D uses a click sound derived from click 1 d.wav by TicTacShutUp.
See the Creative Creek web site for up-to-date information about MathU 12D. If you have questions, suggestions, bug reports, or you just want to tell us how you much you like MathU 12D you can contact us on the web at http://www.creativecreek.com/.
The Digits setting affects the number of decimal digits shown in the display. It does not affect the value of the underlying register. Set it to any number between 0 and 9 to display that many digits. Set it to ALL to display all the digits.
The number of decimal digits can also be set using f 0 through f 9. These key presses also set the number format to fixed notation FIX.
Similarly, the sequence f . sets the number format to scientific notation SCI.
The Format settings affects whether numbers are displayed in fixed notation or scientific or engineering notation (a special type of scientific notation). When using scientific notation, the values are displayed as a significant multiplied by a power of 10. Take for example, the number 12,402.15
FIX notation
In scientific notation, the value is 1.240215 x 10^{4} and it looks like this
SCI notation
in the display. Note that the exponent value is in its own separate area on the right of the display.
Engineering notation is similar to the scientific notation except that the exponent is always a multiple of 3. This is quite handy when viewing currency since values will be expressed in thousands or millions, etc. For example, this is the way the example looks in engineering notation
ENG notation
The thousands and decimal separators used to display numbers in MathU 12D follow the region settings within the Settings app on your iPhone or iPad. Open the Settings app and then navigate to General->Language & Region->Region to change how numbers are displayed.
The Payments Due setting affects of the timing of payments when performing financial calculations.
When set to BEGIN, the payments are due at the beginning of each compounding period. This is also known as Annuity Due. When this choice is selected, the BEGIN indicator is turned on in the display. The sequence g BEG sets this mode from the keypad.
When set to END, the payments are due at the end of each compounding period. This is also known as Ordinary Annuity and used commonly for loans and mortgages. When this choice is selected, the BEGIN indicator is turned off in the display. The sequence g END sets this mode from the keypad.
The Date Format setting affects the way that values are interpreted and displayed as dates. MathU 12D uses a packed numerical format for dates where the digits in the number are interpreted as months, days and years. Two different formats are provided.
When the M.DY format is active (the default), values are interpreted according to the scheme MM.DDYYYY. Thus the value 11.062001 is interpreted as the date November 6, 2001. Note that 4 digit years are required and that 2 digits must be entered for the day. You might also want to set the display to fixed notation with 6 decimal digits f 6 so you can see the entire date. The sequence g M.DY sets this mode from the keypad.
When the D.MY format is active, values are interpreted according to the scheme DD.MMYYYY. Thus the value 11.062001 is interpreted as the date 11 June 2001. When D.MY format is selected, the D.MY indicator will be turned on in the display. The sequence g D.MY sets this mode from the keypad.
When ON button click sounds are played as a button is tapped.
The Display More Stack settings controls whether one or two stack lines are shown in the display. When ON, both the X and Y stack registers are displayed. When OFF, only the X stack register is displayed.
The settings also affects the number of program lines displayed when editing a program.
A numeric value is entered tapping the digits keys 0 through 9 and the decimal . in sequence from left to right. Any thousands separator (if present) is not entered. However, MathU 12D automatically adds the thousands separator as you enter the number to aid entry. As an example (in US Region), the number 12,350.78 is entered using the keystokes
1 2 3 5 0 . 7 8
You can change the sign of a number by tapping the CHS key. Negative numbers are entered by following the digits by the CHS key. For example, to enter the value -4.12 you would tap
4 . 1 2 CHS
If you make a mistake while entering a number, tap the CLX key to clear the x register and enter the correct value.
Alternatively, you can recall the last x value used in a computation via g LST&nbrsp;X and then apply the inverse of the last operand. For instance, if you mistakenly subtracted a number (even if you don't remember which number you subtracted), you can recall it using LST&nbrsp;X and add it back in using +.
To enter a large value in scientific notation, use the EEX (enter exponent) key to separate the mantissa and exponent. For example, the keystrokes,
1 . 3 5 EEX 1 9
is used to enter the value 1.35×10^{19}
Sometimes scientific notation is also written as 1.35e19 where the "e" indicates the following numbers are part of the exponent. Small numbers like -6.52×10^{-8} (or -6.52e-8) are entered similarly except that the CHS is tapped after the exponent digits are entered.
6 . 5 2 CHS EEX 8 CHS
Note that in order to enter a negative small number you must use CHS twice: Once after the mantissa is entered and before EEX is tapped, and then again after the exponent is entered.
To add two numbers together using the RPN entry system, you first enter the two numbers you would like to add followed by the + key. Separate the numbers with the ENTER key like this
5 ENTER 4 +
which computes the addition of 5 and 4 by "applying the + function to the two values on the stack".
Note that the stack drops when the addition is performed and that the t stack value is replicated. The result is placed into the x register. All of the arithmetic operators (+ − × ÷) work like this. They pull their values from the stack and push the result onto the stack
Most buttons on the MathU 12D keypad can execute 3 functions. Tapping the key by itself executes the function drawn in white on the top. To access the gold or blue functions press the f or g shift keys first.
For example, the key labeled 1/x executes 1/x when tapped directly, the f YTM yield function when preceeded by f or the g e^{x} exponential function when preceeded by g.
When you press f or g an f or g will show in the display. To cancel the shift prefix, tap PREFIX.
MathU 12D uses the Reverse Polish Notation (RPN) entry system to enter and compute its results. While it takes some time to get used to, your confidence in the computed results will improve as you master RPN. The reason for this is that all the partial results are displayed as you work your way through a complicated formula.
As an example of a complicated formula, let's compute the US interest rate for a Canadian mortage where interest is compounded semi-annually instead of monthly. The formula is
US Rate = 1200 × ((1 + Can.Rate÷200)^{(1/6)} - 1)
The key to computing this using the RPN system is to work from the inside out. Thus start with the innermost parentheses and work your way out. You must also remember that, by convention, multiplication and division have higher precedence so perform those first. Here are the keystokes and stack values displayed as the formula is computed for a Canadian mortgage at 6.25%:
Keystokes | Display | |
---|---|---|
6.25 ENTER | 6.25 | Canadian interest rate |
200 | 200 | |
÷ | .03125 | Semi-annual interest rate |
1 | 1 | |
+ | 1.03125 | Inner parenthetized expression |
6 1/x | 0.16667 | Power |
y^{x} | 1.00514 | Partial result |
1 | 1 | |
- | 0.00514 | Next partial result |
1200 | 1,200 | |
× | 6.17014 | U.S. Mortgage Rate |
Note that partial results are displayed as the computation proceeds. Because of this, you have a chance of seeing an error early on while it is still easy to back-up, recover and continue. That is the power of the RPN approach.
MathU 12D supports copying and pasting numbers from other applications on the iPhone, iPad or iPod touch. To copy the value currently displayed, double tap the display and then select "Copy" from the menu that pops up.
To paste a value into the display that was copied from another application, double tap the display and choose "Paste". If "Paste" is not available, it means that the system pasteboard does not contain a number recoginizable to MathU 12D.
MathU 12D has 25 registers -- 10 primary registers, 10 secondary registers and 5 financial registers. The registers are shared in that they can be used to store your own values but they are also used by some of the functions on the calculator. Namely, all 20 primary and secondary storage registers may be used to store up to 20 cash flows and some of the secondary registers are used to store values for the statistical functions (see picture below). MathU 12D also has five additional registers dedicated to the financial functions N, i, PV, PMT and FV.
To safely store values in the registers while still performing cash flow analysis, store your values in the uppermost registers. The cash flow functions use registers 0-n where n is the number of cash flows. All registers greater than n will be available.
To safely store values in the registers while still accumulating statistical sums, store your values in the registers 0 and 7-19. This avoids the registers shared with the statistics functions.
The 10 primary registers are accessed by pressing STO or RCL followed by the register number 0 through 9. To access the secondary registers (registers 10 through 19) press STO . followed by the register number 0 through 9. The financial registers are accessed by pressing STO or RCL followed by the financial function (n, i, PV, PMT or FV).
Tap RCL RCL to display the stack and registers in a scrolling list.
Tap the Done button to return to the keypad.
The 10 primary registers are accessed by pressing STO or RCL followed by the register number 0 through 9. To access the secondary registers (registers 10 through 19) press STO . followed by the register number 0 through 9. The financial registers are accessed by pressing STO or RCL followed by the financial function (n, i, PV, PMT FV, CF0, CFj or Nj).
As a special case, RCL Σ+ recalls the sum of x (Σx) and sum of y (Σy) into the x and y registers respectively.
You can perform arithmetic computations as you store a value in a register. For example,
STO + 4
adds the current value of the x register to storage register 4. Similarly,
STO − 4
STO × 4
STO ÷ 4
subtracts, multiplies or divides the current value of the x register from the value in storage register 4. The result is placed into storage register 4.
Register arithmetic works with the primary and secondary registers as well as the financial registers.
MathU 12D supports several functions that clear the registers
To clear all the registers and the stack, tap f clear REG.
To clear only the financial registers and reset the odd period int and annuity modes, tap f clear FIN.
To clear only the statistics registers, tap f clear Σ.
To clear only the x stack register, tap CLX.
The stack is central to the working of the RPN (Reverse Polish Notation) entry system. Most functions on the calculator pull their values from the stack and push their results onto the stack.
MathU 12D has a 4 high stack. As shown in the picture, the registers that make up the stack are given the names x, y, z and t. The value of the x register is shown in the display. If you have the Show More Stack setting ON, then both the x and y registers are displayed.
Some functions (like 1/x) use only the x register to compute their value. Other functions (like y^{x}) use both the x and y registers to compute their result. The first type of function is called a unary function while the second type is called a binary function.
During number entry, the ENTER key is used to indicate the end of one number and the beginning of the next one. Its effect on the stack is to push a copy of the current x register onto the stack.
Note how all the other stack registers are moved up as well. The ENTER function also readies the x register to be overwritten by the next value. As soon as you tap a number, the x register is replaced.
To clear the x stack register, tap CLX.
To exchange the contents of the x and y register (say for example to place the divisor into the x register), tap x<>y.
To roll the stack down, tap R↓.
To push the current x value into the y register, tap ENTER.
When a binary computation is performed that causes the stack to drop, the topmost register is automatically replicated. You can take advantage of this behavior to do repeated calculations.
To perform a repeated calculation, load the stack completely with the common value and then enter the first value and apply the operand. Press the operand again to compute the next number in the series. Repeat for each number in the series.
Example: To generate a series of numbers that differ by 3,
Keystokes | Display | |
---|---|---|
3 | 3 | Load stack with the difference |
ENTER | 3.0 | |
ENTER | 3.0 | |
ENTER | 3.0 | Now the entire stack is filled with 3.0 |
2 | 2 | Enter a starting number |
+ | 5.0 | |
+ | 8.0 | |
+ | 11.0 | |
+ | 14.0 | etc. |
At the end of the series of computations the stack looks like this
where the difference (3.0) continues to be replicated as the stack drops with each computation.
The financial functions are governed by the equation,
PV*(1+i)^{N} + PMT/i*((1+i)^{N}−1) + FV = 0
This equation is used when the annuity mode (BEGIN/END preference) is set to ordinary annuity (payments due at the end of the period: END). When the annuity mode is annuity due (payments due at the beginning of the period: BEG) then PMT in this equation is modified to be PMT * (1 + i).
The financial functions have two modes: input mode and calculation mode. MathU 12D is in input mode if a number has been keyed into the calculator or any non-financial functions have been executed. Executing one of the main financial functions
n, i, PMT, PV, or FV
stores the displayed value in the associated financial register. MathU 12D is in calculation mode after any financial functions have been executed and before any other functions that change the stack are executed. The result of a financial computation is pushed onto the stack:
Most of the time this should behave as you would expect. However, if for some reason MathU 12D stores a value when you intended to compute one, simply execute the financial function again to obtain the desired result.
Financial problems can be thought of as a series of cash flows. For example, a mortgage consists of a large positive cash flow (the loaned amount) followed by a series of monthly negative cash flows (the payments) with possibly a final negative cash flow at the end (the balloon payment). The diagram below illustrates this situation.
Positive cash flows (amounts you receive) are shown as upward pointing arrows. Negative cash flows (amounts you pay) are shown as downward pointing arrows. The horizontal axis of the diagram is time, with time increasing to the right. The time between the equally spaced payments is called the period.
For the problem to be solvable with MathU 12D, there must be at least one cash flow in each direction. It is always possible to add a present value or future value cash flow to meet this requirement. Think about your problem to determine which is more appropriate.
Mortgages and Loans are a type of Time Value of Money (TVM) computation where payments are due on a regular schedule. For example, a mortgage consists of a large positive cash flow (the loan amount) followed by a series of monthly negative cash flows (the payments) with possibly a final negative cash flow at the end (the balloon payment). The diagram below illustrates this situation.
Example 1: Suppose you are interested in determining the payment for a car loan of $18,500 at 7.25% interest for 5 years. The keystrokes to solve this problem using MathU 12D are
Keystokes | Display | |
---|---|---|
f FIN | Reset the financial registers | |
5 ENTER | 5 | Number of periods (in years) |
12 × n | 60 | Set the number of periods (in months) |
7.25 ENTER | 7.25 | Interest rate per year. |
12 ÷ i | .60417 | Set the interest rate per month |
18500 PV | 18,500. | Set the pricinpal or present value of the loan |
PMT | -368.51 | Compute the payment per period. The value is negative because the payments are made in the opposite cash flow direction from the principal. |
Note: The convenience functions 12x and 12÷ could have been used in steps 2 and 4 to replace the keystrokes
12 × n and 12 ÷ i
respectively.
Example 2: What is the payment if you are willing to pay a balloon payment of $2,000 at the end of the loan?
Keystokes | Display | |
---|---|---|
2000 CHS FV | -2,000.00 | Set the future value (balloon payment). The value is negative because this is money you will pay out. |
PMT | -340.75 | Compute the new payment per period. |
Example 3: How much interest do you end up paying with the balloon payment?
Keystokes | Display | |
---|---|---|
n PMT × | -20,445.17 | Total of all payments. |
RCL FV + | -22,445.17 | Total payments including balloon payment. |
RCL PV + | -3,945.17 | Add loan value to obtain the total paid in interest. |
Example 4: To compute the effective interest rate in an IRA account that you put $2000 into each year, you will need to enter the yearly payments as well as the current value of the account as a positive future value (FV) even though you haven't sold the assets in the account. To make the example concrete, suppose that you started your IRA in 1985 with a $10,000 rollover and that the value in the account is $80,000 in the year 2001.
Keystokes | Display | |
---|---|---|
f FIN | Reset the financial registers | |
2001 ENTER | 2,001. | To start with, determine the number of compounded years. Enter ending year. |
1985 − n | 16. | Subtract starting year and then set the number of periods (in years) |
10000 CHS PV | -10,000. | Set the starting value for the account. The value is negative since you added value to the account with the rollover. |
2000 CHS PMT | -2,000. | Set the annual contribution as the payment. |
80000 FV | 80,000. | Set the curent value of the account. The value is positive since this is money you would receive if you sold all the assets in the account. |
i | 6.39 | Compute the effective annual rate of return in the account, i.e., 6.39%. |
The n function is used to store or compute the number of periods in a mortgage or loan. Enter a number and then tap n to store a value in the financial n register. If no value is entered, tapping n will compute the number of periods based on the values in the other financial registers. See Mortgages and Loans for details.
While you can store a non-integer value in n, the value computed by n is always an integer (unless you set the Odd Period Int preference to NONE). For information on how to work with loans that involve a odd-length first period see Odd Period Loans.
STO n stores the current value of the x register into the n register. Storage register arithmetic like STO + n also works.
RCL n pushes the value of the n register onto the stack.
The function 12× can also be used to store 12 times the current x value into the n register. It makes it easier to enter the number of periods in a monthly mortgage using the number of years in the loan.
The i function is used to store or compute the interest rate in a mortgage or loan. Enter a number and then tap i to store a value in the financial i register. If no value is entered, tapping i will compute the interest rate based on the values in the other financial registers. See Mortgages and Loans for details.
STO i stores the current value of the x register into the i register. Storage register arithmetic like STO + i also works.
RCL i pushes the value of the i register onto the stack.
The function 12÷ can also be used to store 1/12 of the current x value into the i register. It makes it easier to enter the interest rate per period for a monthly mortgage based on the annual interest rate.
The PMT function is used to store or compute the payment per period for a mortgage or loan. Enter a number and then tap PMT to store a value in the financial PMT register. If no value is entered, tapping PMT will compute the payment per period based on the values in the other financial registers. See Mortgages and Loans for details.
STO PMT stores the current value of the x register into the PMT register. Storage register arithmetic like STO + PMT also works.
RCL PMT pushes the value of the PMT register onto the stack.
The PV function is used to store or compute the principal or present value for a mortgage or loan. Enter a number and then tap PV to store a value in the financial PV register. If no value is entered, tapping PV will compute the principal value based on the values in the other financial registers. See Mortgages and Loans for details.
STO PV stores the current value of the x register into the PV register. Storage register arithmetic like STO + PV also works.
RCL PV pushes the value of the PV register onto the stack.
The FV function is used to store or compute the future value or balloon payment for a mortgage or loan. Enter a number and then tap FV to store a value in the financial FV register. If no value is entered, tapping FV will compute the future value based on the values in the other financial registers. See Mortgages and Loans for details.
STO FV stores the current value of the x register into the FV register. Storage register arithmetic like STO + FV also works.
RCL FV pushes the value of the FV register onto the stack.
The INT function is used to compute accrued interest on both a 360-day and 365-day basis. The function uses values in the n, i, and PV to define the problem.
When n is not an integer, MathU 12D treats the fractional part of n as an intial odd period. The odd period is the fraction of a period between the date interest begins to accrue and the beginning of the first payment period. By default, the interest during the odd period is computed using the simple interest formula:
odd period interest = interest rate per period * odd fraction of a period
Compound interest can also be used by tapping STO EEX or by setting the Odd Period Int preference to COMPOUNDED (C indicator will turn on in the display). When the C indicator is not on, simple interest is used. Tap STO EEX again to return to SIMPLE interest.
When the Odd Period Int preference is set to NONE (N indicator will turn on in the display), the TVM equation is solved directly with the given n and, when computing n, a non-integer n can be returned.
Odd period computations are taken into account when computing i, PV, PMT and FV. Except when NONE is set, the computation of n always rounds up to the nearest whole period so, to take advantage of the odd period computations, you must explicitly store a non-integer value in n.
Because the number of periods is rounded up, the final payment may be smaller than the previous N-1 payments.
Example: You take out a 3 year loan for $2,000 at 5% interest on Apr 3, 2001 but the first loan period doesn't start until Apr 15, 2001. The first 15−3 = 12 days are an odd period. Simple interest is accrued during those first few days. Compute the monthly payment. For comparison purposes, also determine the payment without the odd period.
Keystokes | Display | |
---|---|---|
f FIN | Reset the financial registers. | |
2000 PV | 2,000. | Set the amount of the loan. |
5 12÷ | .4167 | Set the interest rate per month. |
3 12× | 36. | Set the period of the loan (without the odd period). |
PMT | -59.94 | Compute the monthly payment without taking into account the odd period. |
4.032001 ENTER | 4.032001 | Even though this example is simple, let's use the ΔDYS function to compute the number of days in the odd period. Enter the initial date (assuming the date format setting is M.DY). |
4.152001 | 4.152001 | Starting date of loan (end of odd-period) |
g ΔDYS | 12. | Compute the number of days in the odd period. |
30 ÷ | 0.4 | Fractional odd period (using a 30 day month basis) |
STO + n | 36.4 | Add odd period to n. |
PMT | -60.04 | Monthly payment taking into account the odd period (with simple odd-period interest). |
The entries in an amortization table can be computed using AMORT. An amorization table shows how each payment is split between interest and principal as payments are made. It also shows the remaining principal in the loan. Here is an example amortizaton table:
Period | Interest | Principal | Payment | Remaining Principal |
---|---|---|---|---|
1 | $-111.77 | $-256.74 | $-368.51 | $18,243.26 |
2 | $-110.22 | $-258.29 | $-368.51 | $17,984.97 |
3 | $-108.66 | $-259.85 | $-368.51 | $17,725.12 |
4 | $-107.09 | $-261.42 | $-368.51 | $17,463.70 |
AMORT computes the amount paid against the principal and the amount of interest paid for a series of payments and bases its calculation on the values in the financial registers. It also updates the PV register to keep track of the remaining principal and updates n to keep track of the payments made so far.
The AMORT function pushes the amount paid in interest into the x register and the amount paid against the principal into the y register. x+y will always equal PMT. This leaves the number of payments just amortized in the z register:
In addition, the financial n register and the financial PV register are updated to contain the total number of periods amortized so far and the remaining balance. Because of this, the rows in the amortization table can be computed by repeatedly executing AMORT.
Follow these steps to compute rows of the table:
Note: The AMORT function automatically rounds its results based on the digits preference setting. This could result in answers that differ slightly (by a few cents) from the amortization performed by your lending institution (since they might be using a different rounding rule).
Example: Suppose you are interested in determining the amortization table for a car loan of $18,500 at 7.25% interest for 5 years. Here are the first few entries in the amortization table:
Period | Interest | Principal | Payment | Remaining Principal |
---|---|---|---|---|
1 | $-111.77 | $-256.74 | $-368.51 | $18,243.26 |
2 | $-110.22 | $-258.29 | $-368.51 | $17,984.97 |
3 | $-108.66 | $-259.85 | $-368.51 | $17,725.12 |
4 | $-107.09 | $-261.42 | $-368.51 | $17,463.70 |
To compute the amortization table values:
Keystokes | Display | |
---|---|---|
f FIN | Clear the financial registers. | |
f 2 | Set the number of digits to round the result by changing the Digits preference. For dollars and cents, a Digits setting of 2 is normally used. | |
18500 PV | 18,500.00 | Set the current amount due on the loan (principal value). |
7.25 12÷ | 0.60 | Set the monthly interest rate. |
5 12× | 60.00 | Set the number of months (periods) in the loan. |
PMT | -368.51 | Compute the monthly payment. |
0 n | 0.00 | Set the n financial register to the beginning month in the amortization. |
1 AMORT | -111.77 | Enter the number of payments to amortize and then execute AMORT. The amount paid in interest is shown. |
x<>y | -256.74 | View the amount paid against the principal. |
RCL PV | 18,243.26 | View the remaining principal balance. |
RCL n | 1 | View the number of payments so far. |
1 AMORT | -110.22 | Enter the number of payments to amortize and then execute AMORT again to get next row. |
x<>y | -258.29 | View the amount paid against the principal. |
RCL PV | 17,984.97 | View the remaining principal balance. |
Repeat the last three steps to get the remaining rows of the table.
Make sure the annuity (payments due) preference is set to BEG for annuity due loans or END for ordinary annuity loans.
Using MathU 12D, you can compute the bond price, the interest accrued since the last interest date and the bond yield.
The PRICE function is used to compute the price and interest based on the annual coupon rate (stored in the PMT register), desired yield to maturity (stored in the i register) and purchase and redempution dates from the stack. The computations assume a semiannual coupon payment and use an actual/actual basis as is common for U.S. Treasury Bonds and U.S. Treasury Notes. The prices are based on a redemption (par) value of 100.
The PRICE function stores the bond price in the x stack register. It is also stored into the PV register. The interest accrued since the last interest (coupon) date is stored in the y stack register. You can access it via x<>y or R↓. If the Show More Stack setting is ON both the price and interest are shown in the display. To add the interest to the price, tap + after tapping PRICE.
Example: How much should you pay on Apr 15, 2000 for a 4.25% Treasury bond with maturity date of Sept 4, 2003, if you would like a yield of 6%?
Keystokes | Display | |
---|---|---|
f FIN | Reset the financial registers. | |
4.25 PMT | 4.25 | Set the annual coupon rate as a percentage. |
6 i | 6.00 | Set the desired yield as a percentage. |
4.152000 ENTER | 4.152000 | Enter the purchase date (using MM.DDYYYY or DD.MMYYYY format). |
9.042003 | 9.042003 | Enter the maturity date. |
f PRICE | 94.70 | The bond price is stored in the x register and the interest since the last coupon is stored in the y register. |
x<>y | 0.49 | View the interest since the last coupon. |
The YTM function is used to compute the bond yield to maturity based on the quoted price (stored in the PV financial register), the coupon rate (stored in the PMT financial register) and the purchase and redempution dates from the stack. The result is placed into the stack x register as well as stored in the financial i register.
Example: What is the Yield To Maturity of a 4.25% U.S. Treasury Bond with maturity date of Sept 4, 2003 that is selling at a par value of $90.16 on Apr 15, 2000?
Keystokes | Display | |
---|---|---|
f FIN | Reset the financial registers. | |
4.25 PMT | 4.25 | Set the annual coupon rate as a percentage. |
90.16 PV | 90.16 | Set the quoted price. |
4.152000 ENTER | 4.152000 | Enter the purchase date (using MM.DDYYYY or DD.MMYYYY format). |
9.042003 | 9.042003 | Enter the maturity date. |
f YTM | 7.60 | The yield is stored in the x register and also placed into the i register. |
MathU 12D can compute the depreciation of an asset and the remaining depreciable value using several common methods. The methods supported are: Straight-line, declining balance, and Sum-Of-the-Years-Digits methods. In all cases you:
Example: A $4,500 computer is depreciated over 5 years. What is the depreciation and remaining value for the first 3 years assuming the salvage value will be $100? Use the Declining Balance method with a 150% declining balance.
Keystokes | Display | |
---|---|---|
f FIN | Reset the financial registers. | |
4500 PV | 4,500. | Store the original cost of the computer. |
100 FV | 100. | Store the salvage value of the computer. |
5 n | 5. | Store the useful life (number of years to depreciate). |
150 i | 150. | Store the declining balance percentage rate. |
1 | 1 | Enter the year number for the first year |
f DB | 1,350.00 | Depreciation for the first year. |
x<>y | 3,050.00 | Remaining depreciable value after the first year. |
2 f DB | 945.00 | Depreciation for the second year. |
x<>y | 2,105.00 | Remaining depreciable value after the second year. |
3 f DB | 661.50 | Depreciation for the third year. |
x<>y | 1,443.50 | Remaining depreciable value after the third year. |
MathU 12D includes functions to compute the Internal Rate of Return (IRR) and Net Present Value (NPV) of a series of cash flows. The cash flows must occur at regular intervals but the value of each cash flow can be different. A cash flow can be zero. You use the cash flow functions CF0, CFj and N_{j} to define them.
Positive cash flows (amounts you receive) are shown as upward pointing arrows. Negative cash flows (amounts you pay) are shown as downward pointing arrows. The horizontal axis of the diagram is time, with time increasing to the right. The time between the equally spaced payments is called the period.
Up to 20 cash flows can be entered. Bigger problems can be solved if there are repeated equal cash flows. In this case, enter the number of consecutive cash flows (Nj) just after entering the cash flow (CFj). Up to 20 distinct cash flow amounts can be entered.
For the problem to be solvable with MathU 12D, there must be at least one cash flow in each direction. Not all cash flow situations have a solution. Depending on the values and the timing of the cash flows there could be a single solution, multiple solutions, or no solution. If no solution is found, an error "-e-" is displayed.
To enter cash flows:
The cash flows are stored into registers 0 through 19. If there is a 20th cash flow, it is stored into the financial FV register. The counts are stored in hidden registers in the calculator. The total number of cash flows is stored in the financial N register.
You can review the cash flow counts and their values by storing the number of the cash flow to be reviewed in the financial N register (STO n) and executing RCL Nj and RCL CFj. Each time RCL CFj is executed, the financial N register is decremented. Repeated executions of RCL CFj will display each cash flow in reverse order. Remember to reset the financial N register to the total number of cash flows before executing NPV or IRR.
You can also access the cash flows by directly recalling them from the storage registers using RCL n or RCL .n or by displaying all the registers using RCL RCL.
The internal rate of return (IRR) is the discount rate where the net present value is zero. MathU 12D computes the internal rate of return based on the cash flows entered via CF0, CFj and Nj (see Entering Cash Flows). To compute the IRR, enter the cash flows and then execute the IRR function. The interest rate in percent per period is pushed onto the stack and also stored in the financial i register.
Example: Suppose the six cash flows depicted in the following diagram illustrate the cash flows possible from an investment property. An initial investment in the amount of $-10,000 (CF_{0}) is used to buy the property which nets $4,000 (CF_{1}), $2,000 (CF_{2}), $3,500 (CF_{3}), $6,000 (CF_{4}) and $4,000 (CF_{5}) for 5 years. What is the internal rate of return (IRR)?
Keystokes | Display | |
---|---|---|
f clear REG | Clear the financial and cash flow registers. | |
10000 CHS Cf0 | 10,000. | Enter the initial cash flow. |
4000 CFj | 4,000. | Enter the first cash flow. |
2000 CFj | 2,000. | Enter the second cash flow. |
3500 CFj | 3,500. | Enter the third cash flow. |
6000 CFj | 6,000. | Enter the fourth cash flow. |
4000 CFj | 4,000. | Enter the fifth cash flow. |
RCL n | 5. | Check the total number of periods. |
f IRR | 25.1837 | Compute the Internal Rate of Return. |
The net present value (NPV) is the discounted value of a series of cash flows in the future. MathU 12D computes the internal rate of return based on the cash flows entered via CF0, CFj and Nj (see Entering Cash Flows). The discount rate used is taken from the financial i register. Once the cash flows have been entered, enter the desired discount rate in percent using STO i and then execute NPV. The net present value is pushed onto the stack and also stored in the financial PV register.
If the net present value is positive, then the series of cash flows produce a better return than the assumed discount rate. Conversely, a negative net present value indicates that the return is worse than the assumed discount rate. Use IRR to compute the actual discount rate implied by the series of cash flows.
Example: Suppose that you wish to compare two investments. The first investiment opportunity involves the six cash flows depicted in the following diagram from an investment property. An initial investment in the amount of $-10,000 (CF_{0}) is used to buy the property which nets $4,000 (CF_{1}), $2,000 (CF_{2}), $3,500 (CF_{3}), $6,000 (CF_{4}) and $4,000 (CF_{5}) for 5 years.
The second investment opportunity is expected to return a minimum of 10% over the next 5 years. To determine which investment is better, compute the NPV of the first investment using the discount rate possible with the second investment. If the NPV is positive, the first investment is better. If the NPV is negative, the second investment will provide better returns.
Keystokes | Display | |
---|---|---|
f clear REG | Clear the financial and cash flow registers. | |
10000 CHS Cf0 | 10,000. | Enter the initial cash flow. |
4000 CFj | 4,000. | Enter the first cash flow. |
2000 CFj | 2,000. | Enter the second cash flow. |
3500 CFj | 3,500. | Enter the third cash flow. |
6000 CFj | 6,000. | Enter the fourth cash flow. |
4000 CFj | 4,000. | Enter the fifth cash flow. |
RCL n | 5. | Check the total number of periods. |
10 STO i | 10. | Enter the desired discount rate. |
f NPV | 4,950.68 | Compute the Net Present value by executingNPV. |
Since the NPV value is positive, the first investment is better than the second investment.
The ΔDYS function is used to compute the number of days between dates.
The DATE function is used to determine the date that is a given number of days from a starting date. It also computes the day of the week of the resulting date.
Use the % function to compute the x percentage of a base value y.
Since the percent function leaves the original base amount in the y register, a markup or discount is easy to apply. Simply compute the percentage amount first then tap + or − to add or subtract the percentage amount from the base value.
Example: Find the total cost of an item costing $950 including tax computed at 8.3%.
Keystokes | Display | |
---|---|---|
950 ENTER | 950.00 | Enter the base value. |
8.3 | 8.3 | Enter the precentage. Note that you do not need to convert the percentage into the equivalent fractional value (0.083 in this case). Enter the value in percent directly. |
% | 78.85 | Compute 8.3% of 950.00 |
+ | 1,028.85 | Markup (add) the percentage to the base value. |
Use the Δ% function to compute the percentage difference (change) between two values.
Example: Find percentage gain on an investment that appreciated from an initial value of $1,248 to $1,315.
Keystokes | Display | |
---|---|---|
1248 ENTER | 1,248.00 | Enter the initial value. |
1315 | 1,315 | Enter the second value. |
Δ% | 5.37 | Compute the percentage gain for the investment. The number is positive when the second number is greater than the first. It will be negative (a loss) if the second number is less than the first. |
Use the %T function to compute the percentage that one number (the part) represents of another number (the total)
Example: The total expenses for an event is $2,000. What percentage of the event expenses was spent on rent that cost $615? and the food that was $335?
Keystokes | Display | |
---|---|---|
2000 ENTER | 2,000.00 | Enter the total costs for the event. |
615 | 615 | Enter the rent cost. |
%T | 30.75 | Compute the percentage of total for the rent. |
CLX 335 | 335 | Clear previous result and then enter the food cost. |
%T | 15.75 | Compute the percentage of total for the food. |
The y^{x} function computes y to the x power. The result is pushed on the stack.
The √x function computes the square root of x. The result replaces the x value on the stack.
The e^{x} function computes e to the x power where e is the base of the natural logarithm. It is the inverse of the LN function. The result replaces the x value on the stack.
The LN function computes the natural logarithm of x. Is is the inverse of the e^{x} function. The result replaces the x value on the stack.
The statistical functions accumulate sums based on the values in the x and y stack registers. These sums are used to compute the mean x̄ and standard deviation s. Use f Σ to reset all the statistical registers to zero before accumulating sums.
Enter the values into the x and y registers and then tap Σ+. If you notice a mistake keying in the x,y values after pressing Σ+, re-key the errant values and press Σ− to remove them from the sums.
The statistical sums are accumulated and are stored in assigned storage registers as shown
You can view these values via RCL n where n is the number of the register containing the desired sum. The sequence RCL Σ+ can also be used to recall Σx and Σy into the x and y registers respectively.
The mean and standard deviation are computed as
with similar equations holding for the y component as well.
The function g x̄ computes the mean of both x and y and places them into the x and y registers respectively
The function g s computes the standard deviation of both x and y and places them into the x and y registers respctively
The value computed is the sample standard deviation which is appropriate when the x and y data does not represent the entire data set. If they do represent the entire data you should instead compute the population standard deviation by correcting the sample deviation by the factor
σ_{pop} = (√(n-1)/n) * σ_{samp}
where n is the number of data points (RCL 1).
MathU 12D includes two functions to fit linear trend lines to a set of data, x̂,r and ŷ,r. The first uses the linear trend to estimate x given a value of y, the second uses the linear trend to estimate y given a value of x. Both functions rely on the statistics registers to hold information about the data points. The correlation coefficient and the estimate are pushed onto the stack.
The goodness of fit parameter is called the correlation coefficient r. r will be near 1.0 or -1.0 for data that is accurately described by the linear fit and values near zero for data that does not have a clear linear trend.
The figures below show two situations, one with a linear trend and another that is not very well estimated by a linear trend. The correlation coefficient for each situation is shown.
To perform a linear regression:
You can use the ŷ,r function to determine the equation of the trend line, y = m*x + b:
You can determine the weighted mean of a series of numbers using the x̄ w function. The result is pushed onto the stack.
The n! function computes the factorial of x. When x is a non-integer, this function returns gamm(x). The result replaces the x value on the stack.
The RND function rounds and truncates the current x register to match the current displayed value. All the hidden digits are set to zero. The result replaces the x value on the stack.
The FRAC function removes the integer part of the x register, leaving only the fractional part. The result replaces the x value on the stack.
The INTG function removes the fractional part of the x register, leaving only the integer part. The result replaces the x value on the stack.
The 1/x function computes the recipical of x. The result replaces the x value on the stack.
If x is zero, an error "-e-" occurs.
Use the P/R key to toggle between the program editor and the calculator. When the program editor is active, the current program step is displayed and "PRGM" is turned on. Up to 99 steps can be stored in the program memory and the program is automatically saved until you clear it using f PRGM. Use SST and g BST to move back and forth within the program.
You can also use g GTO . followed by two digits keys to navigate to a particular step in the program. For example:
g GTO . 1 8
goes to step 18 in the program
While PRGM is active, pressing keys on the calculator will replace the following steps in the program. If you encounter a situation where you need to insert a step within a program, use either the replacement strategy or the GTO strategy described below.
If PRGM is not active in the display, key f P/R to switch into program mode.
In the replacement strategy,
If the program is long, this can be tedious. If so, consider using the GTO strategy described next.
In the GTO strategy:
The effect of this strategy is to jump at the point of the insertion to another block of code that you want to execute followed by a jump back to continue with the original set of steps.
MathU 12D has the ability to execute a sequence of keystrokes stored in its program memory. The program memory is accessed via the P/R key, which toggles between the program editor and the calculator. When the program editor is active, the current program step is displayed and "PRGM" is turned on. Up to 99 steps can be stored in the program memory and the program is automatically saved until you clear it using f PRGM.
Program steps are displayed using the format nn - fcn where nn is the step number and fcn contains a human readable name for the function.
The steps in a MathU 12D program are just a sequence of keystrokes that you could have been used to solve the problem from the keypad. For example, a simple program that adds 5 and divides by 2 would look like this
01 - 5
02 - +
03 - 2
04 - ÷
05 - GTO 00
To enter steps into MathU 12D, you switch to editing mode via P/R and, using the keypad, tap the keys you would use to solve the problem. As you tap each key, the associated step will be added to the program (overwriting what is already there). The program automatically grows as you enter steps. Switch back to run mode via P/R.
To run the program, tap R/S. To stop it before the program finishes, tap R/S again (or any key on the keypad).
The program is cleared from memory via f PRGM. You can check to see how many steps have been entered using the MEM function.
MathU 12D includes several functions specifically for programs. These include:
MathU 12D has a built-in program editor. The editor records keystrokes you as tap on the keypad and allows you step back and forth in the program.
To begin with a fresh program area, tap f PRGM. This clears out the previous program.
To enter program steps, just tap the functions on the keypad as you would to solve the problem from the keypad. As you tap each key, the associated step will be added to the program (overwriting what is already there). The program automatically grows as you enter steps.
When determining which steps you need for your program, consider where are you going to get the numbers to work with. Will they be on the calculator stack or will they be taken from a storage register? Think about how you want to enter the data before hitting R/S and where you want the results to be placed.
To review the program steps currently in memory use the SST and BST functions.
MathU 12D includes three functions to control the flow within a program. The GTO step is used to unconditionally branch to a new section of the program. The x≤y and x=0 steps are used to conditionally execute a step (Do if true). The examples below illustrate common ways of using these functions
Suppose free shipping is available when the total value of all products purchased exceeds $25.00. Write a program that adds 8% tax and shipping to order and displays the result. Assume the total value of the products is in the x register when the program starts. Shipping is $7.00 when it is not free.
The solution is to write a program that always adds tax but will only add in shipping when the product total is less than or equal to 25.00
01 - 2
02 - 5
03 - .
04 - 0
05 - 1
06 - x≤y
07 - GTO 10
08 - 7 (Shipping computation)
09 - +
10 - x<>y (Remove 25.01 from stack)
11 - ROLLDOWN
12 - 8 (Common tax calculation begins here)
13 - %
14 - +
15 - GTO 00
Suppose the discount for a product depends on its price. Products that are over $250 receive a 10% discount while products above $1000 receive a 15% discount. Write a program that determines the discount for a value in the x stack register. Leave the x value in the y register when the program finishes so that the discount can be subtracted by the user later by executing −. In this case, use a x≤y steps to choose between sets of steps.
01 - 2
02 - 5
03 - 0
04 - x<>y
05 - x≤y
06 - GTO 15(go to no discount case)
07 - x<>y
08 - ROLLDOWN
08 - 1
09 - 0
10 - 0
11 - 0
12 - x≤y
13 - GTO 20(go to 10% discount case)
14 - GTO 30(go to 15% discount case)
15 - x<>y(no discount case)
16 - ROLLDOWN
17 - 0
18 - GTO 00
19 - CLX(10% discount case)
20 - 1
21 - 0
22 - %
23 - GTO 00
24 - CLX(15% discount case)
25 - 1
26 - 5
27 - %
28 - GTO 00
Suppose you would like to perform an operation a certain number of times. By storing a counter value in one of the registers (say register 4) you can decrement and then use this value with a x=0 step to stop the loop. Suppose you would like to perform a series of steps 5 times:
01 - 5
02 - STO 4 (store loop counter in reg 4)
03 - RCL 4
04 - x=0
05 - GTO 00 (loop finished, so exit)
06 - 1
07 - STO − 4 (decrement counter)
08 - (steps to execute start here)
...
24 - (last step to execute here)
25 - GTO 03 (go to beginning of loop)
To run a program that is already in memory, tap R/S. This will start the calculator running with the next step in the program. If you have just switched out of the editor via P/R, R/S will always start with step 01.
If you want to start running your program at a different starting point, tap GTO nn R/S where nn is the step you want to start with.
To stop a running program, tap R/S again (or any other key on the keypad). The program will stop and the current value of the x register will be displayed. Tap R/S to continue the program with the next step.
While a program is running, the display will show "running...". If you do not see "running...", then your program is probably already finished! MathU 12D executes program steps very quickly!
If your program is not producing results that you expect, it is possible that you may have a bug in your program.
To find the bug, the easiest approach is to step through your program using SST. Tap and hold SST to show the current program step. When you release, that step will be executed and you can see the effect on the value in the stack.
Once you determine a step that is wrong you can replace it by going to the step just before it (switch into PGRM with P/R and use GTO . nn). Then tap the function you want to change it to. If you need to insert more than one step, you may want to insert a GTO nn step to a few steps after the end of the program, ending these steps with a GTO back. See Editing Programs for more info.
If the problem is persistent, you might also want to try adding PAUSE steps (PSE) to display intermediate results.
It is possible to store more than one program in MathU 12D's program memory. You do this by separating the multiple program steps with STOP or GTO 00 steps.
Example: Suppose one program requires 13 steps and a second program requires 20 steps:
To run the first program, tap GTO 00 R/S. To run the second program, tap GTO 15 R/S.
The PSE function, when executed within a running program, pauses for 1 second and displays the current stack. Outside of a running program, the calculator waits and then flashes the screen in 1 second.
The MEM function displays the number of registers and the number of steps in the current program. The value is displayed in the format P-nn r-mm, where nn is the number of program steps, mm is the number of available registers (always 20 for MathU 12D).
The x≤y function, within a running program, checks to see if the current value of x register is less than or equal to y. If so, the next step in the program is executed. If not, the next step is skipped
The x≤y step is typically followed by at GTO step in order to jump to steps to execute when x is less than or equal to y (see Branching and Looping). In this case, the steps following that GTO are executed when x > y.
The x=0 function, within a running program, checks to see if the current value of x register is equal to zero. If so, the next step in the program is executed. If not, the next step is skipped.
The x=0 step is typically followed by at GTO step in order to jump to steps to execute when x is zero (see Branching and Looping). In this case, the steps following that GTO are executed when x not zero.
The GTO nn function, within a running program, jumps to step nn and continues execution from there.
When editing a program, GTO nn enters that step into the program. To jump within the editor to step nn, tap GTO . nn nn can be any number between 00 and 99.
The special step GTO 00, when executed in a running a program, will jump to step zero and stop the program. MathU 12D automatically adds a GTO 00 after the last step in the program.
When editing a program, the SST function moves to the next step. It does not change the steps in the program. Use the BST function to go back.
You can use the SST function to step through and review the steps in a program.
When not editing a program, the SST key displays the current program step as long you keep your finger on the button. As soon as you release it, that step is executed.
When editing a program, the BST function moves to the previous step. It does not change the steps in the program. You can use the BST function to step through and review the steps in a program.
When not editing a program, the BST key displays the current program step as long you keep your finger on the button. As soon as you release it, display shows the stack again. Unlike SST, no step is executed.