Number of decimal digits

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.

Fixed, scientific or engineering notation

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

Fixed notation example FIX notation

In scientific notation, the value is 1.240215 x 104 and it looks like this

Scientific notation example 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

Engineering notation example ENG notation

Payments due at the beginning or end of each period

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.

Annuity Due cashflow diagram

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.

Ordinary Annuity cashflow diagram

Setting the date format

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.

Turn on or off button click sounds

When ON button click sounds are played as a button is tapped.

Display one or more stack lines

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.

Entering Numeric Values

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, the number 12,350.78 is entered using the keystokes

1 2 3 5 0 . 7 8

Entering negative numbers

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

Correcting mistakes

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 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 X and add it back in using +.

Entering very large or very small values in scientific notation

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×1019

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.

Simple Arithmetic

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".

Effect of PLUS 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

Executing functions

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 fg 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 ex 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.

Entering Formulas using RPN

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%:

KeystokesDisplay 
6.25 ENTER6.25 Canadian interest rate
200200  
÷.03125 Semi-annual interest rate
11  
+1.03125 Inner parenthetized expression
6 1/x 0.16667 Power
yx1.00514 Partial result
11  
-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.

Copy and Paste

MathU 12D supports copying and pasting numbers from other applications on the iPhone and iPod touch. To copy the value currently displayed, double tap the display and then select "Copy" from the menu that pops up.

Copy and Paste

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.

The Registers

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.

Register assignments

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).

Accessing the Registers

Register assignments

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.

Storage Register Arithmetic

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.

Clearing the 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, tap f clear FIN.

To clear only the statistics registers, tap f clear Σ.

To clear only the x stack register, tap CLX.

The Stack

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.

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.

Unary vs. binary functions

Some functions (like 1/x) use only the x register to compute their value. Other functions (like yx) 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.

The ENTER key

During number entry, the ENTER key is used to indicate the end of one number and the beginning of the next one. Its affect on the stack is to push a copy of the current x register onto the stack.

The effect of ENTER on the stack

Note how all the other stacj 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.

Stack Manipulation

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.

Effect of x<>y on stack

To roll the stack down, tap R↓.

Effect of ROLLDOWN on stack

To push the current x value into the y register, tap ENTER.

Effect of ENTER on stack

Repeated Calculations

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,

KeystokesDisplay 
33Load stack with the difference
ENTER3.0  
ENTER3.0  
ENTER3.0 Now the entire stack is filled with 3.0
22Enter a starting number
+5.0 
+8.0 
+11.0 
+14.0etc.

At the end of the series of computations the stack looks like this

Stack after series of repeated computations

where the difference (3.0) continues to be replicated as the stack drops with each computation.

Financial Functions Overview

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:

Effect of financial functions on 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.

Cash Flow Convention

Financial problems can be thought of as a series of cash flows. 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.

Ordinary annuity cash flow diagram

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

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.

Ordinary annuity cash flow diagram

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
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  
200 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 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. Year of computation
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.
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.

Number of Periods

The n function is used to store and 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.

The value computed by n is always an integer. 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.

Compound Interest

The i function is used to store and 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.

Payment per period

The PMT function is used to store and 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.

Principal (Present) Value

The PV function is used to store and 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.

Future Value (Balloon)

The FV function is used to store and 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.

Simple Interest

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.

  1. Enter the number of days, then press n.
  2. Enter the annual interest rate, then press i.
  3. Enter the principal amount (as a negative number), then press PV.
  4. Tap f INT to compute the accrued interest. The interest based on a 360-day year is placed into the x register and the interest based on a 365-day year is placed into the z register. The negative of the principal amount is placed into the y register.
  5. Tap R↓ x<>y to view the 365-day interest
  6. Tap + to add the principal + accrued interest together.

Odd Period Computations

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 (the C indicator will turn on in the display). When the C indicator is not on, simple interest is used.

Odd period computations are taken into account when computing i, PV, PMT and FV. 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 trhe 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 ΔDYS 12. Number of days in the odd period.
30 ÷ 0.4 Fractional odd period (using a 30 day month basis)
RCL n + n 36.4 Compute and store the new number of periods including the odd period.
PMT -60.04 Monthly payment taking into account the odd period.

Amortization

The entries in an amortization table can be computed using AMORT. The AMORT function places the amount paid in interest in the x register, the amount paid against the principal in the y register and the number of payments just amortized in the z register:

Amortization stack picture

In addition, the financial n register and the financial PV register is 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.

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:

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

