## Monday, May 30, 2022

### Plus42: The FOR Function

Plus42:  The FOR Function

Author:  Thomas Okken

App:

Android:  \$9.99

iOS:  \$9.99

PC/MacOS/Linux:  Free

Donations Accepted

Please give Okken some love!   Free42 and Plus42 are both awesome apps and emulators, both emulate the HP 42S engine.  The Plus42 adds the solver of the HP 17B/19B/27S and unit conversions of the HP 48/49/50 family.   The Plus42 can also graph functions.   You can find a lot more information on the link above!

(Disclaimer:  I am not being paid.)

I am now including apps like the Plus42 in my rotation for blogs, please be on the look out for those.

Today's blog entry will cover one of the additional solver functions for the Plus42:  FOR.

Plus42 FOR Syntax

FOR(INIT:COND:NEXT:EXPR)

INIT:  Initial commands

COND:  condition

If the condition is true:  execute EXPR (there can be more than one EXPR statements), then NEXT

If the condition is false:  the loop ends

NEXT:  next command,  this is where the counter variable is incremented or decremented

EXPR:  the main loop

Examples

Example 1:  Add from 1 to 4.

HP 39G/Prime Code:

A:=0;

FOR K FROM 1 TO 4 DO  (STEP 1)

A:=A+K;

END;

Plus42 Equation Code:

S=FOR((L(A:0)+L(I:1))×0:G(I)≤4:L(I:G(I)+1):L(A:G(A)+G(I)))

Variables:

A = sum

I = counter variable

Result:  S = 10

S=:   set the result to the variable S, S = A

INIT:  (L(A:0)+L(I:1))×0;  set A = 0 and I = 1

COND:  G(I)≤4;  test if I≤4; if true continue, if false exit the loop

NEXT:  L(I:G(I)+1); this happens at the end of the loop, this is like the general STEP incr/decr command

EXPR: L(A:G(A)+G(I))

The use of the Get function allows the variable to used automatically and not be displayed in the CALC menu.

Something that threw me off is that the order of NEXT and EXPR, which the EXPR (which I think there could be more than one EXPR statements), I am used to NEXT either at the end of the FOR loop or implied (end of indentation in Python, for example).

Example 2:  Product

Calculate Π(n/4, n=1 to m) = 1/4 * 2/4 * 3/4 * ... * m/4

Plus42 Equation Code:

P=FOR((L(A:1)+L(N:1)+M)×0:G(N)≤IP(M):L(N:G(N)+1):L(A:G(A)×(G(N)÷4)))

Variables:

N = counter

M = higher limit

P=:   set the result to the variable P, P = A

INIT:  (L(A:1)+L(N:1)+M)×0; set A = 1, N = 1, ask for M

COND: G(N)≤IP(M); if N ≤ IP(M); if true continue, if false exit the loop

NEXT:  L(N:G(N)+1)

EXPR: L(A:G(A)×(G(N)÷4))

Results:

3 → M; P → 0.0938

6 → M; P → 0.1758

12 → M; P → 28.5507

Example 3:  Recursive

Given an initial condition u_0, calculate the recursion:

u_n = 2 * u_n-1 - 3

for n terms.

Plus42 Equation Code:

S=FOR((U+N+L(I:1))×0:G(I)≤N:L(I:G(I)+1):L(U:2×G(U)-3))

Variables:

U = recursive variable

N = number of terms

INIT:  (U+N+L(I:1))×0

COND: G(I)≤N

NEXT:  L(I:G(I)+1)

EXPR:  L(U:2×G(U)-3)

Results, enter U, N first before calculating for S:

2 → U, 3 → N; S → -5

5 → U, 2 → N; S → 11

Enjoy and hope this helps,

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Sunday, May 29, 2022

### HP 42S/DM42: Base Programs

HP 42S/DM42:   Base Programs

Unsigned NOT

The program UNOT applies a NOT to a binary integer (flips zeros to ones and ones to zeros) using unsigned binary integers.  The number of bits (size) is prompted.

HP 42S/DM42 Program UNOT

00  {40-Byte Prgm}

