From 5ce3bb0cd30b85f38caa59390f91a743e0537e44 Mon Sep 17 00:00:00 2001
From: Wolfgang Kastaun <wolfgang.kastaun@aei.mpg.de>
Date: Thu, 30 Jan 2025 16:47:48 +0100
Subject: [PATCH] provide convenience method to set up dsp based shift
 inversion

---
 lisainstrument/shift_inversion_dask.py | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/lisainstrument/shift_inversion_dask.py b/lisainstrument/shift_inversion_dask.py
index afac2ad..f41f226 100644
--- a/lisainstrument/shift_inversion_dask.py
+++ b/lisainstrument/shift_inversion_dask.py
@@ -17,6 +17,7 @@ from lisainstrument.regular_interpolators import (
     RegularInterpolator,
     make_regular_interpolator_lagrange,
 )
+from lisainstrument.dynamic_delay_dsp import make_regular_interpolator_dsp
 from lisainstrument.shift_inversion_numpy import fixed_point_iter
 
 
@@ -145,3 +146,23 @@ def make_shift_inverse_lagrange_dask(
     """
     interp = make_regular_interpolator_lagrange(order)
     return ShiftInverseDask(max_abs_shift, interp, max_iter, tolerance)
+
+def make_shift_inverse_dsp_dask(
+    order: int,
+    max_abs_shift: float,
+    max_iter: int,
+    tolerance: float,
+) -> ShiftInverseDask:
+    """Set up ShiftInverseDask instance using dsp.timeshift as interpolation method.
+
+    Arguments:
+        order: Order of the Lagrange polynomials
+        max_abs_shift: Upper limit for absolute difference between coordinate frames w.r.t index space
+        max_iter: Maximum iterations before fail
+        tolerance: Maximum absolute error of result
+
+    Returns:
+        Inversion function of type ShiftInverseNumpy
+    """
+    interp = make_regular_interpolator_dsp(order)
+    return ShiftInverseDask(max_abs_shift, interp, max_iter, tolerance)
-- 
GitLab