(50G) Complex (a b)_> a+ib_> Euler & Euler_> a+ib

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (https://www.hpmuseum.org/forum/forum-10.html)
+--- Forum: General Software Library (https://www.hpmuseum.org/forum/forum-13.html)
+--- Thread: (50G) Complex (a b)_> a+ib_> Euler & Euler_> a+ib (/thread-23844.html)



(50G) Complex (a b)_> a+ib_> Euler & Euler_> a+ib - Gil - 2025-07-23

3 programs, that can be assigned to a key, to convert complex numbers into different formats:

1) (a, b) _> 'a+ib' 
2) (a, b) or 'a+ib' _> Euler's form
3) Euler's form  _> (a, b) & 'a+ib'

1) ab_>i 
\\<< -105 CF C\\->R \\-> a b
  \\<< \"'\" a 0 \\=/
    IF
    THEN a DUP FP 0 ==
      IF
      THEN R\\->I
      END \\->STR +
    END b 0 \\>= \"+i*\" \"-i*\" IFTE + b DUP FP 0 ==
    IF
    THEN R\\->I
    END ABS + OBJ\\->
  \\>>
\\>>

Example
Input (5.,6.) 
Output '5+i*6' (5.,6.)


2) _>EULER
\\<< -103 SF -105 SF EVAL -105 CF -3 CF RAD DUP ABS SWAP ARG i * EXP *
\\>>

Example
Input (5.,6.) or '5+i*6' (5.,6.)
Output 
 '7.81024967591*EXP(.876058050598*i)


3) EULER_> 
\\<< RAD -105 CF OBJ\\-> DROP2 OBJ\\-> DROP2 OBJ\\-> 3 DROPN DUP2 COS * SWAP SIN ROT * R\\->C DUP ab\\->i
\\>>

Example
Input  '7.81024967591*EXP(.876058050598*i)' Outputs (5.00000000001,6.) & '5.00000000001+i*6' }