symbian-qemu-0.9.1-12/python-2.6.1/Doc/library/math.rst
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 :mod:`math` --- Mathematical functions
       
     3 ======================================
       
     4 
       
     5 .. module:: math
       
     6    :synopsis: Mathematical functions (sin() etc.).
       
     7 
       
     8 
       
     9 This module is always available.  It provides access to the mathematical
       
    10 functions defined by the C standard.
       
    11 
       
    12 These functions cannot be used with complex numbers; use the functions of the
       
    13 same name from the :mod:`cmath` module if you require support for complex
       
    14 numbers.  The distinction between functions which support complex numbers and
       
    15 those which don't is made since most users do not want to learn quite as much
       
    16 mathematics as required to understand complex numbers.  Receiving an exception
       
    17 instead of a complex result allows earlier detection of the unexpected complex
       
    18 number used as a parameter, so that the programmer can determine how and why it
       
    19 was generated in the first place.
       
    20 
       
    21 The following functions are provided by this module.  Except when explicitly
       
    22 noted otherwise, all return values are floats.
       
    23 
       
    24 Number-theoretic and representation functions:
       
    25 
       
    26 
       
    27 .. function:: ceil(x)
       
    28 
       
    29    Return the ceiling of *x* as a float, the smallest integer value greater than or
       
    30    equal to *x*.
       
    31 
       
    32 
       
    33 .. function:: copysign(x, y)
       
    34 
       
    35    Return *x* with the sign of *y*. ``copysign`` copies the sign bit of an IEEE
       
    36    754 float, ``copysign(1, -0.0)`` returns *-1.0*.
       
    37 
       
    38    .. versionadded:: 2.6
       
    39 
       
    40 
       
    41 .. function:: fabs(x)
       
    42 
       
    43    Return the absolute value of *x*.
       
    44 
       
    45 
       
    46 .. function:: factorial(x)
       
    47 
       
    48    Return *x* factorial.  Raises :exc:`ValueError` if *x* is not integral or
       
    49    is negative.
       
    50 
       
    51    .. versionadded:: 2.6
       
    52 
       
    53 
       
    54 .. function:: floor(x)
       
    55 
       
    56    Return the floor of *x* as a float, the largest integer value less than or equal
       
    57    to *x*.
       
    58 
       
    59    .. versionchanged:: 2.6
       
    60       Added :meth:`__floor__` delegation.
       
    61 
       
    62 
       
    63 .. function:: fmod(x, y)
       
    64 
       
    65    Return ``fmod(x, y)``, as defined by the platform C library. Note that the
       
    66    Python expression ``x % y`` may not return the same result.  The intent of the C
       
    67    standard is that ``fmod(x, y)`` be exactly (mathematically; to infinite
       
    68    precision) equal to ``x - n*y`` for some integer *n* such that the result has
       
    69    the same sign as *x* and magnitude less than ``abs(y)``.  Python's ``x % y``
       
    70    returns a result with the sign of *y* instead, and may not be exactly computable
       
    71    for float arguments. For example, ``fmod(-1e-100, 1e100)`` is ``-1e-100``, but
       
    72    the result of Python's ``-1e-100 % 1e100`` is ``1e100-1e-100``, which cannot be
       
    73    represented exactly as a float, and rounds to the surprising ``1e100``.  For
       
    74    this reason, function :func:`fmod` is generally preferred when working with
       
    75    floats, while Python's ``x % y`` is preferred when working with integers.
       
    76 
       
    77 
       
    78 .. function:: frexp(x)
       
    79 
       
    80    Return the mantissa and exponent of *x* as the pair ``(m, e)``.  *m* is a float
       
    81    and *e* is an integer such that ``x == m * 2**e`` exactly. If *x* is zero,
       
    82    returns ``(0.0, 0)``, otherwise ``0.5 <= abs(m) < 1``.  This is used to "pick
       
    83    apart" the internal representation of a float in a portable way.
       
    84 
       
    85 
       
    86 .. function:: fsum(iterable)
       
    87 
       
    88    Return an accurate floating point sum of values in the iterable.  Avoids
       
    89    loss of precision by tracking multiple intermediate partial sums.  The
       
    90    algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the
       
    91    typical case where the rounding mode is half-even.
       
    92 
       
    93    .. note::
       
    94 
       
    95       The accuracy of fsum() may be impaired on builds that use
       
    96       extended precision addition and then double-round the results.
       
    97 
       
    98    .. versionadded:: 2.6
       
    99 
       
   100 
       
   101 .. function:: isinf(x)
       
   102 
       
   103    Checks if the float *x* is positive or negative infinite.
       
   104 
       
   105    .. versionadded:: 2.6
       
   106 
       
   107 
       
   108 .. function:: isnan(x)
       
   109 
       
   110    Checks if the float *x* is a NaN (not a number). NaNs are part of the
       
   111    IEEE 754 standards. Operation like but not limited to ``inf * 0``, 
       
   112    ``inf / inf`` or any operation involving a NaN, e.g. ``nan * 1``, return
       
   113    a NaN.
       
   114 
       
   115    .. versionadded:: 2.6
       
   116 
       
   117 
       
   118 .. function:: ldexp(x, i)
       
   119 
       
   120    Return ``x * (2**i)``.  This is essentially the inverse of function
       
   121    :func:`frexp`.
       
   122 
       
   123 
       
   124 .. function:: modf(x)
       
   125 
       
   126    Return the fractional and integer parts of *x*.  Both results carry the sign of
       
   127    *x*, and both are floats.
       
   128 
       
   129 
       
   130 .. function:: trunc(x)
       
   131 
       
   132    Return the :class:`Real` value *x* truncated to an :class:`Integral` (usually
       
   133    a long integer). Delegates to ``x.__trunc__()``.
       
   134 
       
   135    .. versionadded:: 2.6
       
   136 
       
   137 
       
   138 Note that :func:`frexp` and :func:`modf` have a different call/return pattern
       
   139 than their C equivalents: they take a single argument and return a pair of
       
   140 values, rather than returning their second return value through an 'output
       
   141 parameter' (there is no such thing in Python).
       
   142 
       
   143 For the :func:`ceil`, :func:`floor`, and :func:`modf` functions, note that *all*
       
   144 floating-point numbers of sufficiently large magnitude are exact integers.
       
   145 Python floats typically carry no more than 53 bits of precision (the same as the
       
   146 platform C double type), in which case any float *x* with ``abs(x) >= 2**52``
       
   147 necessarily has no fractional bits.
       
   148 
       
   149 Power and logarithmic functions:
       
   150 
       
   151 .. function:: exp(x)
       
   152 
       
   153    Return ``e**x``.
       
   154 
       
   155 
       
   156 .. function:: log(x[, base])
       
   157 
       
   158    Return the logarithm of *x* to the given *base*. If the *base* is not specified,
       
   159    return the natural logarithm of *x* (that is, the logarithm to base *e*).
       
   160 
       
   161    .. versionchanged:: 2.3
       
   162       *base* argument added.
       
   163 
       
   164 
       
   165 .. function:: log1p(x)
       
   166 
       
   167    Return the natural logarithm of *1+x* (base *e*). The
       
   168    result is calculated in a way which is accurate for *x* near zero.
       
   169 
       
   170    .. versionadded:: 2.6
       
   171 
       
   172 
       
   173 .. function:: log10(x)
       
   174 
       
   175    Return the base-10 logarithm of *x*.
       
   176 
       
   177 
       
   178 .. function:: pow(x, y)
       
   179 
       
   180    Return ``x`` raised to the power ``y``.  Exceptional cases follow
       
   181    Annex 'F' of the C99 standard as far as possible.  In particular,
       
   182    ``pow(1.0, x)`` and ``pow(x, 0.0)`` always return ``1.0``, even
       
   183    when ``x`` is a zero or a NaN.  If both ``x`` and ``y`` are finite,
       
   184    ``x`` is negative, and ``y`` is not an integer then ``pow(x, y)``
       
   185    is undefined, and raises :exc:`ValueError`.
       
   186 
       
   187    .. versionchanged:: 2.6
       
   188       The outcome of ``1**nan`` and ``nan**0`` was undefined.
       
   189 
       
   190 
       
   191 .. function:: sqrt(x)
       
   192 
       
   193    Return the square root of *x*.
       
   194 
       
   195 
       
   196 Trigonometric functions:
       
   197 
       
   198 .. function:: acos(x)
       
   199 
       
   200    Return the arc cosine of *x*, in radians.
       
   201 
       
   202 
       
   203 .. function:: asin(x)
       
   204 
       
   205    Return the arc sine of *x*, in radians.
       
   206 
       
   207 
       
   208 .. function:: atan(x)
       
   209 
       
   210    Return the arc tangent of *x*, in radians.
       
   211 
       
   212 
       
   213 .. function:: atan2(y, x)
       
   214 
       
   215    Return ``atan(y / x)``, in radians. The result is between ``-pi`` and ``pi``.
       
   216    The vector in the plane from the origin to point ``(x, y)`` makes this angle
       
   217    with the positive X axis. The point of :func:`atan2` is that the signs of both
       
   218    inputs are known to it, so it can compute the correct quadrant for the angle.
       
   219    For example, ``atan(1``) and ``atan2(1, 1)`` are both ``pi/4``, but ``atan2(-1,
       
   220    -1)`` is ``-3*pi/4``.
       
   221 
       
   222 
       
   223 .. function:: cos(x)
       
   224 
       
   225    Return the cosine of *x* radians.
       
   226 
       
   227 
       
   228 .. function:: hypot(x, y)
       
   229 
       
   230    Return the Euclidean norm, ``sqrt(x*x + y*y)``. This is the length of the vector
       
   231    from the origin to point ``(x, y)``.
       
   232 
       
   233 
       
   234 .. function:: sin(x)
       
   235 
       
   236    Return the sine of *x* radians.
       
   237 
       
   238 
       
   239 .. function:: tan(x)
       
   240 
       
   241    Return the tangent of *x* radians.
       
   242 
       
   243 
       
   244 Angular conversion:
       
   245 
       
   246 .. function:: degrees(x)
       
   247 
       
   248    Converts angle *x* from radians to degrees.
       
   249 
       
   250 
       
   251 .. function:: radians(x)
       
   252 
       
   253    Converts angle *x* from degrees to radians.
       
   254 
       
   255 
       
   256 Hyperbolic functions:
       
   257 
       
   258 .. function:: acosh(x)
       
   259 
       
   260    Return the inverse hyperbolic cosine of *x*.
       
   261 
       
   262    .. versionadded:: 2.6
       
   263 
       
   264 
       
   265 .. function:: asinh(x)
       
   266 
       
   267    Return the inverse hyperbolic sine of *x*.
       
   268 
       
   269    .. versionadded:: 2.6
       
   270 
       
   271 
       
   272 .. function:: atanh(x)
       
   273 
       
   274    Return the inverse hyperbolic tangent of *x*.
       
   275 
       
   276    .. versionadded:: 2.6
       
   277 
       
   278 
       
   279 .. function:: cosh(x)
       
   280 
       
   281    Return the hyperbolic cosine of *x*.
       
   282 
       
   283 
       
   284 .. function:: sinh(x)
       
   285 
       
   286    Return the hyperbolic sine of *x*.
       
   287 
       
   288 
       
   289 .. function:: tanh(x)
       
   290 
       
   291    Return the hyperbolic tangent of *x*.
       
   292 
       
   293 
       
   294 The module also defines two mathematical constants:
       
   295 
       
   296 .. data:: pi
       
   297 
       
   298    The mathematical constant *pi*.
       
   299 
       
   300 
       
   301 .. data:: e
       
   302 
       
   303    The mathematical constant *e*.
       
   304 
       
   305 
       
   306 .. note::
       
   307 
       
   308    The :mod:`math` module consists mostly of thin wrappers around the platform C
       
   309    math library functions.  Behavior in exceptional cases is loosely specified
       
   310    by the C standards, and Python inherits much of its math-function
       
   311    error-reporting behavior from the platform C implementation.  As a result,
       
   312    the specific exceptions raised in error cases (and even whether some
       
   313    arguments are considered to be exceptional at all) are not defined in any
       
   314    useful cross-platform or cross-release way.  For example, whether
       
   315    ``math.log(0)`` returns ``-Inf`` or raises :exc:`ValueError` or
       
   316    :exc:`OverflowError` isn't defined, and in cases where ``math.log(0)`` raises
       
   317    :exc:`OverflowError`, ``math.log(0L)`` may raise :exc:`ValueError` instead.
       
   318 
       
   319    All functions return a quiet *NaN* if at least one of the args is *NaN*.
       
   320    Signaling *NaN*\s raise an exception. The exception type still depends on the
       
   321    platform and libm implementation. It's usually :exc:`ValueError` for *EDOM*
       
   322    and :exc:`OverflowError` for errno *ERANGE*.
       
   323 
       
   324    .. versionchanged:: 2.6
       
   325       In earlier versions of Python the outcome of an operation with NaN as
       
   326       input depended on platform and libm implementation.
       
   327 
       
   328 
       
   329 .. seealso::
       
   330 
       
   331    Module :mod:`cmath`
       
   332       Complex number versions of many of these functions.