moremath
index
moremath.py


 
Various bits of useful math not in the standard python library.
 
Constants :
 
- euler_gamma  = 0.577215...
- catalan      = 0.915965...
- golden_ratio = 1.618033...
- bits_per_nat = log2(e) = 1/log(2) 
- sqrt_2pi     = 2.50662...
    
Special Functions :
 
- gamma()                       -- Gamma function.
- lngamma()                     -- Logarithm of the gamma function
- factorial()                   -- The factorial function.
- digamma()                     -- Digamma function (logarithmic derivative of gamma).
- trigamma()                    -- Trigamma function (derivative of digamma).
- entropy()                     -- The entropy of a probability vector
- incomplete_gamma()            -- The 'upper' incomplete gamma function.
- normalized_incomplete_gamma() -- 
- lg()                          -- Base 2 logarithms.
 
 
Vector Operations :
 
- rmsd()            -- Root mean squared deviation of two point vectors
- minimize_rmsd()   -- Find the rigid transformation that minimized the 
                            RMSD between two vectors of points. 
    
Minimization :
 
- find_root()          -- 1d root finding
 
Probability Distributions :
- Gamma
- Dirichlet
- Multinomial
- Gaussian

 
Functions
       
acos(...)

 
acos(x)
 
Return the arc cosine (measured in radians) of x.
acosh(...)

 
acosh(x)
 
Return the hyperbolic arc cosine (measured in radians) of x.
argmax(alist)

 
Return the index of the last occurance of the maximum value in the list.
argmin(alist)

 
Return the index of the first occurance of the minimum value in the list.
asin(...)

 
asin(x)
 
Return the arc sine (measured in radians) of x.
asinh(...)

 
asinh(x)
 
Return the hyperbolic arc sine (measured in radians) of x.
atan(...)

 
atan(x)
 
Return the arc tangent (measured in radians) of x.
atan2(...)

 
atan2(y, x)
 
Return the arc tangent (measured in radians) of y/x.
Unlike atan(y/x), the signs of both x and y are considered.
atanh(...)

 
atanh(x)
 
Return the hyperbolic arc tangent (measured in radians) of x.
ceil(...)

 
ceil(x)
 
Return the ceiling of x as a float.
This is the smallest integral value >= x.
copysign(...)

 
copysign(x,y)
 
Return x with the sign of y.
cos(...)

 
cos(x)
 
Return the cosine of x (measured in radians).
cosh(...)

 
cosh(x)
 
Return the hyperbolic cosine of x.
degrees(...)

 
degrees(x) -> converts angle x from radians to degrees
digamma(z)

 
The digamma function, the logarithmic derivative of the gamma function.
        digamma(z) = d/dz ln( gamma(z) )
 
See: Eric W. Weisstein. "Digamma Function." From MathWorld--
A Wolfram Web Resource. http://mathworld.wolfram.com/DigammaFunction.html
entropy(pvec, base=2.7182818284590451)

 
The entropy S = -Sum_i p_i ln p_i
pvec is a frequency vector, not necessarily normalized. 
exp(...)

 
exp(x)
 
Return e raised to the power of x.
fabs(...)

 
fabs(x)
 
Return the absolute value of the float x.
factorial(z)

 
The factorial function. 
factorial(z) == gamma(z+1)
floor(...)

 
floor(x)
 
Return the floor of x as a float.
This is the largest integral value <= x.
fmod(...)

 
fmod(x,y)
 
Return fmod(x, y), according to platform C.  x % y may differ.
frexp(...)

 
frexp(x)
 
Return the mantissa and exponent of x, as pair (m, e).
m is a float and e is an int, such that x = m * 2.**e.
If x is 0, m and e are both 0.  Else 0.5 <= abs(m) < 1.0.
fsum(...)

 
sum(iterable)
 
Return an accurate floating point sum of values in the iterable.
Assumes IEEE-754 floating point arithmetic.
gamma(z)

 
The gamma function. Returns exact results for small integers. Will
overflow for modest sized arguments. Use lngamma(z) instead.
 