01  LBL "UNOT"

02  BINM

03  "BIN?"

04  PROMPT

05  STO 01

06  EXITALL

07  "SIZE?"

08  PROMPT

09  STO 02

10  2

11  X<>Y

12  Y↑X

13  RCL- 01

14  STO 02

15  1

16  -

17  BINM

18  END

Examples:

Unsigned NOT of 10100, size 5:  1011  (01011)

Unsigned NOT of 10100, size 8:  11101011

Shift Left

Makes a binary integer shift left: a zero is added to the right side of the integer and "drops" off the left most digit.  The number of bits (size) is prompted.  The binary number is assumed to be non-negative.

HP 42S/DM42 Program SL16

00  {35-Byte Prgm}

01  LBL "SL16"

02  BINM

03  "BIN?"

04  PROMPT

05  EXITALL

06  2

07  ×

08  "SIZE?"

09  PROMPT

10  2

11  X<>Y

12  Y↑X

13  MOD

14  BINM

15  END

Examples:

Shift Left:  10100, size 5:  1000   (01000)

Shift Left:  10100, size 8:  101000  (00101000)

Shift Right (Logical)

Makes a binary integer shift right: a zero is added to the left side of the integer and "drops" off the left most digit.  The binary number is assumed to be non-negative. A logical shift right divides an integer by 2 and taking the integer result.

HP 42S/DM42 Program SR16

00  {24-Byte Prgm}

01  LBL "SR16"

02  BINM

03  "BIN?"

04  PROMPT

05  EXITALL

06  2

07  ÷

08  IP

09  BINM

10  END

Examples:

Shift Right:  10100:  1010

Shift Right:  1010:  101

The next two programs deals with RGB and HEX codes for computer colors.

HP 42S/DM42 Program CLR→:   RBG to Hexadecimal Code

00  {51-Byte Prgm}

01  LBL "CLR→"

02  DECM

03  "RED?"

04  PROMPT

05  65536

06  BASE×

07  "GREEN?"

08  PROMPT

09  256

10  BASE×

11  BASE+

12  "BLUE?"

13  PROMPT

14  BASE+

15  HEXM

16  END

Example:

Red: 221, Green: 80, Blue 109

Result:  HEX Code:  DD506D

HP 42S/DM42 Program  →CLR:   Hexadecimal to RGB Code

00  {63-Byte Prgm}

01  LBL "→CLR"

02  HEXM

03  "HEX CODE?"

04  PROMPT

05  STO 00

06  DECM

07  65536

08  BASE÷

09  STOP   // Red

10  65536

11  BASE×

12  RCL 00

13  X<>Y

14  BASE-

15  STO 00

16  256

17  BASE÷

18  STOP   // Green

19  256

20  BASE×

21  RCL 00

22  X<>Y

23  BASE-

24  END

Example:

HEX Code:  103E22

Result:  Red:  16, Green:  62,  Blue:  34

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Saturday, May 28, 2022

### Casio fx-4000P: Orthonormal 2D Vector Test

Casio fx-4000P:  Orthonormal 2D Vector Test

Introduction

A set of vectors form an orthonormal basis if the vectors are mutually perpendicular and are of unit length.

Mutual perpendicular means the dot product of two different vectors in the space is 0:

v_i ∙ v_j = 0,  i ≠ j

Unit length means that the norm of each vector is 1:

|v_i| = 1

For two 2D vectors [ A, B ] and [ C, D ], the two vectors form an orthonormal basis if:

A^2 + B^2 = 1

C^2 + D^2 = 1

A * D + B * C = 0

Casio fx-4000P Program:  Orthonormal 2D Vector Test

Bytes:  84 steps

(line returns are included for readability)

"A":

?→A:

"B":

?→B:

"C":

?→C:

"D":

?→D:

A²+B²≠1⇒Goto 0:

C²+D²≠1⇒Goto 0:

"YES" ⊿

Goto 1:

Lbl 0:

"NO" ⊿

Lbl 1

Examples

Example 1:

[1, 0], [0, 1]

