[SciPy-dev] [SciPy-user] numpy's math library?
Charles R Harris
charlesr.harris at gmail.com
Thu Jan 12 01:22:16 EST 2006
On 1/11/06, Travis E. Oliphant <oliphant.travis at ieee.org> wrote:
> Charles R Harris wrote:
> >
> > >
> > >
> > >
> > Will we really have to test for all of these if we add them? It would
> > be nice to have a single HAVE_C99 defined that we could use to test for
> > the presence and/or absence of these functions.
> >
> >
> > I use erf and erfc pretty often. If only every c compiler were c99
> > compliant we could bring in all the standard functions.
>
> I think what we are proposing is a small project to bring just the
> functions defined in the C99 standard over to numpy. Yes, they would
> have to be in C to do that. Complex-versions would be nice but not
> necessary for all of them.
Here is a list to start with. Some of these probably aren't in the C99
standard and some might not be suitable for ufuncs.
/* Arc cosine of X. */
acos
/* Arc sine of X. */
asin
/* Arc tangent of X. */
atan
/* Arc tangent of Y/X. */
atan2
/* Cosine of X. */
cos
/* Sine of X. */
sin
/* Tangent of X. */
tan
/* Hyperbolic cosine of X. */
cosh
/* Hyperbolic sine of X. */
sinh
/* Hyperbolic tangent of X. */
tanh
/* Hyperbolic arc cosine of X. */
acosh
/* Hyperbolic arc sine of X. */
asinh
/* Hyperbolic arc tangent of X. */
atanh
/* Exponential function of X. */
exp
/* Break VALUE into a normalized fraction and an integral power of 2. */
frexp
/* X times (two to the EXP power). */
ldexp
/* Natural logarithm of X. */
log
/* Base-ten logarithm of X. */
log10
/* Break VALUE into integral and fractional parts. */
modf
/* A function missing in all standards: compute exponent to base ten. */
exp10
/* Another name occasionally used. */
pow10
/* Return exp(X) - 1. */
expm1
/* Return log(1 + X). */
log1p
/* Return the base 2 signed integral exponent of X. */
logb
/* Compute base-2 exponential of X. */
exp2
/* Compute base-2 logarithm of X. */
log2
/* Return X to the Y power. */
pow
/* Return the square root of X. */
sqrt
/* Return `sqrt(X*X + Y*Y)'. */
hypot
/* Return the cube root of X. */
cbrt
/* Smallest integral value not less than X. */
ceil
/* Absolute value of X. */
fabs
/* Largest integer not greater than X. */
floor
/* Floating-point modulo remainder of X/Y. */
fmod
/* Return the remainder of X/Y. */
drem
/* Return the fractional part of X after dividing out `ilogb (X)'. */
significand
/* Return X with its signed changed to Y's. */
copysign
/* Bessel functions */
j0
j1
jn
y0
y1
yn
erf
erfc
lgamma
tgamma
/* Obsolete alias for `lgamma'. */
gamma
/* Return the integer nearest X in the direction of the prevailing
rounding mode. */
rint
/* Return X + epsilon if X < Y, X - epsilon if X > Y. */
nextafter
nexttoward
/* Return the remainder of integer divison X / Y with infinite precision. */
remainder
/* Return X times (2 to the Nth power). */
scalbn
/* Return the binary exponent of X, which must be nonzero. */
ilogb
/* Return X times (2 to the Nth power). */
scalbln
/* Round X to integral value in floating-point format using current
rounding direction, but do not raise inexact exception. */
nearbyint
/* Round X to nearest integral value, rounding halfway cases away from zero. */
round
/* Round X to the integral value in floating-point format nearest but
not larger in magnitude. */
trunc
/* Compute remainder of X and Y and put in *QUO a value with sign of x/y
and magnitude congruent `mod 2^n' to the magnitude of the integral
quotient x/y, with n >= 3. */
remquo
/* Round X to nearest integral value according to current rounding
direction. */
lrint
llrint
/* Round X to nearest integral value, rounding halfway cases away from zero. */
lround
llround
/* Return positive difference between X and Y. */
fdim
/* Return maximum numeric value from X and Y. */
fmax
/* Return minimum numeric value from X and Y. */
fmin
/* Multiply-add function computed as a ternary operation. */
fma
/* Return X times (2 to the Nth power). */
scalb
Chuck
More information about the SciPy-Dev
mailing list