The AMORT function computes the amount paid against the principal and the amount of interest paid for a series of payments. AMORT bases its calculation on the values in the financial registers. 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 amount of the loan (principal value).
7.25 12÷ 0.60 Set the monthly interest rate.
12× 60.00 Set the number of months (periods) in the loan.
PMT -368.51 Compute the monthly payment.
n 0.00 Set the n financial register to the beginning month in the amortization.
AMORT -111.77 Enter the number of payments to amortize and then execute AMORT. The amount paid in interest is placed into the x register, the amount paid against the principal is placed into the y register and the number of payments just amortized in the z register. The PV and nfinancial registers are updated.
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.
AMORT -110.22 Enter the number of payments to amortize and then execute AMORT again to get the information for the next row in the amoritzation table.
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) mode is set to BEG for annuity due loans or END for ordinary annuity loans using the preferences.

Bond Pricing and Yield

Using MathU 12D, you can compute the bond price, the interest accrued since the last interest date and the bond yield.

Bond Price

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.
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.

Bond Yield To Maturity (YTM)

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.

Depreciation

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:

  1. Store the original cost in the PV financial register.
  2. Store the salvage value of the asset in the FV financial register. If the salvage value is zero, enter 0 into the FV register.
  3. Store the useful life of the asset (in years) in the n financial register.
  4. Declining balance method only: Store the declining balance factor as a percentage in the i financial register.
  5. Once the inputs are in the financial registers, enter the depreciation year number into the x register and tap f SL for Straight-Line Depreciation, f SOYD for Sum-Of-the-Years-Digits Depreciation or f DB for Declining Balance Depreciation. The amount of the depreciation is placed into the x stack register and the remaining depreciable value (book value - salvage value) is placed into the y stack register.
  6. Tap x<>y to view the remaining depreciable value.

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.
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.
f DB 945.00 Depreciation for the second year.
x<>y 2,105.00 Remaining depreciable value after the second year.
f DB 661.50 Depreciation for the third year.
x<>y 1,443.50 Remaining depreciable value after the third year.

Discounted Cash Flows

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. You use the cash flow functions CF0, CFj and Nj to define them.

Unequal cash flows diagram

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, the number of consecutive cash flows (Nj) is entered just after entering the cash flow (CFj). Up to 20 distinct cash flow amounts can be entered.

Repeated cash flows

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.

Entering Cash Flows

To enter cash flows:

  1. Clear the financial and cash flow registers using CLREG
  2. Enter the initial cash flow value and then execute CF0 to store the value.
  3. For each cash flow, enter the value and then execute CFj to store the value. If the cash flow is repeated, enter the number of repeated cash flows and execute Nj to store the count.
  4. Perform step 3 for all the remaining 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.

Reviewing The Cash Flows

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

Internal Rate of Return

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 (CF0) is used to buy the property which nets $4,000 (CF1), $2,000 (CF2), $3,500 (CF3), $6,000 (CF4) and $4,000 (CF5) for 5 years. What is the internal rate of return (IRR)?

Unequal cash flow example

Keystokes Display  
f 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.

Net Present Value

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 (CF0) is used to buy the property which nets $4,000 (CF1), $2,000 (CF2), $3,500 (CF3), $6,000 (CF4) and $4,000 (CF5) for 5 years. What is the internal rate of return (IRR)?

Unequal cash flow example

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 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 executing. Since this value is positive, the first investment is better than the second investment.

Days between dates

