@cindex exponential integrals
@cindex integrals, exponential

Information on the exponential integrals can be found in Abramowitz &
Stegun, Chapter 5.  These functions are declared in the header file
@file{gsl_sf_expint.h}.

@menu
* Exponential Integral::        
* Ei(x)::                       
* Hyperbolic Integrals::        
* Ei_3(x)::                     
* Trigonometric Integrals::     
* Arctangent Integral::         
@end menu

@node Exponential Integral
@subsection Exponential Integral
@cindex E1(x), E2(x), Ei(x)

@deftypefun double gsl_sf_expint_E1 (double @var{x})
@deftypefunx int gsl_sf_expint_E1_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the exponential integral @math{E_1(x)},
@tex
\beforedisplay
$$
E_1(x) := \Re \int_1^\infty dt \exp(-xt)/t.
$$
\afterdisplay
@end tex
@ifinfo

@example
E_1(x) := \Re \int_1^\infty dt \exp(-xt)/t.
@end example

@end ifinfo
@noindent
@comment Domain: x != 0.0
@comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun

@deftypefun double gsl_sf_expint_E2 (double @var{x})
@deftypefunx int gsl_sf_expint_E2_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the second-order exponential integral @math{E_2(x)},
@tex
\beforedisplay
$$
E_2(x) := \Re \int_1^\infty dt \exp(-xt)/t^2.
$$
\afterdisplay
@end tex
@ifinfo

@example
E_2(x) := \Re \int_1^\infty dt \exp(-xt)/t^2.
@end example

@end ifinfo
@noindent
@comment Domain: x != 0.0
@comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun

@deftypefun double gsl_sf_expint_En (int @var{n}, double @var{x})
@deftypefunx int gsl_sf_expint_En_e (int @var{n}, double @var{x}, gsl_sf_result * @var{result})
These routines compute the exponential integral @math{E_n(x)} of order @math{n}, 
@tex
\beforedisplay
$$
E_n(x) := \Re \int_1^\infty dt \exp(-xt)/t^n.
$$
\afterdisplay
@end tex
@ifinfo

@example
E_n(x) := \Re \int_1^\infty dt \exp(-xt)/t^n.
@end example

@end ifinfo
@noindent
@comment Domain: x != 0.0
@comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun


@node Ei(x)
@subsection Ei(x)

@deftypefun double gsl_sf_expint_Ei (double @var{x})
@deftypefunx int gsl_sf_expint_Ei_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the exponential integral @c{$\hbox{Ei}(x)$}
@math{Ei(x)},
@tex
\beforedisplay
$$
\hbox{Ei}(x) := - PV\left(\int_{-x}^\infty dt \exp(-t)/t\right)
$$
\afterdisplay
@end tex
@ifinfo

@example
Ei(x) := - PV(\int_@{-x@}^\infty dt \exp(-t)/t)
@end example

@end ifinfo
@noindent
where @math{PV} denotes the principal value of the integral.
@comment Domain: x != 0.0
@comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun


@node Hyperbolic Integrals
@subsection Hyperbolic Integrals
@cindex hyperbolic integrals
@cindex Shi(x)
@cindex Chi(x)

@deftypefun double gsl_sf_Shi (double @var{x})
@deftypefunx int gsl_sf_Shi_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the integral @c{$\hbox{Shi}(x) = \int_0^x dt \sinh(t)/t$}
@math{Shi(x) = \int_0^x dt \sinh(t)/t}.
@comment Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun


@deftypefun double gsl_sf_Chi (double @var{x})
@deftypefunx int gsl_sf_Chi_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the integral @c{$\hbox{Chi}(x) := \Re[ \gamma_E + \log(x) + \int_0^x dt (\cosh(t)-1)/t]$}
@math{ Chi(x) := \Re[ \gamma_E + \log(x) + \int_0^x dt (\cosh(t)-1)/t] }, 
where @math{\gamma_E} is the Euler constant (available as the macro @code{M_EULER}).
@comment Domain: x != 0.0
@comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
@end deftypefun


@node Ei_3(x)
@subsection Ei_3(x)

@deftypefun double gsl_sf_expint_3 (double @var{x})
@deftypefunx int gsl_sf_expint_3_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the third-order exponential integral @c{${\rm Ei}_3(x) = \int_0^xdt \exp(-t^3)$}
@math{Ei_3(x) = \int_0^xdt \exp(-t^3)} for @c{$x \ge 0$}
@math{x >= 0}.
@comment Exceptional Return Values: GSL_EDOM
@end deftypefun

@node Trigonometric Integrals
@subsection Trigonometric Integrals
@cindex trigonometric integrals
@cindex Si(x)
@cindex Ci(x)
@deftypefun double gsl_sf_Si (const double @var{x})
@deftypefunx int gsl_sf_Si_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the Sine integral @c{$\hbox{Si}(x) = \int_0^x dt \sin(t)/t$}
@math{Si(x) = \int_0^x dt \sin(t)/t}.
@comment Exceptional Return Values: none
@end deftypefun

 
@deftypefun double gsl_sf_Ci (const double @var{x})
@deftypefunx int gsl_sf_Ci_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the Cosine integral @c{$\hbox{Ci}(x) = -\int_x^\infty dt \cos(t)/t$}
@math{Ci(x) = -\int_x^\infty dt \cos(t)/t} for @math{x > 0}.  
@comment Domain: x > 0.0
@comment Exceptional Return Values: GSL_EDOM
@end deftypefun


@node Arctangent Integral
@subsection Arctangent Integral
@cindex arctangent integral
@deftypefun double gsl_sf_atanint (double @var{x})
@deftypefunx int gsl_sf_atanint_e (double @var{x}, gsl_sf_result * @var{result})
These routines compute the Arctangent integral, which is defined as @c{$\hbox{AtanInt}(x) = \int_0^x dt \arctan(t)/t$}
@math{AtanInt(x) = \int_0^x dt \arctan(t)/t}.
@comment Domain: 
@comment Exceptional Return Values: 
@end deftypefun

