Post Reply 
erfi, erfw (w(z)) functions
09-03-2021, 10:39 AM
Post: #3
RE: erfi, erfw (w(z)) functions
For odd functions (erf ↔ erfi, sin ↔ sinh, tan ↔ tanh, and their inverse), we can swap the parts.

Let swap(x + y*i) = y + x*i

sinh(z) = swap(sin(swap(z)))
sin(z) = swap(sinh(swap(z)))
...

>>> from cmath import *
>>> sin(3+4j)
(3.8537380379193773-27.016813258003932j)
>>> sinh(4+3j)
(-27.016813258003932+3.8537380379193773j)

This is easier to remember, without worrying signs of ×/÷ i
Code is likely simpler, since ×/÷ i is usually implemented by swap parts, then fix sign.

From HP-71B cpr.a, http://www.jeffcalc.hp41.eu/emu71/mathrom.html
Code:
* ************************
* mpyi
* multiply (x,y) in (A,B) (R0,R1) by i
* i*(x+i*y)=-y+i*x
* result is (-y,x)
m733F
mpyi    GOSUB  Exab1  m734B    swap x<>y
        A=-A-1 S               negate y
        RTN

* ************************
* mpymi
* multiply (x,y) in (A,B) (R0,R1) by -i
* -i*(x+i*y)=y-i*x
* result is (y,-x)
m7348
mpymi   A=-A-1 S               negate x
m734B
Exab1   GOLONG exab1  m76D7    swap x<>y

Proof is trivial, since swap(z) = i*conj(z)

sinh(z) = sin(i*z) / i
conj(sinh(z)) = sinh(conj(z)) = sin(i*conj(z)) / i

Multiply-by-i, and replace i*conj() by swap()

swap(sinh(z)) = sin(swap(z))
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
erfi, erfw (w(z)) functions - salvomic - 11-01-2017, 06:03 PM
RE: erfi, erfw (w(z)) functions - Albert Chan - 09-03-2021 10:39 AM



User(s) browsing this thread: 1 Guest(s)