See: Eric W. Weisstein. "Gamma Function." From MathWorld, A Wolfram Web Resource.
     http://mathworld.wolfram.com/GammaFunction.html
hypot(...)

 
hypot(x,y)
 
Return the Euclidean distance, sqrt(x*x + y*y).
incomplete_gamma(a, x)

 
The 'upper' incomplete gamma function:
 
                        oo
                         -
                        |    -t  a-1
incomplete_gamma(a,x) = |   e   t   dt.
                        |
                       -                         
                        x
 
In Mathematica, Gamma[a,x].
 
Note that, very confusingly, the phrase 'incomplete gamma fucntion'
can also refer to the same integral between 0 and x, (the 'lower'
incomplete gamma function) or to the normalized versions,
normalized_incomplete_gamma() )
 
 
See: Eric W. Weisstein. "Gamma Function." From MathWorld, A Wolfram Web Resource.
     http://mathworld.wolfram.com/IncompleteGammaFunction.html
 
Bugs :
    This implentation is not very accurate for some arguments. 
isinf(...)

 
isinf(x) -> bool
Checks if float x is infinite (positive or negative)
isnan(...)

 
isnan(x) -> bool
Checks if float x is not a number (NaN)
ldexp(...)

 
ldexp(x, i) -> x * (2**i)
lngamma(z)

 
The logarithm of the gamma function. 
    
log(...)

 
log(x[, base]) -> the logarithm of x to the given base.
If the base not specified, returns the natural logarithm (base e) of x.
log10(...)

 
log10(x) -> the base 10 logarithm of x.
log1p(...)

 
log1p(x)
 
Return the natural logarithm of 1+x (base e).
      The result is computed in a way which is accurate for x near zero.
log2(x)

 
Return the base 2 logarithm of x 
modf(...)

 
modf(x)
 
Return the fractional and integer parts of x.  Both results carry the sign
of x and are floats.
normalized_incomplete_gamma(a, x)

 
The upper, incomplete gamma function normalized so that the limiting
values are zero and one.
 
 Q(a,x) = incomplete_gamma(a,x) / gamma(a) 
 
See: 
    incomplete_gamma()
Bugs :
    This implentation is not very accurate for some arguments. 
pow(...)

 
pow(x,y)
 
Return x**y (x to the power of y).
radians(...)

 
radians(x) -> converts angle x from degrees to radians
sin(...)

 
sin(x)
 
Return the sine of x (measured in radians).
sinh(...)

 
sinh(x)
 
Return the hyperbolic sine of x.
sqrt(...)

 
sqrt(x)
 
Return the square root of x.
tan(...)

 
tan(x)
 
Return the tangent of x (measured in radians).
tanh(...)

 
tanh(x)
 
Return the hyperbolic tangent of x.
trigamma(z)

 
The trigamma function, the derivative of the digamma function.
        trigamma(z) = d/dz digamma(z) = d/dz d/dz ln( gamma(z) )
 
See: Eric W. Weisstein. "Digamma Function." From MathWorld--
A Wolfram Web Resource. http://mathworld.wolfram.com/TrigammaFunction.html
trunc(...)

 
trunc(x:Real) -> Integral
 
Truncates x to the nearest Integral toward 0. Uses the __trunc__ magic method.

 
Data
        __all__ = ('euler_gamma', 'catalan', 'golden_ratio', 'bits_per_nat', 'sqrt_2pi', 'gamma', 'lngamma', 'factorial', 'digamma', 'trigamma', 'entropy', 'log2', 'incomplete_gamma', 'normalized_incomplete_gamma', 'argmax', 'argmin')
__package__ = None
bits_per_nat = 1.4426950408889634
catalan = 0.91596559417721901
e = 2.7182818284590451
euler_gamma = 0.57721566490153287
golden_ratio = 1.6180339887498949
pi = 3.1415926535897931
sqrt_2pi = 2.5066282746310007