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