summaryrefslogtreecommitdiff
path: root/pyspike/distances.py
diff options
context:
space:
mode:
authorMario Mulansky <mario.mulansky@gmx.net>2014-09-29 18:45:10 +0200
committerMario Mulansky <mario.mulansky@gmx.net>2014-09-29 18:45:10 +0200
commitaeec6cfafed8df110e60743073cff6d778f65af0 (patch)
tree407c4224c3e7c3bbde2068f517879efb88a1b514 /pyspike/distances.py
parentb726773a29f85d465ff71867fab4fa5b8e5bcfe1 (diff)
+cython version for isi and performance tests
Diffstat (limited to 'pyspike/distances.py')
-rw-r--r--pyspike/distances.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/pyspike/distances.py b/pyspike/distances.py
index 52c6640..76dcd83 100644
--- a/pyspike/distances.py
+++ b/pyspike/distances.py
@@ -53,10 +53,21 @@ def isi_distance(spikes1, spikes2):
assert spikes1[-1]==spikes2[-1], \
"Given spike trains seems not to have auxiliary spikes!"
- # shorter names
- s1 = spikes1
- s2 = spikes2
+ # compile and load cython implementation
+ import pyximport
+ pyximport.install(setup_args={'include_dirs': [np.get_include()]})
+ from cython_distance import isi_distance_cython
+ times, values = isi_distance_cython(spikes1, spikes2)
+ return PieceWiseConstFunc(times, values)
+
+
+############################################################
+# isi_distance_python
+############################################################
+def isi_distance_python(s1, s2):
+ """ Plain Python implementation of the isi distance.
+ """
# compute the interspike interval
nu1 = s1[1:]-s1[:-1]
nu2 = s2[1:]-s2[:-1]