|
| 1 | +from typing import Any |
| 2 | + |
| 3 | +import numba |
| 4 | +import numpy as np |
| 5 | +from numba import guvectorize |
| 6 | + |
| 7 | +def _resample_loop( |
| 8 | + x: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 9 | + t_out: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 10 | + interp_win: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 11 | + interp_delta: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 12 | + num_table: int, |
| 13 | + scale: float, |
| 14 | + y: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 15 | +) -> None: ... |
| 16 | + |
| 17 | +# JIT-compiled parallel version of _resample_loop |
| 18 | +_resample_loop_p = ... |
| 19 | + |
| 20 | +# JIT-compiled sequential version of _resample_loop |
| 21 | +_resample_loop_s = ... |
| 22 | + |
| 23 | +@guvectorize( |
| 24 | + ( |
| 25 | + numba.float32[:, :, :], |
| 26 | + numba.float32[:, :], |
| 27 | + numba.float32[:], |
| 28 | + numba.float32[:], |
| 29 | + numba.int32, |
| 30 | + numba.float32, |
| 31 | + numba.float32[:, :], |
| 32 | + ), |
| 33 | + "(n),(m),(p),(p),(),()->(m)", |
| 34 | + nopython=True, |
| 35 | +) |
| 36 | +def resample_f_p( |
| 37 | + x: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 38 | + t_out: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 39 | + interp_win: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 40 | + interp_delta: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 41 | + num_table: int, |
| 42 | + scale: float, |
| 43 | + y: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 44 | +) -> None: ... |
| 45 | +@guvectorize( |
| 46 | + ( |
| 47 | + numba.float32[:, :, :], |
| 48 | + numba.float32[:, :], |
| 49 | + numba.float32[:], |
| 50 | + numba.float32[:], |
| 51 | + numba.int32, |
| 52 | + numba.float32, |
| 53 | + numba.float32[:, :], |
| 54 | + ), |
| 55 | + "(n),(m),(p),(p),(),()->(m)", |
| 56 | + nopython=True, |
| 57 | +) |
| 58 | +def resample_f_s( |
| 59 | + x: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 60 | + t_out: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 61 | + interp_win: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 62 | + interp_delta: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 63 | + num_table: int, |
| 64 | + scale: float, |
| 65 | + y: np.ndarray[tuple[int, ...], np.dtype[np.floating[Any]]], |
| 66 | +) -> None: ... |
0 commit comments