Functions Module
****************

.. module:: sympy.functions

Elementary
==========

This module implements elementary functions, as well as functions like Abs, Max, etc.


Abs
---

Returns the absolute value of the argument.

Examples::
    >>> from sympy.functions import Abs
    >>> Abs(-1)
    1

.. autoclass:: sympy.functions.elementary.complexes.Abs


arg
---

Returns the argument (in radians) of a complex number. For a real
number, the argument is always 0.

Examples::
    >>> from sympy.functions import arg
    >>> from sympy import I, sqrt
    >>> arg(2.0)
    0
    >>> arg(I)
    pi/2
    >>> arg(sqrt(2) + I*sqrt(2))
    pi/4

.. autoclass:: sympy.functions.elementary.complexes.arg

conjugate
---------

Returns the 'complex conjugate <http://en.wikipedia.org/wiki/Complex_conjugation>'_
of an argument. In mathematics, the complex conjugate of a complex number is given
by changing the sign of the imaginary part. Thus, the conjugate of the complex number

    a + ib

(where a and b are real numbers) is

    a - ib

Examples::
    >>> from sympy.functions import conjugate
    >>> from sympy import I
    >>> conjugate(2)
    2
    >>> conjugate(I)
    -I

.. autoclass:: sympy.functions.elementary.complexes.conjugate


Min
---

Returns the minimum of two (comparable) expressions.

Examples::
    >>> from sympy.functions import Min
    >>> Min(1,2)
    1
    >>> from sympy.abc import x
    >>> Min(1, x)
    Min(1, x)

It is named Min and not min to avoid conflicts with the built-in function min.

.. autoclass:: sympy.functions.elementary.miscellaneous.Min


Max
---

Returns the maximum of two (comparable) expressions

It is named Max and not max to avoid conflicts with the built-in function max.

.. autoclass:: sympy.functions.elementary.miscellaneous.Max


re
--

Return the real part of an expression

Examples::
    >>> from sympy.functions import re
    >>> from sympy import I
    >>> re(2+3*I)
    2

.. autoclass:: sympy.functions.elementary.complexes.re


sqrt
----

Returns the square root of an expression. It is equivalent to raise to Rational(1,2)

    >>> from sympy.functions import sqrt
    >>> from sympy import Rational
    >>> sqrt(2) == 2**Rational(1,2)
    True

.. autoclass:: sympy.functions.elementary.miscellaneous.sqrt


sign
----

Returns the sign of an expression, that is:
    -1 if expr is negative
     0 if expr is zero
     1 if expr is positive

     >>> from sympy.functions import sign
     >>> sign(-1)
     -1
     >>> sign(0)
     0

.. autoclass:: sympy.functions.elementary.complexes.sign


Combinatorial
=============

This module implements various combinatorial functions.


Binomial
--------

.. autoclass:: sympy.functions.combinatorial.factorials.binomial


Factorial
---------

.. autoclass:: sympy.functions.combinatorial.factorials.factorial


FallingFactorial
----------------

.. autoclass:: sympy.functions.combinatorial.factorials.FallingFactorial


MultiFactorial
--------------

.. autoclass:: sympy.functions.combinatorial.factorials.MultiFactorial


RisingFactorial
---------------

.. autoclass:: sympy.functions.combinatorial.factorials.RisingFactorial


Special
=======

DiracDelta
----------
.. autoclass:: sympy.functions.special.delta_functions.DiracDelta

Heaviside
---------
.. autoclass:: sympy.functions.special.delta_functions.Heaviside

gamma
-----
.. autoclass:: sympy.functions.special.gamma_functions.gamma

loggamma
--------
.. autoclass:: sympy.functions.special.gamma_functions.loggamma

polygamma
---------
.. autoclass:: sympy.functions.special.gamma_functions.polygamma

uppergamma
----------
.. autoclass:: sympy.functions.special.gamma_functions.uppergamma

lowergamma
----------
.. autoclass:: sympy.functions.special.gamma_functions.lowergamma

Bessel Type Functions
---------------------
.. autoclass:: sympy.functions.special.bessel.besselj
.. autoclass:: sympy.functions.special.bessel.bessely
.. autoclass:: sympy.functions.special.bessel.besseli
.. autoclass:: sympy.functions.special.bessel.besselk
.. autoclass:: sympy.functions.special.bessel.hankel1
.. autoclass:: sympy.functions.special.bessel.hankel2
.. autoclass:: sympy.functions.special.bessel.jn
.. autoclass:: sympy.functions.special.bessel.yn

Hypergeometric Functions
------------------------
.. autoclass:: sympy.functions.special.hyper.hyper
.. autoclass:: sympy.functions.special.hyper.meijerg
