From 23083636fe44b28bf1cb00350800e3ec86ad3a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Sat, 30 Aug 2014 11:46:22 -0400 Subject: [PATCH] Replace pow() with iterative multiplication --- skimage/measure/_moments.pyx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/skimage/measure/_moments.pyx b/skimage/measure/_moments.pyx index 8fdb30c9..5a9bc11a 100644 --- a/skimage/measure/_moments.pyx +++ b/skimage/measure/_moments.pyx @@ -79,16 +79,19 @@ cpdef moments_central(double[:, :] image, double cr, double cc, """ cdef Py_ssize_t p, q, r, c cdef double[:, ::1] mu = np.zeros((order + 1, order + 1), dtype=np.double) - cdef double val, dr, dc, dcp + cdef double val, dr, dc, dcp, drq for r in range(image.shape[0]): dr = r - cr for c in range(image.shape[1]): dc = c - cc val = image[r, c] + dcp = 1 for p in range(order + 1): - dcp = dc ** p + drq = 1 for q in range(order + 1): - mu[p, q] += val * dr ** q * dcp + mu[p, q] += val * drq * dcp + drq *= dr + dcp *= dc return np.asarray(mu)