Diferentes resultados y actuaciones con diferentes bibliotecas

Estoy comparando las bibliotecas dtaidistance, fastdtw y cdtw para cálculos de DTW. Este es mi código:

from fastdtw import fastdtw
from cdtw import pydtw
import fastdtw
import array
from timeit import default_timer as timer
from dtaidistance import dtw, dtw_visualisation as dtwvis

s1 = mySampleSequences[0] # first sample sequence consisting of 3000 samples
s2 = mySampleSequences[1] # second sample sequence consisting of 3000 samples

start = timer()
distance1 = dtw.distance(s1, s2)
end = timer()
start2 = timer()
distance2 = dtw.distance_fast(array.array('d',s1),array.array('d',s2))
end2 = timer()
start3 = timer()
distance3, path3 = fastdtw(s1,s2)
end3 = timer()
start4 = timer()
distance4 = pydtw.dtw(s1,s2).get_dist()
end4 = timer()

print("dtw.distance(x,y) time: "+ str(end - start))
print("dtw.distance(x,y) distance: "+str(distance1))
print("dtw.distance_fast(x,y) time: "+ str(end2 - start2))
print("dtw.distance_fast(x,y) distance: " + str(distance2))
print("fastdtw(x,y) time: "+ str(end3 - start3))
print("fastdtw(x,y) distance: " + str(distance3))
print("pydtw.dtw(x,y) time: "+ str(end4 - start4))
print("pydtw.dtw(x,y) distance: " + str(distance4))

Esta es la salida que obtengo:

dtw.distance (x, y) tiempo: 22.16925272245262 dtw.distance (x, y) distancia: 1888.8583853746156 dtw.distance_fast (x, y) tiempo: 0.3889036471839056 dtw.distance_fast (x, y) distancia: 1888.8583853746156fastdtw (x, y) tiempo: 0.23296659641047412fastdtw (x, y) distancia: 27238.0 pydtw.dtw (x, y) tiempo: 0.13706478039556558 pydtw.dtw (x, y) distancia: 17330.0

Mi pregunta es: ¿Por qué obtengo diferentes actuaciones y diferentes distancias? Muchas gracias por tus comentarios

// edit: la unidad de las medidas de tiempo es segundos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta