summaryrefslogtreecommitdiff
path: root/pyspike/isi_distance.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyspike/isi_distance.py')
-rw-r--r--pyspike/isi_distance.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/pyspike/isi_distance.py b/pyspike/isi_distance.py
index 164378d..2a1ed3a 100644
--- a/pyspike/isi_distance.py
+++ b/pyspike/isi_distance.py
@@ -66,7 +66,21 @@ def isi_distance(spike_train1, spike_train2, interval=None):
:returns: The isi-distance :math:`D_I`.
:rtype: double
"""
- return isi_profile(spike_train1, spike_train2).avrg(interval)
+
+ if interval is None:
+ # distance over the whole interval is requested: use specific function
+ # for optimal performance
+ try:
+ from cython.cython_distances import isi_distance_cython \
+ as isi_distance_impl
+ return isi_distance_impl(spike_train1.spikes, spike_train2.spikes,
+ spike_train1.t_start, spike_train1.t_end)
+ except ImportError:
+ # Cython backend not available: fall back to profile averaging
+ return isi_profile(spike_train1, spike_train2).avrg(interval)
+ else:
+ # some specific interval is provided: use profile
+ return isi_profile(spike_train1, spike_train2).avrg(interval)
############################################################