(42S) Argument, Real Part, Imaginary Part, and Sign Function - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Software Libraries (/forum-10.html) +--- Forum: General Software Library (/forum-13.html) +--- Thread: (42S) Argument, Real Part, Imaginary Part, and Sign Function (/thread-12039.html) |
(42S) Argument, Real Part, Imaginary Part, and Sign Function - Eddie W. Shore - 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 Code:
HP 42S Program: REAL Code:
HP 42S Program: IMAG Code:
HP 42S Program: SIGN Code:
Original Blog Entry Link: https://edspi31415.blogspot.com/2018/12/hp-42sdm-42free42-argument-real-part.html RE: (42S) Argument, Real Part, Imaginary Part, and Sign Function - Paul Dale - 12-29-2018 05:48 AM What about: Code: LBL "SIGN" Which (I think, I've no 42 to hand) sets LastX properly and doesn't impact the stack. Pauli RE: (42S) Argument, Real Part, Imaginary Part, and Sign Function - Thomas Klemm - 12-29-2018 06:35 AM (12-29-2018 05:25 AM)Eddie W. Shore Wrote: The HP 42S* has only one extraction function for complex numbers: ABS (absolute value) by default. What about using the built-in SIGN function? RE: (42S) Argument, Real Part, Imaginary Part, and Sign Function - Dieter - 12-29-2018 08:50 AM (12-29-2018 05:48 AM)Paul Dale Wrote: What about: This would work if (!) the 42s allowed tests for complex numbers. ;-) But it throws an "Invalid Type" error here. (12-29-2018 06:35 AM)Thomas Klemm Wrote: What about using the built-in SIGN function? Yes, a complex sign function is not required, the built-in function works nicely. For complex arguments it even returns 0 for 0+0i. For real arguments sign(0) is returned as 1. Maybe for compatibility with the HP-41 which does it the same way. Here SIGN returns 0 only for Alpha data (!). Dieter RE: (42S) Argument, Real Part, Imaginary Part, and Sign Function - Gerald H - 12-30-2018 07:12 PM On my real HP 42S SIGN returns 0+0i for input 0+0i RE: (42S) Argument, Real Part, Imaginary Part, and Sign Function - Dieter - 12-30-2018 08:19 PM (12-30-2018 07:12 PM)Gerald H Wrote: [ SIGN returns 0+0i for input 0+0i ] Same for Free42. For complex arguments SIGN always returns a complex result. Sorry, my description "...it even returns 0 for 0+0i" was inaccurate. Dieter |