summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/mathmodule.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 6469bde..cdc3057 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -155,6 +155,21 @@ FUNC1(tanh, tanh,
"tanh(x)\n\nReturn the hyperbolic tangent of x.")
static PyObject *
+math_trunc(PyObject *self, PyObject *number)
+{
+ /* XXX: The py3k branch gets better errors for this by using
+ _PyType_Lookup(), but since float's mro isn't set in py2.6,
+ we just use PyObject_CallMethod here. */
+ return PyObject_CallMethod(number, "__trunc__", NULL);
+}
+
+PyDoc_STRVAR(math_trunc_doc,
+"trunc(x:Real) -> Integral\n"
+"\n"
+"Truncates x to the nearest Integral toward 0. Uses the __trunc__ magic"
+"method.");
+
+static PyObject *
math_frexp(PyObject *self, PyObject *arg)
{
int i;
@@ -377,6 +392,7 @@ static PyMethodDef math_methods[] = {
{"sqrt", math_sqrt, METH_O, math_sqrt_doc},
{"tan", math_tan, METH_O, math_tan_doc},
{"tanh", math_tanh, METH_O, math_tanh_doc},
+ {"trunc", math_trunc, METH_O, math_trunc_doc},
{NULL, NULL} /* sentinel */
};