655a656,686> static PyObject *> math_expm1(PyObject *self, PyObject *arg)> {> double x = PyFloat_AsDouble(arg);> if (PyErr_Occurred())> return NULL;> double k = 2.;> double s = x;> double r = x;> double u0;> double u1;> if (fabs(x) < log(2.)) {> do {> u0 = x/k*s;> u1 = x/(k+1)*u0;> s = u0;> r += u0;> k++;> } while (fabs(u0)>fabs(u1));> }> else {> r = exp(x) -1;> }> return PyFloat_FromDouble(r);> > }> > PyDoc_STRVAR(math_expm1_doc,> "expm1(x)\n\n\> Return exp(x) minus 1 for small x");> 1366a1398> {"expm1", math_expm1, METH_O, math_expm1_doc}, 1408a1441> PyModule_AddObject(m, "C", PyFloat_FromDouble(Py_MATH_C));

AltStyle によって変換されたページ (->オリジナル) /