A = 1, B = 0, C = 0, D = 1

"NO"   (1*1 - 0*0 = 1)

Example 2:

[1/√2, 1/√2], [1/√2, -1/√2]

A = 1/√2, B = 1/√2, C = 1/√2, D = -1/√2

"YES"

Source:

Rowland, Todd. "Orthonormal Basis." From MathWorld--A Wolfram Web Resource, created by Eric W. Weisstein. https://mathworld.wolfram.com/OrthonormalBasis.html

Last Accessed April 7, 2022

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Monday, May 23, 2022

### Retro Review: Radio Shack EC-4026

Quick Facts:

Model:  EC-4026

Equivalent Of:  Casio fx-4500P, Casio fx-4500PA

Years:  1989-1991

Type:  Scientific, Programming

Batteries: 1 x CR-2025

Operating Mode:  Algebraic

Memory Registers: 26 (can be extended to 163 through the Defm command)

Program Steps:  1,103 (minimum of 7)

Number of Digits: 10 (display), 12 (precision)

Features

The Radio Shack EC-4026, a clone of the Casio fx-4500P, has a two line display.  On the top row shows formulas, equations, and prompts; and the bottom row displays results, and line numbers in programming mode.

The modes of the EC-4026 include:

*  Display Mode: Fix, Scientific Notation, Norm, Engineering Notation

*  Programming Write

*  BASE-N:  base conversions and Boolean Logic.  Binary numbers have 32 bits, signed.

*  Linear Regression:  y = A + Bx

*  Single Variable Regression (SD:  Standard Deviation mode)

Extended Memory

