Added math.rint() -- round according to current IEEE754 mode

This commit is contained in:
Guido van Rossum 2000-05-11 18:19:42 +00:00
parent dab6cb8f6d
commit 71260b846e
5 changed files with 16 additions and 0 deletions

View File

@ -93,6 +93,10 @@ carry the sign of \var{x}. The integer part is returned as a real.
Return \code{\var{x}**\var{y}}.
\end{funcdesc}
\begin{funcdesc}{rint}{x, y}
Return the integer nearest to \var{x} as a real.
\end{funcdesc}
\begin{funcdesc}{sin}{x}
Return the sine of \var{x}.
\end{funcdesc}

View File

@ -48,6 +48,7 @@ extern double hypot Py_PROTO((double, double));
#undef log
#undef log10
#undef pow
#undef rint
#undef sin
#undef sinh
#undef sqrt
@ -67,6 +68,7 @@ extern double hypot Py_PROTO((double, double));
#define log logd
#define log10 log10d
#define pow powd
#define rint rintd
#define sin sind
#define sinh sinhd
#define sqrt sqrtd

View File

@ -19,6 +19,7 @@ log
log10
modf
pow
rint
sin
sinh
sqrt

View File

@ -129,6 +129,12 @@ testit('pow(1,0)', math.pow(1,0), 1)
testit('pow(2,1)', math.pow(2,1), 2)
testit('pow(2,-1)', math.pow(2,-1), 0.5)
print 'rint'
testit('rint(0.7)', math.rint(0.7), 1)
testit('rint(-0.3)', math.rint(-0.3), 0)
testit('rint(2.5)', math.rint(2.5), 2)
testit('rint(3.5)', math.rint(3.5), 4)
print 'sin'
testit('sin(0)', math.sin(0), 0)
testit('sin(pi/2)', math.sin(math.pi/2), 1)

View File

@ -156,6 +156,8 @@ FUNC2(math_pow, power, math_pow_doc,
FUNC2(math_pow, pow, math_pow_doc,
"pow(x,y)\n\nReturn x**y.")
#endif
FUNC1(math_rint, rint, math_rint_doc,
"rint(x)\n\nReturn the integer nearest to x as a real.")
FUNC1(math_sin, sin, math_sin_doc,
"sin(x)\n\nReturn the sine of x.")
FUNC1(math_sinh, sinh, math_sinh_doc,
@ -267,6 +269,7 @@ static PyMethodDef math_methods[] = {
{"log10", math_log10, 0, math_log10_doc},
{"modf", math_modf, 0, math_modf_doc},
{"pow", math_pow, 0, math_pow_doc},
{"rint", math_rint, 0, math_rint_doc},
{"sin", math_sin, 0, math_sin_doc},
{"sinh", math_sinh, 0, math_sinh_doc},
{"sqrt", math_sqrt, 0, math_sqrt_doc},