The ΔDYS function is used to compute the number of days between dates.

  1. Enter the first date in MM.DDYYYY or DD.MMYYYY format (depending on the current date format then tap ENTER.
  2. Enter the second date . MM.DDYYYY or DD.MMYYYY format
  3. Tap g ΔDYS. The actual number of days between the dates is stored in the x register. In addition, the number of days between the dates using a 30 day per month basis is stored in the y register.
  4. Tap x<>y to view the number of days between the days based on a 30 day month.

Past or future date and day of the week

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.

  1. Tap M.DY or D.MY to set the calculator to your desired date format.
  2. Enter the starting date in MM.DDYYYY or DD.MMYYYY format and then tap ENTER.
  3. Enter the number of days to offset from the starting date. Enter positive numbers for dates in the future and negative numbers for dates in the past.
  4. Tap g DATE to determine the future or past date. The date will be displayed in a special format with the month, day and year separated by the thousands separators and with an extra digit at the right of the display (in the exponent area) that indicates the day of the week. 1=Monday and 7=Sunday.
  5. To determine just the day of the week for a given date, use an offset of 0.

Percent

Use the % function to compute the x percentage of a base value y.

  1. Enter the base value and then tap ENTER.
  2. Enter the percentage.
  3. Tap % to compute amount corresponding to the desired percentage of the base value. The base number will be left in the y register.

Effect of percent on the stack

Discounts and Markup

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.

Percent Change

Use the Δ% function to compute the percentage difference (change) between two values.

  1. Enter the first value and then tap ENTER.
  2. Enter the second value.
  3. Tap Δ% to compute percentage difference between the two values. The result is placed into the x register.

Effect of percent change on the stack

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.

Percent of Total

Use the %T function to compute the percentage that one number (the part) represents of another number (the total)

  1. Enter or compute the value the total and then tap ENTER.
  2. Enter the value of the part.
  3. Tap %T to determine the percent that the part represents of the total. The result is placed into the x register. The total value is left in the y register so that additional %T computations can be performed.
  4. To perform another %T computation, clear out the current value using CLX and then enter the value the part followed by %T.

Effect of percent total on the stack

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.

Y to the X power

The yx function computes y to the x power. The result is pushed on the stack.

Effect of binary function on the stack

Square root

The √x function computes the square root of x. The result replaces the x value on the stack.

Effect of unary function on the stack.

Exponential

The ex 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.

Effect of unary function on the stack.

Natural (base e) logarithm

The LN function computes the natural logarithm of x. Is is the inverse of the ex function. The result replaces the x value on the stack.

Effect of unary function on the stack.

Entering Statistical Data

The statistical functions accumulate sums based on the values in the x and y stack registers. These sums are used to compute the mean mean and standard deviation σ. 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

Statistical register assignments

Accessing the statistical sums

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.

Mean and standard deviation

The mean and standard deviation are computed as

with similar equations holding for the y component as well.

Mean

The function g computes the mean of both x and y and places them into the x and y registers respectively

Effect of MEAN on the stack

Standard Deviation

The function g s computes the standard deviation of both x and y and places them into the x and y registers respctively

Effect of STD on the stack

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).

Linear Regression

MathU 12D includes two functions to fit linear trend lines to a set of data, y,r and x,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.

Linear regression example Linear regression example

To perform a linear regression:

  1. f Σ to clear the statistics registers.
  2. Enter the data points via y ENTER x Σ+
  3. Repeat step 2 for each point in the data set.
  4. To estimate a y value given an x, enter the x value followed by y,r
  5. To estimate an x value given a y value, enter the x value followed by x,r
  6. The correlation coefficient can be accessed via x<>y

Determining the trend line parameters

You can use the y,r and x,r functions to determine the equation of the trend line, y = m*x + b:

  1. Enter the data points into the statistics registers as described above.
  2. 0 y,r to determine b by computing the estimated y when x is 0.0
  3. STO 0 to store b in register 0 (in order to remember it)
  4. 1 y,r to estimate value of y when x is 1.0
  5. RCL 0 to compute the slope m.

Weighted Mean

To can determine the weighted mean of a series of numbers using the x,w function. The result is pushed onto the stack.

  1. f Σ to clear the statistics registers.
  2. Enter the data points followed by the wieght and then press Σ+
    i.e., x ENTER w Σ+
  3. Repeat step 2 for each data value and weight in the data set.
  4. To determine the weighted mean tap x,w

Factorial (gamma function)

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.

Effect of unary function on the stack.

Round to display

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.

Effect of unary function on the stack.

Fractional Part

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.

Effect of unary function on the stack.

Integer Part

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.

Effect of unary function on the stack.

Recipical (1/x)

The 1/x function computes the recipical of x. The result replaces the x value on the stack.

Effect of unary function on the stack.

If x is zero, an error occurs.

Programming MathU 12D

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:

  1. GTO that is used to branch between steps in a program.
  2. PSE that pauses to display results for 1 second.
  3. x≤y and x=0 that test for values on the stack/
  4. R/S function that starts or stops a program. When inserted by the editor, the R/S key inserts a STOP step.
  5. MEM that displays the number of steps in a program and the number of available registers.

Entering Programs

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.

Branching and Looping

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

Conditionally execute steps

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

Choose between sets of steps

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

Loop a certain number of times

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)

Running and Stopping Programs

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!

Debugging Programs

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 (using 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.

If the problem is persistent, you might also want to try adding PAUSE steps (PSE) to display intermediate results.

Multiple Programs

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:

  1. Enter the 13 steps for the first program
  2. Enter a GTO 00 (line 14)
  3. Enter the steps for the second program (beginning with line 15)

To run the first program, tap GTO 00 R/S. To run the second program, tap GTO 15 R/S.

Pause

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.

Memory Usage

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).

x ≤ y step

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.

x = 0 step

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.

Go to step

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.

Single Step

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.

Back Step

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.

All Functions (alphabetically)