By default, there are 26 memory registers, A-Z.   You can use the square brackets [ ] to refer to memory registers indirectly, with the syntax  letter[# registers from letter].

A[ 0 ]: A

A[ 1 ]: B

A[ 2 ]: C

A[ 3 ]: D

...

Z[ 0 ]:  Z

To extend the number of memory registers, execute [ MODE ] [ Ans ] and enter the number of extended memory registers. For example, Defm 10 extends the number of registers to 36, allowing for registers Z[ 1 ] to Z[ 10 ].

Defm 0 returns he number of registers to the default 26.

Each extended memory costs 8 programming steps.

Independent Memory

The memory M is considered an independent memory with M+ and M- functions.

Formulas

In regular mode, we can store one formula (up to 127 steps) into memory with the IN command.

Expressions can be entered.  If the expression is entered in the form of var=formula, the result is stored into the variable.

The best part is that you can make prompts and result markers by adding a quoted comment next the variable.

Use the OUT command to recall the formula and CALC command to run the calculation.

Example:

[ CALC ]

AREA=     (243.2849351)

Integration

The integral command (∫) calculates the integrals of f(x) using Simpson's Rule.

∫( f(X), low, high, n)

n is an optional argument.  If n is included, the calculator uses 2^n partitions.  The maximum amount of partitions is 2^9 (512).   During calculation, the screen goes blank except for mode indicators.

Programming

The programming module is an early version of Casio basic.   Each program can have a file name.  The file names are sorted by chronologically.  In write mode, each line has a file number and a line number. (F# L#).

Store calculations by using the syntax:

var=expressions

Variables can be either be defined (with their values) or undefined (the program will ask for the values each time a loop returns).   Define all the variables with the Fixm command.   We can undefine variables with the curly brackets { }.

The If structure is a little different, with the following symbols are used:

⇒  Then

≠⇒ Else  ( [ 2ndF ] [ a b/c ] )

◺ EndIf

(condition) ⇒ (do if true) : or ⊿ ≠⇒ (do if false) : or ⊿ ◺ (the if loop ends)

Subroutines, Pause (up to 4.5 seconds, with terms of half-seconds), and Goto/Labels (0-9, specific to each program) are included.

The manual will also list a way to designate a program file as a data bank of names and their telephone numbers.

Sample programs follow.

Volume of a Frustum of a Cone:

Name:  FRUSTUM.CONE

F# L1  {H,Q,R}      // undefine H, Q, R

F# L2  H"HEIGHT"   // prompt for H with the prompt "HEIGHT?"

F# L3  Q"SMALL R" // prompt for Q with the prompt "SMALL R?"

F# L4  R"BIG R"  // prompt for R with the prompt "BIG R?"

F# L5  V"VOL"=H×(Q²+R²+Q×R)×π/3    // calculate volume, display V with "VOL="

Function Table

Name: TABLE

F# L1  {A,B,C}   // undefine A,B,C

F# L2  A"BEG"  // prompt for A with the prompt "BEG?"

F# L3  B"END" // prompt for B with the prompt "END?"

F# L4  N"POINTS" // prompt for N with the prompt "POINTS?"

F# L5  H=(B-A)/N

F# L6  X=A

F# L7  Lbl 0   // start the table

F# L8  X⊿   // display X

F# L9  F=2X-1⊿  // insert f(x) here (F=f(x))

F# L10  X=X+H

F# L11  X≤B⇒Goto 0:◺"FIN"  // if-then structure

Closing Thoughts

The EC-4026 is a great programming calculator.  The programming structure does present a learning curve due it being a beginning version of Casio basic.

Sources

"Radio Shack EC-4026"  MyCalcDB.  April 21, 2014.   Last Accessed April 3, 2022.  http://mycalcdb.free.fr/main.php?l=0&id=4059

Toth, Viktor T.  "Casio fx-4500P"  rskey.org   2022.   Last Accessed April 3, 2022.  https://www.rskey.org/fx4500p

Toth, Viktor T. "Radio Shack EC-4026" rskey.org.  2022.  Last Accessed April 3, 2022.  https://www.rskey.org/ec4026

Until next time,

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Sunday, May 22, 2022

### Converting a Line in Parametric Line to a Function Line

Converting a Line in Parametric Line to a Function Line

From (x(t), y(t)) to y(x)

Express a line, presented in parametric form:

x = A * t + B

y = C * t + D

where A, B, C, and D are constants, and convert it to function form (y(x) or f(x)).

Here is one way to do this:

x = A * t + B

A * t = x - B

t = x / A - B / A

y = C * (x / A - B / A) + D

y = (C/A) * x - B*C/A + D

y = (C/A) * x + (D - B*C/A)

We know have a function in the slope-intercept form where:

slope = C/A

intercept = D - B*C/A

Casio fx-4000P Program:  Converting Parametric Lines to Functional Line

Size:  77 bytes

"X=AT+B; A":

?→A:

"B":

?→B:

"Y=CT+D; C":

?→C:

"D":

?→D:

"SLOPE="⊿

C÷A→M⊿

"ITC="⊿

D-B×M→I

Examples

Graph screens are created by the Numworks emulator:  https://www.numworks.com/simulator/

Example 1:

x = 3 * t  - 4

y = 2 * t + 8

A = 3, B = -4, C = 2, D = 8

Results:

SLOPE = 0.666666667

ITC = 10.66666667

Example 2:

x = -2 * t + 6

y = 4 * t + 3

A = -2, B = 6, C = 4, D = 3

Results:

SLOPE = -2

ITC = 15

Hope you find this useful.  Take care,

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Saturday, May 21, 2022

### Swiss Micros DM41X and HP 41C: Numeric Derivatives

Swiss Micros DM41X and HP 41C:  Numeric Derivatives

Introduction

The program DFX calculates one of three types of derivative:

1.  Normal Derivative   (DX)

2.  Logarithmic Derivative (LN)

3.  Power Derivative (PWR)

Where:

Normal Derivative:  f'(x)

Logarithmic Derivative:  d/dx( ln f(x) ) = f'(x) / f(x)

Power Derivative:  d/dx( f^n(x) ) = n * f^(n-1)(x) * f'(x),  n doesn't have to be an integer

where f'(x) is estimated by:

f'(x) ≈ ( f(x + h) - f(x) ) / h

Variables:  x, h

The program uses a subroutine FX, see the examples for details.

DM41X and HP 41C Program:  DFX

Uses program FX as a subroutine as f(x).

01 LBL ^T FX

02 RCL 01

03 ^T X?

04 ARCL 01

05 PROMPT

06 STO 01

07 RCL 02

08 ^T H?

09 ARCL 02

10 PROMPT

11 STO 02

12 RCL 01

13 XEQ ^T FX

14 RCL 03

15 RCL 01

16 RCL 02

17 +

18 XEQ ^T FX

19 RCL 03

20 -

21 RCL 02

22 /

23 STO 04

24 ^T 1 DX 2 LN 3 ↑N

25 PROMPT

26 INT

27 STO 05

28 GTO IND 05

29 LBL 01

30 RCL 04

31 LBL 02

32 RCL 04

33 RCL 03

34 /

35 GTO 04

36 LBL 03

37 RCL 03

38 ^T N?

39 PROMPT

40 1

41  -

42 Y↑X

43 LASTX

44 1

43 +

44 *

45 RCL 04

46 *

50 LBL 04

51 RTN

The function FX:

x is loaded in the X stack register (and on display)

01 LBL ^FX

02  execute f(x)

...

##  RTN

For DFX, do not use R01, R02, R03, R04, and R05 in FX.

Notes:

Sequences such as:

02 RCL 01

03 ^T X?

04 ARCL 01

05 PROMPT

Puts the prompt as X? [contents of R1].   If you want the previous value, press R/S.  Otherwise enter a new value, then press R/S.

This program uses indirect goto statements.  R05 is used to hold the person's choice and uses it to direct which label is executed.

Examples

Example 1:  f(x) = x * sin x

Set FX as:

01 LBL^T FX

03 ENTER

04 ENTER

05 SIN

06 *

07 RTN

Setting H to 10^-6  (1E-6):

DF:   f'(x)

x = 0.5, Result:  0.9182; x = 1.6, Result: 0.9530

LN:  ln f'(x)

x = 0.5, Result:  3.8305; x = 1.6, Result:  0.5959

PWR: with n = 3,   (f'(x))^3

x = 0.5; Result:  0.1583; x = 1.6;  Result: 7.3128

Example 2:  f(x) = x^2 + 3 * x + 1 = x * (x + 3) + 1

Set FX as:

01 LBL^T FX

02 ENTER

03 ENTER

04 3

05 +

06 *

07 1

08 +

09 RTN

Setting H to 10^-6  (1E-6):

DF:   f'(x)

x = 3.2, Result:  9.4000; x = 6.8, Result: 16.6000

LN:  ln f'(x)

x = 3.2, Result:  0.4511; x = 6.8, Result: 0.2454

PWR: with n = 1.5,   (f'(x))^1.5

x = 3.2, Result:  64.3677; x = 6.8, Result: 204.7864

Until next time,

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Sunday, May 15, 2022

### Python: Financial Functions (2nd Edition)

Python:  Financial Functions (2nd Edition)

This is an update to the python file, which I first released on May 17, 2020:

I am able to transfer and test the python file to a Numworks calculator through the online editor, and TI-84 Plus CE Python through the TI Connect CE.  Because only the math module is used, the python file can be run in most, if not all calculators with Python, as well as Python 3.

What is included?

*  time value of money calculations

*  net present value and internal rate of return

*  net present value (xnpv) and internal rate of return (xirr) when periods between flows are not consistent, a 365 day-year is assumed

*  simple interest:  calculating interest, total, and solving for principal

*  profit calculations: cost-sell-markup

*  percent change

*  present and future value uniform stream factors

*  compound interest calculations of a single stream:  solve for present value, future value, number of periods, and periodic interest

*  days between dates

*  specific applications:  monthly payment, PITI, qualifying loan amount, sinking fund, expressing a list of amounts as a percent of the sum, prorating an amount among a list of flows

Eddie

All original content copyright, © 2011-2020.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Saturday, May 14, 2022

### The Sum and Product of Roots of a Quadratic Equation

The Sum and Product of Roots of a Quadratic Equation

Introduction

Let s, t be the roots of the equation a*x^2 + b*x + c = 0.

Let:

s = (-b + √(b^2 - 4*a*c)) / (2 * a)

t = (-b - √(b^2 - 4*a*c)) / (2 * a)

Then

s + t = -b / a

s * t = c / a

We see this topic a lot in algebra, let's see how these properties are derived. Fairly simple.

Sum of the Roots

s + t

=  (-b + √(b^2 - 4*a*c)) / (2 * a) + (-b - √(b^2 - 4*a*c)) / (2 * a)

= (-2 * b) / (2 * a)

= -b / a

Product of the Roots

s * t

=  (-b + √(b^2 - 4*a*c)) / (2 * a) * (-b - √(b^2 - 4*a*c)) / (2 * a)

= (b^2 + b * √(b^2 - 4*a*c) - b * √(b^2 - 4*a*c) - (b^2 - 4*a*c)) / (4*a^2)

= (b^2 - b^2 + 4*a*c) / (4*a^2)

= (4*a*c) / (4*a^2)

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Monday, May 9, 2022

### Retro Review: Hewlett Packard HP 45

Retro Review:   Hewlett Packard HP 45

Quick Facts:

Model:  HP 45

Company:  Hewlett Packard

Years:  1973-1976

Type:  Scientific

Batteries: (original) HP Battery Pack 82001A (rechargeable), compatible batteries can be found on eBay, AC Adapter 82002A

Operating Mode:  RPN

Memory Registers: 9 (R1 - R9), some are used in statistics

Undocumented (by the manual) Feature:  Stopwatch

Original Price:  \$395.00 (US)

Package Includes AC Adapter, User Manual, Pocket Guide, Carrying Case

Features - History

The HP 45 is the second scientific calculator by Hewlett Packard, first brought to the market in 1973; after the legendary HP 35 was released in 1972.  The HP 45 is the second Hewlett Packard calculator to feature a shift key, after HP's first financial calculator, the HP 80.

The HP 45 operates on Reverse Polar Notation (RPN).   Here is a Wikipedia page on RPN:  https://en.wikipedia.org/wiki/Reverse_Polish_notation

The HP 45 added more functions to the HP 35, which features include:

* trigonometric functions and inverses

* logarithms and antilogs

* powers and roots

* fixed and scientific

* factorial of integers

* polar/rectangular conversions

* degrees/degree-minute-second conversions (DD.MMSSSS)

* percent and percent change

* Last x

* three unit conversions

* statistics

* storage and recall arithmetic

When the HP 45 is powered on, the calculator will be in FIX 2 mode.

Factorial of Integers:   The function n! allows only integers from 0 to 69.  It will be later HP calculators to extend the factorial function to the real numbers.

Polar and Rectangular Conversions:  The conversions involve the X and Y stack.  In polar form, X represents r and Y represents θ.

Conversions:  The HP 45 provides conversion factors for unit conversions. Examples provided in FIX 2 mode.

[ shift ] [ 7 ]: cm/in.   1 in = 2.54 cm.

18 in to cm:  18 [ shift ] [ 7 ] [ × ] returns 45.72 cm

50 cm to in:  50 [ shift ] [ 7 ] [ ÷ ] returns 19.69 ft

[ shift ] [ 8 ]:  kg/lb.   1 lb ≈ .4536 kg

200 lb to kg:  200 [ shift ] [ 8 ] [ × ] returns 90.72 kg

66.5 kg to lb:  66.5 [ shift ] [ 8 ] [ ÷ ] returns 146.61 lb

[ shift ] [ 9 ]: ltr/gal.  1 gal ≈ 3.7854 ltr

150 gal to ltr:  150 [ shift ] [ 9 ] [ × ] returns 567.81ltr

690 ltr to gal:  690 [ shift ] [ 9 ] [ ÷ ] returns 182.28 gal

Percent:  The [ % ] key returns x% of y, while leaving the value in the Y stack.  This could be followed up with [ + ] or [ - ] for percent adding and subtracting calculations.

150 [ ENTER ] 6 [ % ] [ + ] returns 159.00

Percent Change:  The [ shift ] [ % ] (∆%) calculates percent change:  (y - x)/y * 100 with the value of the Y stack remains. y is old, x is new.

What is the percent change from 35 to 45?

35 [ ENTER ] 45 [ shift ] [ % ] returns 28.57 (%)

The HP 45 has storage and recall arithmetic for the four arithmetic functions (+, -, ×, ÷).  I love storage arithmetic and any time we get recall arithmetic, it's a huge bonus.

The keyboard feels good and the keys feel responsive.

Statistics

The HP 45 has one-variable statistics, which some sums for y-data.

R5 = n

R6 = Σx^2

R7 = Σx

R8 = Σy

RCL Σ+ returns Σx to the X stack and Σy to the Y stack

[ shift ] [ R↓ ] returns x-bar to the X stack and sx to the Y stack

Stopwatch

A famous and undocumented feature of the HP 45 is a stopwatch.  The stopwatch is accessed by the sequence [ RCL ] then pressing [ 7 ], [ 8 ], and [ CHS ] keys at the same time.  Done right the display will be in the form:

hh.mm ss     'ss

Press [ CHS ] to start and stop the timer, and any number keys can be used to store the time for lap records.  The stored time will be stored as a decimal and the two two digit exponent will store the hundredths of seconds.

Pressing [ CLx ] clears the time and [ ENTER ] returns us to the operator mode.  I understand that due to the lack of crystal, the timer is somewhat inaccurate.

Closing Thoughts

I love this calculator!   It's good to have a calculator from the 1970s, especially from HP.

Until next time,

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

## Friday, May 6, 2022

### HP 32S and HP 32SII Week: Maximum, Minimum , Histogram

HP 32S and HP 32SII Week:  Maximum, Minimum , Histogram

Introduction

The program takes data and determines:

*  maximum of the data set (X)

*  minimum of the data set (Y)

*  bin width using Scott's normal rule (h, see formula below)

*  number of bins (k, rounding is not included)

Scott's normal rule:

h = 3.49 * sx / (n^(1/3))

Number of bins:

k = (max - min) / h

In practice, take the ceiling of k.

Instructions

1.  Enter the first data point.

2.  Press XEQ D  (execute label D)

3.  Enter the next data point, press R/S.  Repeat until the last data point.

4.  Press XEQ C

HP 32S/32SII Program:  Maximum, Minimum, Bin Width, Number of Bins

Total Size (labels D, S, C): 61.5, plus 48 bytes for statistical data

(D: 6.0, S: 18.0, C:  37.5)

D01 LBL D  // data

D02 CLΣ

D03 STO X

D04 STO Y

S01 LBL S

S02 RCL X

S03 x<>y

S04 x>y?

S05 STO X

S06 RCL Y

S07 x<>y

S08 x<y?

S09 STO Y

S10 Σ+

S11 STOP

S12 GTO S

C01 LBL C

C02 RCL X

C03 STOP

C04 RCL Y

C05 STOP

C06 -

C07 49

C08 1

C09 %   // C07 - C09: build 0.49 in 4.5 bytes instead of 9.5 bytes

C10 3

C11 +

C12 Sx

C13 ×

C14 n

C15 3

C16 1/x

C17 y^x

C18 ÷

C19 STO H

C20 STOP

C21 RCL X

C22 RCL- Y

C23 RCL÷ H

C24 STO K

C25 STOP

Example

Data Set:

4.0

5.8

5.7

5.2

4.6

4.9

6.3

7.1

6.6

6.4

4 XEQ D

5.8 R/S

5.7 R/S

...

6.4 R/S

XEQ C

X:  max:  7.1

Y:  min:  4

h:  1.58387549541

k:  1.95722454763  (2 bins)

Source:

"Histogram"  Wikipedia.  Last Updated March 28, 2022. https://en.wikipedia.org/wiki/Histogram  Last Accessed March 31, 2022.

Up next:  a review of the HP 45 - May 9, 2022

Eddie

All original content copyright, © 2011-2022.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

### Numworks: Allowing Repeated Calculations in Python

Numworks: Allowing Repeated Calculations in Python Introduction Say we want the user to repeat a calculation or a routine for as lo...