12-29-2018, 05:25 AM

The HP 42S* has only one extraction function for complex numbers: ABS (absolute value) by default. To complete the list, here are some programs for ARG (argument), REAL (real part), and IMAG (imaginary part). The three functions take a complex number, in either rectangular or polar form.

Using stack commands and flag checks, I am able to get obtain results without affecting the stack much (although the z and t stacks will have the same value).

Also included is the SIGN (signum) function.

* This applies to the Swiss Micros DM42 (it should work), Free42 from Thomas Oakken, and any other HP 42S emulator apps. The print out is from Free42 (and I also have a physical HP 42S).

Disclaimer: I don't own a DM42... yet.

HP 42S Program: ARG

HP 42S Program: REAL

HP 42S Program: IMAG

HP 42S Program: SIGN

Original Blog Entry Link: https://edspi31415.blogspot.com/2018/12/...-part.html

Using stack commands and flag checks, I am able to get obtain results without affecting the stack much (although the z and t stacks will have the same value).

Also included is the SIGN (signum) function.

* This applies to the Swiss Micros DM42 (it should work), Free42 from Thomas Oakken, and any other HP 42S emulator apps. The print out is from Free42 (and I also have a physical HP 42S).

Disclaimer: I don't own a DM42... yet.

HP 42S Program: ARG

Code:

00 { 19-Byte Prgm }

01▸LBL "ARG"

02 COMPLEX

03 X<>Y

04 FC? 73

05 →POL

06 R↑

07 STO ST Y

08 R↓

09 R↓

10 RTN

11 .END.

HP 42S Program: REAL

Code:

00 { 21-Byte Prgm }

01▸LBL "REAL"

02 COMPLEX

03 X<>Y

04 FS? 73

05 →REC

06 X<>Y

07 R↑

08 STO ST Y

09 R↓

10 R↓

11 RTN

12 END

HP 42S Program: IMAG

Code:

00 { 20-Byte Prgm }

01▸LBL "IMAG"

02 COMPLEX

03 X<>Y

04 FS? 73

05 →REC

06 R↑

07 STO ST Y

08 R↓

09 R↓

10 RTN

11 END

HP 42S Program: SIGN

Code:

00 { 15-Byte Prgm }

01▸LBL "SIGN"

02 X=0?

03 RTN

04 ENTER

05 ABS

06 X<>Y

07 ÷

08 RTN

09 END

Original Blog Entry Link: https://edspi31415.blogspot.com/2018/12/...-part.html