HP35s - Complex Numbers - The Convenient Way
|
05-17-2016, 08:08 AM
Post: #1
|
|||
|
|||
HP35s - Complex Numbers - The Convenient Way
Hi all!
I have seen many (very intelligent) programs to improve the deficits of the HP35s in handling complex numbers. After trying lots of them I finally ended a "convenient way", which means menu driven, preserving the stack and using equations (instead of stack operations). As you can see in the program listing I am "wasting" six variables (x,y,z,t,a,b) to save the stack, calculate new values and restore the stack as required. There are 3 types how to represent complex numbers on the HP35s (C, R and P): Complex notation x+iy or r/_a, rectangular notation x and y (in register X and Y) or polar notation r and angle a (in register X and Y). So six transformations are possible: C>PR ... complex to polar or complex to rectangular P>CR ... polar to complex or polar to rectangular R>CP ... rectangular to complex or rectangular to polar As the HP35s has 14 digits only to show a menu there is no place to show menu numbers. So I decided to draw a short menu like "C>PR P>CR R>CP" which means that the user has to remember that C>P means menu number 1, C>R means menu number 2, P>C means menu number 3 ... and so on. Conjugation was not programmed. Instead you can convert a complex number to R-type, swap XY, change sign (of the complex part) and swap XY back. Alternatively you can do it with converting to P-type and change the sign of the angle. Example: To demonstrate most features try to calculate (1+i) + conjugate(sqrt(1+1)/_(-90/2)) with i ENTER 1 + ... enter first complex number to stack (could be the result of the last operation) 90 +/- 2 / 1 ENTER 1 + SQRT ... enter second complex number to stack R/S 4 R/S swapXY +/- swapXY ... convert it to R-type and conjugate R/S 5 R/S ... convert to complex + ... add both complex numbers Note 1: To simple start complex operations with only one R/S-key-press (instead of XEQ+C+ENTER) I am using a trick of another user of this forum and coded in line 0001 a "GTO C001". That assumes that you should initially reset the program pointer to 0001 (ie with "GTO.."). So any conversion of a complex number can be performed by pressing 3 keys only (R/S, menu_number, R/S): PRGM TOP 0001 GTOc001 Note 2: To enter the "arrow" in the "program menu equation" you can do a "shift_left to inch conversion" and delete every character but the arrow. Program listing (short way) (346 bytes): [c001] LBLc STOx Rdown STOy Rdown STOz Rdown STOt CLx SF10 „[eqn] C>PR P>CR R>CP“ CF10 1 x=y? GTOc037 Rdown 2 x=y? GTOc044 Rdown 3 x=y? GTOc053 Rdown 4 x=y? GTOc056 Rdown 5 x=y? GTOc061 Rdown 6 x=y? GTOc068 GTOc001 [c037] RCLx ARG STOb RCLx ABS STOa GTOc048 [c044] ABS(x)*SIN(ARG(x)) STOb ABS(x)*COS(ARG(x)) STOa [c048] RCLz RCLy RCLb RCLa RTN [c053] x*COS(y)+i*x*SIN(y) STOa GTOc063 [c056] x*SIN(y) STOb x*COS(y) GTOc072 [c061] x+i*y STOa [c063] RCLt RCLt RCLz RCLa RTN [c068] ATAN(y/x) STOb SQRT(x*x+y*y) STOa [c072] RCLt RCLz RCLb RCLa RTN I hope this helps some users to improve the performance of their HP35s. Regards deetee |
|||
05-17-2016, 05:29 PM
Post: #2
|
|||
|
|||
RE: HP35s - Complex Numbers - The Convenient Way
(05-17-2016 08:08 AM)deetee Wrote: Hi all! This was a subject of much discussion when the 35s was released. I have a set of routines stored on my 35s for just these functions, but I use them so infrequently that I always forget which one is which. (I have a little cheat-sheet stored in the case, but who has time find the case and look at that.) I'm glad to see new work in this area, if I get time I may enter your program in my second 35s and give it a try. Thanks for posting. Dave - My mind is going - I can feel it. |
|||
05-28-2016, 11:41 AM
Post: #3
|
|||
|
|||
RE: HP35s - Complex Numbers - The Convenient Way
Yeah - that is exactly what I mean:
After half a year "not" calculating with complex numbers you don't know which shortcut does what. So simple menus and a little more convenient programming technique is worth some extra calculating time and some extra bytes of memory (thank god the hp35s has plenty of memory). Regards deetee |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)