def subcurve(self, t0, t1):
<EOL>if t1 == t0: raise ValueError('<STR_LIT>')<EOL>if t1 < t0:<EOL><INDENT>tt = self.curve_length()<EOL>return self.reverse().subcurve(tt - t0, tt - t1)<EOL><DEDENT>idx = [ii for (ii,t) in enumerate(self.t) if t0 < t and t < t1]<EOL>pt0 = self(t0)<EOL>pt1 = self(t1)<EOL>coords = np.vstack([[pt0], self.coordinates.T[idx], [pt1]])<EOL>ts = np.concatenate([[t0], self.t[idx], [t1]])<EOL>dists  = None if self.distances is None else np.diff(ts)<EOL>return CurveSpline(<EOL>coords.T,<EOL>order=self.order,<EOL>smoothing=self.smoothing,<EOL>periodic=False,<EOL>distances=dists,<EOL>meta_data=self.meta_data)<EOL>
curve.subcurve(t0, t1) yields a curve-spline object that is equivalent to the given
  curve but that extends from curve(t0) to curve(t1) only.