From 39aa197cd74f0d2ab09d34dc6288c2c88d5ddd64 Mon Sep 17 00:00:00 2001 From: Pete Shadbolt Date: Thu, 13 Nov 2014 11:23:59 +0000 Subject: [PATCH] Whoops --- run-tests.py | 19 +++++++++++-------- src/permanent.c | 25 ++----------------------- 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/run-tests.py b/run-tests.py index 9513f17..3eef926 100644 --- a/run-tests.py +++ b/run-tests.py @@ -16,20 +16,23 @@ def perm_ryser(a): terms=map(get_term, indeces) return np.sum(terms)*((-1)**n) -dimension=5 +dimension=9 real=np.random.uniform(-1, 1, dimension*dimension).reshape((dimension, dimension)) imag=np.random.uniform(-1, 1, dimension*dimension).reshape((dimension, dimension)) submatrix=real+1j*imag -print lib.permanent(submatrix), perm_ryser(submatrix) +#print lib.permanent(submatrix), perm_ryser(submatrix) -sys.exit(0) -t=time.clock() -for i in range(1000): - perm_ryser(submatrix) -print time.clock()-t +#sys.exit(0) +#t=time.clock() +#for i in range(1000): + #perm_ryser(submatrix) +#t1=time.clock()-t t=time.clock() for i in range(1000): lib.permanent(submatrix) -print time.clock()-t +t2=time.clock()-t +print t2 + +#print t1/t2 diff --git a/src/permanent.c b/src/permanent.c index 39225c1..7c40319 100644 --- a/src/permanent.c +++ b/src/permanent.c @@ -2,8 +2,9 @@ #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION #include #include -#include "bithacks.h" #include "npy_util.h" +#include "bithacks.h" +#include "permanents.h" // Forward function declaration static PyObject *permanent(PyObject *self, PyObject *args); @@ -20,28 +21,6 @@ PyMODINIT_FUNC initpermanent(void) { import_array(); } -// Ryser's algorithm -static npy_complex128 perm_ryser(PyArrayObject *submatrix) { - int n = (int) PyArray_DIM(submatrix, 0); - npy_complex128 rowsum, rowsumprod; - npy_complex128 perm = complex_zero; - int exp = 1 << n; - int i, y, z; - for (i=0; i