exojax.special package

Submodules

exojax.special.erfcx module

exojax.special.erfcx.erfcx(float) based on Shepherd and Laframboise (1981)

Scaled complementary error function exp(-x*x) erfc(x)

Args: x: should be larger than -9.3

Returns:

erfcx(x)

Return type:

jnp.array

exojax.special.expn module

exojax.special.expn.E1(x)

Abramowitz Stegun (1970) approximation of the exponential integral of the first order, E1.

Parameters:

x – input

Returns:

The exponential integral of the first order, E1(x)

exojax.special.faddeeva module

Faddeeva (wofz= w of z) functions (real and imag parts), an asymptotic form of wofz.

Note

We adopt ncut=27 as the summation of n in Algorithm 916. For Sigma1, we use ncut=8 because higher order than 9 does not affect the results.

exojax.special.faddeeva.asymptotic_wofz(x, y)

Asymptotic representation of wofz (Faddeeva) function 1 for |z|**2 > 112 (for e = 10e-6)

See Zaghloul (2018) arxiv:1806.01656

Parameters:
  • x – real x

  • y – real y

Returns:

wofz(x+iy)

Return type:

jnp.array (complex)

exojax.special.faddeeva.faddeeva_sigma1(exx, y2)
exojax.special.faddeeva.h_bwd(res, g)

backward.

Note

V=Real(wofz), L=Imag(wofz)

Parameters:
  • res – res from h_fwd

  • g – g

Returns:

g* partial_x h(x,y), g* partial_y h(x,y)

Return type:

jnp.array, jnp.array

exojax.special.faddeeva.h_fwd(x, y)
exojax.special.faddeeva.imwofz(x, y)

Imaginary part of wofz (Faddeeva) function based on Algorithm 916.

We apply a=0.5 for Algorithm 916.

Parameters:
  • x – x < ncut/2

  • y

Returns:

Imag(wofz(x+iy))

Return type:

jnp.array

exojax.special.faddeeva.rewofz(x, y)

Real part of wofz (Faddeeva) function based on Algorithm 916.

We apply a=0.5 for Algorithm 916.

Parameters:
  • x – x < ncut/2

  • y

Returns:

Real(wofz(x+iy))

Return type:

jnp.array

exojax.special.j0 module

exojax.special.j0.j0(x)

Bessel function of the 1st kind, order=0.

Parameters:

x – x

Returns:

J0

Module contents