### 15.5 Exponential Integrals

The Exponential Integral and related functions are defined in Abramowitz and Stegun, Handbook of Mathematical Functions, A&S Chapter 5.

Function: expintegral_e1 (z)

  The Exponential Integral E1(z) defined as

  $$ E_1(z) = \int_z^\infty {e^{-t} \over t} dt $$

  with \(\left| \arg z \right| < \pi\). (A&S eqn 5.1.1) and (DLMF 6.2E2)

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_ei (x)

  The Exponential Integral Ei(x) defined as

  $$ Ei(x) = - -\kern-10.5pt\int_{-x}^\infty {e^{-t} \over t} dt = -\kern-10.5pt\int_{-\infty}^x {e^{t} \over t} dt $$

  with x real and x > 0. (A&S eqn 5.1.2) and (DLMF 6.2E5)

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_li (x)

  The Exponential Integral li(x) defined as

  $$ li(x) = -\kern-10.5pt\int_0^x {dt \over \ln t} $$

  with x real and x > 1. (A&S eqn 5.1.3) and (DLMF 6.2E8)

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_e (n,z)

  The Exponential Integral En(z) (A&S eqn 5.1.4) defined as

  $$ E_n(z) = \int_1^\infty {e^{-zt} \over t^n} dt $$

  with \({\rm Re}(z) > 1\) and n a non-negative integer.

  For half-integral orders, this can be written in terms of `erfc` or `erf`. See expintexpand for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_si (z)

  The Exponential Integral Si(z) (A&S eqn 5.2.1 and DLMF 6.2#E9) defined as

  $$ {\rm Si}(z) = \int_0^z {\sin t \over t} dt $$

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_ci (z)

  The Exponential Integral Ci(z) (A&S eqn 5.2.2 and DLMF 6.2#E13) defined as

  $$ {\rm Ci}(z) = \gamma + \log z + \int_0^z {{\cos t - 1} \over t} dt $$

  with \(|\arg z| < \pi\).

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_shi (z)

  The Exponential Integral Shi(z) (A&S eqn 5.2.3 and DLMF 6.2#E15) defined as

  $$ {\rm Shi}(z) = \int_0^z {\sinh t \over t} dt $$

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Function: expintegral_chi (z)

  The Exponential Integral Chi(z) (A&S eqn 5.2.4 and DLMF 6.2#E16) defined as

  $$ {\rm Chi}(z) = \gamma + \log z + \int_0^z {{\cosh t - 1} \over t} dt $$

  with \(|\arg z| < \pi\).

  This can be written in terms of other functions. See expintrep for examples.

  Categories:Exponential Integrals ·Special functions ·

Option variable: expintrep

  Default value: false

  Change the representation of one of the exponential integrals, `expintegral_e(m, z)`, `expintegral_e1`, or `expintegral_ei` to an equivalent form if possible.

  Possible values for `expintrep` are `false`, `gamma_incomplete`, `expintegral_e1`, `expintegral_ei`, `expintegral_li`, `expintegral_trig`, or `expintegral_hyp`.

  `false` means that the representation is not changed. Other values indicate the representation is to be changed to use the function specified where `expintegral_trig` means `expintegral_si`, `expintegral_ci`; and `expintegral_hyp` means `expintegral_shi` or `expintegral_chi`.

  Here are some examples for `expintrep` set to `gamma_incomplete`:

      (%i1) expintrep:'gamma_incomplete;
      (%o1)                          gamma_incomplete
      (%i2) expintegral_e1(z);
      (%o2)                       gamma_incomplete(0, z)
      (%i3) expintegral_ei(z);
      (%o3)            log(z) - log(- z) - gamma_incomplete(0, - z)
      (%i4) expintegral_li(z);
      (%o4)     log(log(z)) - log(- log(z)) - gamma_incomplete(0, - log(z))
      (%i5) expintegral_e(n,z);
                                                         n - 1
      (%o5)                  gamma_incomplete(1 - n, z) z
      (%i6) expintegral_si(z);
      (%o6) (%i ((- log(%i z)) + log(- %i z) - gamma_incomplete(0, %i z)
                                                    + gamma_incomplete(0, - %i z)))/2
      (%i7) expintegral_ci(z);
      (%o7) log(z) - (log(%i z) + log(- %i z) + gamma_incomplete(0, %i z)
                                                     + gamma_incomplete(0, - %i z))/2
      (%i8) expintegral_shi(z);
            log(z) - log(- z) + gamma_incomplete(0, z) - gamma_incomplete(0, - z)
      (%o8) ---------------------------------------------------------------------
                                              2
      (%i9) expintegral_chi(z);
      (%o9)
            (- log(z)) + log(- z) + gamma_incomplete(0, z) + gamma_incomplete(0, - z)
          - -------------------------------------------------------------------------
                                                2

  For `expintrep` set to `expintegral_e1`:

      (%i1) expintrep:'expintegral_e1;
      (%o1)                           expintegral_e1
      (%i2) expintegral_ei(z);
      (%o2)               log(z) - log(- z) - expintegral_e1(- z)
      (%i3) expintegral_li(z);
      (%o3)       log(log(z)) - log(- log(z)) - expintegral_e1(- log(z))
      (%i4) expintegral_e(n,z);
      (%o4)                         expintegral_e(n, z)
      (%i5) expintegral_si(z);
      (%o5) (%i ((- log(%i z)) - expintegral_e1(%i z) + log(- %i z)
                                                         + expintegral_e1(- %i z)))/2
      (%i6) expintegral_ci(z);
      (%o6) log(z)
                log(- %i z) (expintegral_e1(%i z) + expintegral_e1(- %i z)) log(%i z)
              - ---------------------------------------------------------------------
                                                  2
      (%i7) expintegral_shi(z);
                log(z) + expintegral_e1(z) - log(- z) - expintegral_e1(- z)
      (%o7)     -----------------------------------------------------------
                                             2
      (%i8) expintegral_chi(z);
               (- log(z)) + expintegral_e1(z) + log(- z) + expintegral_e1(- z)
      (%o8)  - ---------------------------------------------------------------
                                              2

  For `expintrep` set to `expintegral_ei`:

      (%i1) expintrep:'expintegral_ei;
      (%o1)                           expintegral_ei
      (%i2) expintegral_e1(z);
                                                1
                               log(- z) - log(- -)
                                                z
      (%o2)       (- log(z)) + ------------------- - expintegral_ei(- z)
                                        2
      (%i3) expintegral_ei(z);
      (%o3)                          expintegral_ei(z)
      (%i4) expintegral_li(z);
      (%o4)                       expintegral_ei(log(z))
      (%i5) expintegral_e(n,z);
      (%o5)                         expintegral_e(n, z)
      (%i6) expintegral_si(z);
      (%o6) (%i (log(%i z) + 2 (expintegral_ei(- %i z) - expintegral_ei(%i z))
                                                                  %i          %i
                                              - log(- %i z) + log(--) - log(- --)))/4
                                                                  z           z
      (%i7) expintegral_ci(z);
      (%o7) ((- log(%i z)) + 2 (expintegral_ei(%i z) + expintegral_ei(- %i z))
                                                          %i          %i
                                      - log(- %i z) + log(--) + log(- --))/4 + log(z)
                                                          z           z
      (%i8) expintegral_shi(z);
      (%o8) ((- 2 log(z)) + 2 (expintegral_ei(z) - expintegral_ei(- z)) + log(- z)
                                                                                1
                                                                        - log(- -))/4
                                                                                z
      (%i9) expintegral_chi(z);
      (%o9)
                                                                                   1
         2 log(z) + 2 (expintegral_ei(z) + expintegral_ei(- z)) - log(- z) + log(- -)
                                                                                   z
         ----------------------------------------------------------------------------
                                              4

  For `expintrep` set to `expintegral_li`:

      (%i1) expintrep:'expintegral_li;
      (%o1)                           expintegral_li
      (%i2) expintegral_e1(z);
                                                                       1
                                                      log(- z) - log(- -)
                                     - z                               z
      (%o2)      (- expintegral_li(%e   )) - log(z) + -------------------
                                                               2
      (%i3) expintegral_ei(z);
                                                     z
      (%o3)                         expintegral_li(%e )
      (%i4) expintegral_li(z);
      (%o4)                          expintegral_li(z)
      (%i5) expintegral_e(n,z);
      (%o5)                         expintegral_e(n, z)
      (%i6) expintegral_si(z);
                                   %i z                     - %e z    %pi signum(z)
              %i (expintegral_li(%e    ) - expintegral_li(%e      ) - -------------)
                                                                            2
      (%o6) - ----------------------------------------------------------------------
                                                2
      (%i7) expintegral_ci(z);
                              %i z                     - %i z
             expintegral_li(%e    ) + expintegral_li(%e      )
      (%o7)  ------------------------------------------------- - signum(z) + 1
                                     2
      (%i8) expintegral_shi(z);
                                         z                     - z
                        expintegral_li(%e ) - expintegral_li(%e   )
      (%o8)             -------------------------------------------
                                             2
      (%i9) expintegral_chi(z);
                                         z                     - z
                        expintegral_li(%e ) + expintegral_li(%e   )
      (%o9)             -------------------------------------------
                                             2

  For `expintrep` set to `expintegral_trig`:

      (%i1) expintrep:'expintegral_trig;
      (%o1)                          expintegral_trig
      (%i2) expintegral_e1(z);
      (%o2) log(%i z) - %i expintegral_si(%i z) - expintegral_ci(%i z) - log(z)
      (%i3) expintegral_ei(z);
      (%o3) (- log(%i z)) - %i expintegral_si(%i z) + expintegral_ci(%i z) + log(z)
      (%i4) expintegral_li(z);
      (%o4) (- log(%i log(z))) - %i expintegral_si(%i log(z))
                                            + expintegral_ci(%i log(z)) + log(log(z))
      (%i5) expintegral_e(n,z);
      (%o5)                         expintegral_e(n, z)
      (%i6) expintegral_si(z);
      (%o6)                          expintegral_si(z)
      (%i7) expintegral_ci(z);
      (%o7)                          expintegral_ci(z)
      (%i8) expintegral_shi(z);
      (%o8)                      - %i expintegral_si(%i z)
      (%i9) expintegral_chi(z);
      (%o9)            (- log(%i z)) + expintegral_ci(%i z) + log(z)

  For `expintrep` set to `expintegral_hyp`:

      (%i1) expintrep:'expintegral_hyp;
      (%o1)                           expintegral_hyp
      (%i2) expintegral_e1(z);
      (%o2)               expintegral_shi(z) - expintegral_chi(z)
      (%i3) expintegral_ei(z);
      (%o3)               expintegral_shi(z) + expintegral_chi(z)
      (%i4) expintegral_li(z);
      (%o4)          expintegral_shi(log(z)) + expintegral_chi(log(z))
      (%i5) expintegral_e(n,z);
      (%o5)                         expintegral_e(n, z)
      (%i6) expintegral_si(z);
      (%o6)                     - %i expintegral_shi(%i z)
      (%i7) expintegral_ci(z);
      (%o7)           (- log(%i z)) + expintegral_chi(%i z) + log(z)
      (%i8) expintegral_shi(z);
      (%o8)                         expintegral_shi(z)
      (%i9) expintegral_chi(z);
      (%o9)                         expintegral_chi(z)

  Categories:Exponential Integrals ·

Option variable: expintexpand

  Default value: false

  Expand `expintegral_e(n,z)` for half integral values in terms of `erfc` or `erf` and for positive integers in terms of `expintegral_ei`.

      (%i1) expintegral_e(1/2,z);
                                                  1
      (%o1)                         expintegral_e(-, z)
                                                  2
      (%i2) expintegral_e(1,z);
      (%o2)                         expintegral_e(1, z)
      (%i3) expintexpand:true;
      (%o3)                                true
      (%i4) expintegral_e(1/2,z);
                                  sqrt(%pi) erfc(sqrt(z))
      (%o4)                       -----------------------
                                          sqrt(z)
      (%i5) expintegral_e(1,z);
                                     1
                               log(- -) - log(- z)
                                     z
      (%o5)       (- log(z)) - ------------------- - expintegral_ei(- z)
                                        2

  Categories:Exponential Integrals ·