InterpolatePy 2.0.1__tar.gz → 3.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.github/workflows/docs.yml +11 -13
  2. interpolatepy-3.0.1/.github/workflows/pre-commit.yml +28 -0
  3. interpolatepy-3.0.1/.github/workflows/publish.yml +28 -0
  4. interpolatepy-3.0.1/.github/workflows/test.yml +36 -0
  5. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.gitignore +10 -3
  6. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.pre-commit-config.yaml +2 -2
  7. interpolatepy-3.0.1/.python-version +1 -0
  8. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/InterpolatePy.egg-info/PKG-INFO +41 -39
  9. interpolatepy-3.0.1/InterpolatePy.egg-info/SOURCES.txt +215 -0
  10. interpolatepy-3.0.1/InterpolatePy.egg-info/requires.txt +3 -0
  11. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/PKG-INFO +41 -39
  12. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/README.md +36 -19
  13. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/codecov.yml +0 -2
  14. interpolatepy-3.0.1/cpp/CMakeLists.txt +169 -0
  15. interpolatepy-3.0.1/cpp/bindings/CMakeLists.txt +26 -0
  16. interpolatepy-3.0.1/cpp/bindings/bind_acc_splines.cpp +96 -0
  17. interpolatepy-3.0.1/cpp/bindings/bind_bspline.cpp +116 -0
  18. interpolatepy-3.0.1/cpp/bindings/bind_cubic_spline.cpp +39 -0
  19. interpolatepy-3.0.1/cpp/bindings/bind_motion.cpp +124 -0
  20. interpolatepy-3.0.1/cpp/bindings/bind_paths.cpp +73 -0
  21. interpolatepy-3.0.1/cpp/bindings/bind_quaternion.cpp +142 -0
  22. interpolatepy-3.0.1/cpp/bindings/bind_smoothing_search.cpp +40 -0
  23. interpolatepy-3.0.1/cpp/bindings/bind_smoothing_spline.cpp +52 -0
  24. interpolatepy-3.0.1/cpp/bindings/bind_tridiagonal.cpp +13 -0
  25. interpolatepy-3.0.1/cpp/bindings/module.cpp +45 -0
  26. interpolatepy-3.0.1/cpp/cmake/InterpolateCppConfig.cmake.in +5 -0
  27. interpolatepy-3.0.1/cpp/cmake/version.hpp.in +6 -0
  28. interpolatepy-3.0.1/cpp/examples/CMakeLists.txt +29 -0
  29. interpolatepy-3.0.1/cpp/examples/bspline_approx_smooth_example.cpp +387 -0
  30. interpolatepy-3.0.1/cpp/examples/bspline_cubic_example.cpp +182 -0
  31. interpolatepy-3.0.1/cpp/examples/bspline_example.cpp +229 -0
  32. interpolatepy-3.0.1/cpp/examples/bspline_interpolator_example.cpp +360 -0
  33. interpolatepy-3.0.1/cpp/examples/concepts_example.cpp +398 -0
  34. interpolatepy-3.0.1/cpp/examples/cubic_smoothing_example.cpp +178 -0
  35. interpolatepy-3.0.1/cpp/examples/cubic_spline_acc1_example.cpp +316 -0
  36. interpolatepy-3.0.1/cpp/examples/cubic_spline_acc2_example.cpp +113 -0
  37. interpolatepy-3.0.1/cpp/examples/cubic_spline_example.cpp +67 -0
  38. interpolatepy-3.0.1/cpp/examples/double_s_example.cpp +222 -0
  39. interpolatepy-3.0.1/cpp/examples/parabolic_linear_example.cpp +206 -0
  40. interpolatepy-3.0.1/cpp/examples/paths_example.cpp +326 -0
  41. interpolatepy-3.0.1/cpp/examples/polynomial_example.cpp +212 -0
  42. interpolatepy-3.0.1/cpp/examples/quaternion_example.cpp +429 -0
  43. interpolatepy-3.0.1/cpp/examples/shared/example_utils.hpp +101 -0
  44. interpolatepy-3.0.1/cpp/examples/trapezoidal_example.cpp +218 -0
  45. interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/approximation_bspline.hpp +58 -0
  46. interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/bspline.hpp +77 -0
  47. interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp +61 -0
  48. interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/bspline_parameters.hpp +27 -0
  49. interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp +57 -0
  50. interpolatepy-3.0.1/cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp +62 -0
  51. interpolatepy-3.0.1/cpp/include/interpolatecpp/concepts.hpp +56 -0
  52. interpolatepy-3.0.1/cpp/include/interpolatecpp/config.hpp +15 -0
  53. interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/double_s_trajectory.hpp +57 -0
  54. interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/motion_types.hpp +64 -0
  55. interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp +52 -0
  56. interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp +63 -0
  57. interpolatepy-3.0.1/cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp +66 -0
  58. interpolatepy-3.0.1/cpp/include/interpolatecpp/path/circular_path.hpp +29 -0
  59. interpolatepy-3.0.1/cpp/include/interpolatecpp/path/frenet_frame.hpp +49 -0
  60. interpolatepy-3.0.1/cpp/include/interpolatecpp/path/linear_path.hpp +25 -0
  61. interpolatepy-3.0.1/cpp/include/interpolatecpp/path/linear_traj.hpp +21 -0
  62. interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp +42 -0
  63. interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp +58 -0
  64. interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/quaternion.hpp +99 -0
  65. interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/quaternion_spline.hpp +40 -0
  66. interpolatepy-3.0.1/cpp/include/interpolatecpp/quat/squad_c2.hpp +61 -0
  67. interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp +82 -0
  68. interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_spline.hpp +71 -0
  69. interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp +76 -0
  70. interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp +53 -0
  71. interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/smoothing_search.hpp +35 -0
  72. interpolatepy-3.0.1/cpp/include/interpolatecpp/spline/spline_parameters.hpp +28 -0
  73. interpolatepy-3.0.1/cpp/include/interpolatecpp/tridiagonal.hpp +47 -0
  74. interpolatepy-3.0.1/cpp/src/approximation_bspline.cpp +208 -0
  75. interpolatepy-3.0.1/cpp/src/bspline.cpp +308 -0
  76. interpolatepy-3.0.1/cpp/src/bspline_interpolator.cpp +261 -0
  77. interpolatepy-3.0.1/cpp/src/circular_path.cpp +61 -0
  78. interpolatepy-3.0.1/cpp/src/cubic_bspline_interpolation.cpp +213 -0
  79. interpolatepy-3.0.1/cpp/src/cubic_smoothing_spline.cpp +270 -0
  80. interpolatepy-3.0.1/cpp/src/cubic_spline.cpp +199 -0
  81. interpolatepy-3.0.1/cpp/src/cubic_spline_with_acc1.cpp +280 -0
  82. interpolatepy-3.0.1/cpp/src/cubic_spline_with_acc2.cpp +175 -0
  83. interpolatepy-3.0.1/cpp/src/double_s_trajectory.cpp +379 -0
  84. interpolatepy-3.0.1/cpp/src/frenet_frame.cpp +73 -0
  85. interpolatepy-3.0.1/cpp/src/linear_path.cpp +36 -0
  86. interpolatepy-3.0.1/cpp/src/linear_traj.cpp +31 -0
  87. interpolatepy-3.0.1/cpp/src/log_quaternion_interpolation.cpp +132 -0
  88. interpolatepy-3.0.1/cpp/src/modified_log_quaternion_interpolation.cpp +163 -0
  89. interpolatepy-3.0.1/cpp/src/parabolic_blend_trajectory.cpp +189 -0
  90. interpolatepy-3.0.1/cpp/src/polynomial_trajectory.cpp +227 -0
  91. interpolatepy-3.0.1/cpp/src/quaternion.cpp +252 -0
  92. interpolatepy-3.0.1/cpp/src/quaternion_spline.cpp +101 -0
  93. interpolatepy-3.0.1/cpp/src/smoothing_cubic_bspline.cpp +395 -0
  94. interpolatepy-3.0.1/cpp/src/smoothing_search.cpp +96 -0
  95. interpolatepy-3.0.1/cpp/src/squad_c2.cpp +192 -0
  96. interpolatepy-3.0.1/cpp/src/trapezoidal_trajectory.cpp +252 -0
  97. interpolatepy-3.0.1/cpp/tests/CMakeLists.txt +49 -0
  98. interpolatepy-3.0.1/cpp/tests/shared/test_data.hpp +37 -0
  99. interpolatepy-3.0.1/cpp/tests/test_bspline.cpp +449 -0
  100. interpolatepy-3.0.1/cpp/tests/test_bspline_variants.cpp +558 -0
  101. interpolatepy-3.0.1/cpp/tests/test_concepts.cpp +67 -0
  102. interpolatepy-3.0.1/cpp/tests/test_cubic_smoothing_spline.cpp +176 -0
  103. interpolatepy-3.0.1/cpp/tests/test_cubic_spline.cpp +266 -0
  104. interpolatepy-3.0.1/cpp/tests/test_cubic_spline_with_acc1.cpp +125 -0
  105. interpolatepy-3.0.1/cpp/tests/test_cubic_spline_with_acc2.cpp +171 -0
  106. interpolatepy-3.0.1/cpp/tests/test_double_s_trajectory.cpp +157 -0
  107. interpolatepy-3.0.1/cpp/tests/test_parabolic_blend_trajectory.cpp +122 -0
  108. interpolatepy-3.0.1/cpp/tests/test_paths.cpp +292 -0
  109. interpolatepy-3.0.1/cpp/tests/test_polynomial_trajectory.cpp +223 -0
  110. interpolatepy-3.0.1/cpp/tests/test_quaternion.cpp +161 -0
  111. interpolatepy-3.0.1/cpp/tests/test_quaternion_spline.cpp +334 -0
  112. interpolatepy-3.0.1/cpp/tests/test_smoothing_search.cpp +129 -0
  113. interpolatepy-3.0.1/cpp/tests/test_trapezoidal_trajectory.cpp +115 -0
  114. interpolatepy-3.0.1/cpp/tests/test_tridiagonal.cpp +103 -0
  115. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/api-reference.md +164 -4
  116. interpolatepy-3.0.1/docs/architecture.md +122 -0
  117. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/changelog.md +32 -8
  118. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/contributing.md +78 -30
  119. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/index.md +8 -4
  120. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/installation.md +104 -26
  121. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/quickstart.md +16 -19
  122. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/troubleshooting.md +32 -3
  123. interpolatepy-3.0.1/docs/tutorials/path-planning.md +248 -0
  124. interpolatepy-3.0.1/docs/tutorials/quaternion-interpolation.md +212 -0
  125. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/user-guide.md +2 -2
  126. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/double_s_ex.py +4 -4
  127. interpolatepy-3.0.1/examples/protocols_ex.py +476 -0
  128. interpolatepy-3.0.1/interpolatepy/__init__.py +111 -0
  129. interpolatepy-3.0.1/interpolatepy/_adapters/__init__.py +100 -0
  130. interpolatepy-3.0.1/interpolatepy/_adapters/_bspline.py +77 -0
  131. interpolatepy-3.0.1/interpolatepy/_adapters/_direct.py +23 -0
  132. interpolatepy-3.0.1/interpolatepy/_adapters/_motion.py +461 -0
  133. interpolatepy-3.0.1/interpolatepy/_adapters/_paths.py +130 -0
  134. interpolatepy-3.0.1/interpolatepy/_adapters/_quaternion.py +177 -0
  135. interpolatepy-3.0.1/interpolatepy/_adapters/_spline.py +68 -0
  136. interpolatepy-3.0.1/interpolatepy/_api.py +133 -0
  137. interpolatepy-3.0.1/interpolatepy/_backend.py +36 -0
  138. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_smoothing.py +2 -2
  139. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/double_s.py +81 -13
  140. interpolatepy-3.0.1/interpolatepy/protocols.py +116 -0
  141. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/quat_core.py +6 -6
  142. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/quat_spline.py +114 -0
  143. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/simple_paths.py +1 -2
  144. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/version.py +1 -1
  145. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/mkdocs.yml +3 -0
  146. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/pyproject.toml +21 -27
  147. interpolatepy-3.0.1/tests/test_backend.py +151 -0
  148. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_motion_profiles.py +14 -14
  149. interpolatepy-3.0.1/tests/test_protocols.py +349 -0
  150. interpolatepy-3.0.1/uv.lock +2142 -0
  151. interpolatepy-2.0.1/.github/workflows/pre-commit.yml +0 -17
  152. interpolatepy-2.0.1/.github/workflows/publish.yml +0 -29
  153. interpolatepy-2.0.1/.github/workflows/test.yml +0 -63
  154. interpolatepy-2.0.1/InterpolatePy.egg-info/SOURCES.txt +0 -98
  155. interpolatepy-2.0.1/InterpolatePy.egg-info/requires.txt +0 -21
  156. interpolatepy-2.0.1/interpolatepy/__init__.py +0 -100
  157. interpolatepy-2.0.1/requirements-dev.txt +0 -28
  158. interpolatepy-2.0.1/requirements.txt +0 -4
  159. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.editorconfig +0 -0
  160. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.gitattributes +0 -0
  161. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/.github/FUNDING.yml +0 -0
  162. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/ALGORITHMS.md +0 -0
  163. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/InterpolatePy.egg-info/dependency_links.txt +0 -0
  164. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/InterpolatePy.egg-info/top_level.txt +0 -0
  165. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/LICENSE +0 -0
  166. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/algorithms.md +0 -0
  167. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/assets/extra.css +0 -0
  168. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/assets/extra.js +0 -0
  169. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/examples.md +0 -0
  170. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/tutorials/motion-profiles.md +0 -0
  171. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/docs/tutorials/spline-interpolation.md +0 -0
  172. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_approx_ex.py +0 -0
  173. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_cubic_ex.py +0 -0
  174. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_ex.py +0 -0
  175. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_interpolate_ex.py +0 -0
  176. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/b_spline_smooth_ex.py +0 -0
  177. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_smoot_search_ex.py +0 -0
  178. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_smoothing_ex.py +0 -0
  179. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_with_acc1_ex.py +0 -0
  180. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/c_s_with_acc2_ex.py +0 -0
  181. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/cubic_spline_ex.py +0 -0
  182. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/frenet_frame_ex.py +0 -0
  183. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/lin_poly_parabolic_ex.py +0 -0
  184. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/linear_ex.py +0 -0
  185. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/log_quat_ex.py +0 -0
  186. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/log_quat_new_ex.py +0 -0
  187. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/main.py +0 -0
  188. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/polynomials_ex.py +0 -0
  189. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/quat_visualization_ex.py +0 -0
  190. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/simple_paths_ex.py +0 -0
  191. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/squad_c2_ex.py +0 -0
  192. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/examples/trapezoidal_ex.py +0 -0
  193. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline.py +0 -0
  194. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_approx.py +0 -0
  195. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_cubic.py +0 -0
  196. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_interpolate.py +0 -0
  197. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/b_spline_smooth.py +0 -0
  198. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_smoot_search.py +0 -0
  199. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_with_acc1.py +0 -0
  200. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/c_s_with_acc2.py +0 -0
  201. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/cubic_spline.py +0 -0
  202. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/frenet_frame.py +0 -0
  203. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/lin_poly_parabolic.py +0 -0
  204. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/linear.py +0 -0
  205. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/log_quat.py +0 -0
  206. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/polynomials.py +0 -0
  207. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/quat_visualization.py +0 -0
  208. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/squad_c2.py +0 -0
  209. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/trapezoidal.py +0 -0
  210. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/interpolatepy/tridiagonal_inv.py +0 -0
  211. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/setup.cfg +0 -0
  212. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/__init__.py +0 -0
  213. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/inv_test.py +0 -0
  214. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_b_spline.py +0 -0
  215. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_b_spline_variants.py +0 -0
  216. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_cubic_spline.py +0 -0
  217. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_lin_poly_parabolic.py +0 -0
  218. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_linear.py +0 -0
  219. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_log_quat.py +0 -0
  220. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_path_planning.py +0 -0
  221. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_polynomials.py +0 -0
  222. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_quat_interp.py +0 -0
  223. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_quat_visualization.py +0 -0
  224. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_smoothing.py +0 -0
  225. {interpolatepy-2.0.1 → interpolatepy-3.0.1}/tests/test_squad_c2.py +0 -0
@@ -32,22 +32,20 @@ jobs:
32
32
  steps:
33
33
  - name: Checkout repository
34
34
  uses: actions/checkout@v4
35
-
36
- - name: Set up Python
37
- uses: actions/setup-python@v5
38
35
  with:
39
- python-version: '3.12'
40
- cache: 'pip'
41
-
42
- - name: Install dependencies
43
- run: |
44
- python -m pip install --upgrade pip
45
- pip install -r requirements-dev.txt
46
- pip install -e .
36
+ fetch-depth: 0
47
37
 
38
+ - name: Install uv
39
+ uses: astral-sh/setup-uv@v6
40
+ with:
41
+ enable-cache: true
42
+ cache-dependency-glob: uv.lock
43
+
44
+ - name: Sync dependencies
45
+ run: uv sync --locked --no-default-groups --group docs
46
+
48
47
  - name: Build documentation
49
- run: |
50
- mkdocs build --clean --strict
48
+ run: uv run mkdocs build --clean --strict
51
49
 
52
50
  - name: Setup Pages
53
51
  if: github.ref == 'refs/heads/main' && github.event_name == 'push'
@@ -0,0 +1,28 @@
1
+ name: pre-commit
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [ main, master ]
7
+
8
+ jobs:
9
+ pre-commit:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - name: Install uv
14
+ uses: astral-sh/setup-uv@v6
15
+ with:
16
+ enable-cache: true
17
+ cache-dependency-glob: uv.lock
18
+ - name: Sync dependencies
19
+ run: uv sync --locked --no-default-groups --group dev
20
+ - name: Cache pre-commit hook environments
21
+ uses: actions/cache@v4
22
+ with:
23
+ path: ~/.cache/pre-commit
24
+ key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
25
+ restore-keys: |
26
+ pre-commit-${{ runner.os }}-
27
+ - name: Run pre-commit
28
+ run: uv run pre-commit run --all-files --show-diff-on-failure
@@ -0,0 +1,28 @@
1
+ name: Publish
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ jobs:
8
+ deploy:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ id-token: write
12
+ contents: read
13
+ environment: pypi
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v6
20
+ with:
21
+ enable-cache: true
22
+ cache-dependency-glob: uv.lock
23
+ - name: Build package
24
+ run: uv build
25
+ - name: Verify package
26
+ run: uvx twine check dist/*
27
+ - name: Publish to PyPI
28
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,36 @@
1
+ name: ci-test
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, master ]
6
+ pull_request:
7
+ branches: [ main, master ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ python-version: ['3.11', '3.12', '3.13']
16
+ env:
17
+ UV_PYTHON: ${{ matrix.python-version }}
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v6
22
+ with:
23
+ enable-cache: true
24
+ cache-dependency-glob: uv.lock
25
+ - name: Sync dependencies
26
+ run: uv sync --locked --no-default-groups --group test
27
+ - name: Testing with coverage
28
+ run: uv run pytest tests --cov=interpolatepy --cov-report=xml --cov-report=term-missing
29
+ - name: Upload coverage to Codecov
30
+ uses: codecov/codecov-action@v5
31
+ with:
32
+ token: ${{ secrets.CODECOV_TOKEN }}
33
+ files: ./coverage.xml
34
+ flags: unittests
35
+ name: codecov-umbrella
36
+ fail_ci_if_error: false
@@ -99,9 +99,6 @@ target/
99
99
  # Jupyter Notebook
100
100
  .ipynb_checkpoints
101
101
 
102
- # pyenv
103
- .python-version
104
-
105
102
  # celery beat schedule file
106
103
  celerybeat-schedule
107
104
 
@@ -141,3 +138,13 @@ venv.bak/
141
138
  .history
142
139
 
143
140
  CLAUDE.md
141
+
142
+ ################################
143
+ ########### C++ BUILD ##########
144
+ ################################
145
+ cpp/build/
146
+ *.o
147
+ *.a
148
+ *.so
149
+ *.dylib
150
+ compile_commands.json
@@ -12,14 +12,14 @@ repos:
12
12
  - id: check-toml
13
13
 
14
14
  - repo: https://github.com/astral-sh/ruff-pre-commit
15
- rev: 'v0.12.8'
15
+ rev: 'v0.15.7'
16
16
  hooks:
17
17
  - id: ruff
18
18
  types_or: [python, pyi, jupyter]
19
19
  args: [ --fix, --exit-non-zero-on-fix, --preview ]
20
20
 
21
21
  - repo: https://github.com/pre-commit/mirrors-mypy
22
- rev: v1.17.1
22
+ rev: v1.19.1
23
23
  hooks:
24
24
  - id: mypy
25
25
  args: [--ignore-missing-imports]
@@ -0,0 +1 @@
1
+ 3.12
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InterpolatePy
3
- Version: 2.0.1
3
+ Version: 3.0.1
4
4
  Summary: A comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles
5
5
  Author-email: Giorgio Medico <giorgio.medico11@gmail.com>
6
6
  Maintainer-email: Giorgio Medico <giorgio.medico11@gmail.com>
@@ -17,7 +17,6 @@ Classifier: Intended Audience :: Science/Research
17
17
  Classifier: Intended Audience :: Developers
18
18
  Classifier: Intended Audience :: Education
19
19
  Classifier: Programming Language :: Python :: 3
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
@@ -31,32 +30,18 @@ Classifier: Topic :: Scientific/Engineering :: Physics
31
30
  Classifier: Topic :: Scientific/Engineering :: Visualization
32
31
  Classifier: Topic :: Software Development :: Libraries
33
32
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
33
+ Classifier: Programming Language :: C++
34
34
  Requires-Python: >=3.11
35
35
  Description-Content-Type: text/markdown
36
36
  License-File: LICENSE
37
- Requires-Dist: numpy>=2.3.0
38
- Requires-Dist: matplotlib>=3.10.5
39
- Requires-Dist: scipy>=1.16.0
40
- Provides-Extra: test
41
- Requires-Dist: pytest>=8.4.0; extra == "test"
42
- Requires-Dist: pytest-cov>=4.1.0; extra == "test"
43
- Requires-Dist: codecov>=2.1.13; extra == "test"
44
- Requires-Dist: pytest-benchmark>=4.0.0; extra == "test"
45
- Requires-Dist: pre-commit>=4.2.0; extra == "test"
46
- Provides-Extra: dev
47
- Requires-Dist: ruff>=0.12.8; extra == "dev"
48
- Requires-Dist: mypy>=1.17.0; extra == "dev"
49
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
50
- Requires-Dist: pyright>=1.1.400; extra == "dev"
51
- Requires-Dist: build>=1.0.3; extra == "dev"
52
- Requires-Dist: twine>=4.0.2; extra == "dev"
53
- Provides-Extra: all
54
- Requires-Dist: interpolatepy[dev,test]; extra == "all"
37
+ Requires-Dist: numpy>=1.26
38
+ Requires-Dist: matplotlib>=3.6
39
+ Requires-Dist: scipy>=1.11
55
40
  Dynamic: license-file
56
41
 
57
42
  # InterpolatePy
58
43
 
59
- ![Python](https://img.shields.io/badge/python-3.10+-blue)
44
+ ![Python](https://img.shields.io/badge/python-3.11+-blue)
60
45
  [![PyPI Downloads](https://static.pepy.tech/badge/interpolatepy)](https://pepy.tech/projects/interpolatepy)
61
46
  [![pre-commit](https://github.com/GiorgioMedico/InterpolatePy/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/GiorgioMedico/InterpolatePy/actions/workflows/pre-commit.yml)
62
47
  [![ci-test](https://github.com/GiorgioMedico/InterpolatePy/actions/workflows/test.yml/badge.svg)](https://github.com/GiorgioMedico/InterpolatePy/actions/workflows/test.yml)
@@ -66,9 +51,9 @@ Dynamic: license-file
66
51
 
67
52
  InterpolatePy provides 20+ algorithms for smooth trajectory generation with precise control over position, velocity, acceleration, and jerk. From cubic splines and B-curves to quaternion interpolation and S-curve motion profiles — everything you need for professional motion control.
68
53
 
69
- **⚡ Fast:** Vectorized NumPy operations, ~1ms for 1000-point cubic splines
70
- **🎯 Precise:** Research-grade algorithms with C² continuity and bounded derivatives
71
- **📊 Visual:** Built-in plotting for every algorithm
54
+ **⚡ Fast:** Optional C++ backend with pybind11; pure-Python fallback uses vectorized NumPy
55
+ **🎯 Precise:** Research-grade algorithms with C² continuity and bounded derivatives
56
+ **📊 Visual:** Built-in plotting for every algorithm
72
57
  **🔧 Complete:** Splines, motion profiles, quaternions, and path planning in one library
73
58
 
74
59
  ---
@@ -79,16 +64,20 @@ InterpolatePy provides 20+ algorithms for smooth trajectory generation with prec
79
64
  pip install InterpolatePy
80
65
  ```
81
66
 
82
- **Requirements:** Python ≥3.10, NumPy ≥2.0, SciPy ≥1.15, Matplotlib ≥3.10
67
+ **Requirements:** Python ≥3.11, NumPy ≥2.3, SciPy ≥1.16, Matplotlib ≥3.10.5
83
68
 
84
69
  <details>
85
70
  <summary><strong>Development Installation</strong></summary>
86
71
 
72
+ This project uses [uv](https://docs.astral.sh/uv/) for dependency and environment management.
73
+
87
74
  ```bash
88
75
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
89
76
  cd InterpolatePy
90
- pip install -e '.[all]' # Includes testing and development tools
77
+ uv sync # creates .venv with the default dev + test groups
91
78
  ```
79
+
80
+ To include the docs group as well: `uv sync --all-groups`.
92
81
  </details>
93
82
 
94
83
  ## Quick Start
@@ -278,12 +267,23 @@ plt.show()
278
267
 
279
268
  ## Performance & Quality
280
269
 
281
- - **Fast:** Vectorized NumPy operations, optimized algorithms
282
- - **Reliable:** 85%+ test coverage, continuous integration
283
- - **Modern:** Python 3.10+, strict typing, dataclass-based APIs
270
+ - **Fast:** Optional C++ backend (Eigen + pybind11) for maximum performance; pure-Python fallback uses vectorized NumPy
271
+ - **Reliable:** 85%+ test coverage, continuous integration, 142 additional C++ unit tests
272
+ - **Modern:** Python 3.11+, strict typing, dataclass-based APIs
284
273
  - **Research-grade:** Peer-reviewed algorithms from robotics literature
285
274
 
286
- **Typical Performance:**
275
+ **C++ Backend:**
276
+
277
+ InterpolatePy includes an optional compiled C++ extension for performance-critical workloads. The API is identical regardless of backend:
278
+
279
+ ```python
280
+ import interpolatepy
281
+ print(f"C++ backend: {interpolatepy.HAS_CPP}") # True if extension is available
282
+ ```
283
+
284
+ Set `INTERPOLATEPY_NO_CPP=1` to force pure-Python mode.
285
+
286
+ **Typical Performance (pure-Python):**
287
287
  - Cubic spline (1000 points): ~1ms
288
288
  - B-spline evaluation (10k points): ~5ms
289
289
  - S-curve trajectory planning: ~0.5ms
@@ -298,20 +298,22 @@ plt.show()
298
298
  ```bash
299
299
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
300
300
  cd InterpolatePy
301
- pip install -e '.[all]'
302
- pre-commit install
301
+ uv sync # creates .venv with dev + test groups
302
+ uv run pre-commit install
303
303
 
304
304
  # Run tests
305
- python -m pytest tests/
305
+ uv run pytest tests/
306
306
 
307
307
  # Run tests with coverage
308
- python -m pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
308
+ uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
309
309
 
310
310
  # Code quality
311
- ruff format interpolatepy/
312
- ruff check interpolatepy/
313
- mypy interpolatepy/
311
+ uv run ruff format interpolatepy/
312
+ uv run ruff check interpolatepy/
313
+ uv run mypy interpolatepy/
314
314
 
315
+ # Run all pre-commit hooks
316
+ uv run pre-commit run --all-files
315
317
  ```
316
318
  </details>
317
319
 
@@ -322,9 +324,9 @@ mypy interpolatepy/
322
324
  Contributions welcome! Please:
323
325
 
324
326
  1. Fork the repo and create a feature branch
325
- 2. Install dev dependencies: `pip install -e '.[all]'`
327
+ 2. Install dev dependencies: `uv sync`
326
328
  3. Follow existing patterns and add tests
327
- 4. Run `pre-commit run --all-files` before submitting
329
+ 4. Run `uv run pre-commit run --all-files` before submitting
328
330
  5. Open a pull request with clear description
329
331
 
330
332
  For major changes, open an issue first to discuss the approach.
@@ -0,0 +1,215 @@
1
+ .editorconfig
2
+ .gitattributes
3
+ .gitignore
4
+ .pre-commit-config.yaml
5
+ .python-version
6
+ ALGORITHMS.md
7
+ LICENSE
8
+ README.md
9
+ codecov.yml
10
+ mkdocs.yml
11
+ pyproject.toml
12
+ uv.lock
13
+ .github/FUNDING.yml
14
+ .github/workflows/docs.yml
15
+ .github/workflows/pre-commit.yml
16
+ .github/workflows/publish.yml
17
+ .github/workflows/test.yml
18
+ InterpolatePy.egg-info/PKG-INFO
19
+ InterpolatePy.egg-info/SOURCES.txt
20
+ InterpolatePy.egg-info/dependency_links.txt
21
+ InterpolatePy.egg-info/requires.txt
22
+ InterpolatePy.egg-info/top_level.txt
23
+ cpp/CMakeLists.txt
24
+ cpp/bindings/CMakeLists.txt
25
+ cpp/bindings/bind_acc_splines.cpp
26
+ cpp/bindings/bind_bspline.cpp
27
+ cpp/bindings/bind_cubic_spline.cpp
28
+ cpp/bindings/bind_motion.cpp
29
+ cpp/bindings/bind_paths.cpp
30
+ cpp/bindings/bind_quaternion.cpp
31
+ cpp/bindings/bind_smoothing_search.cpp
32
+ cpp/bindings/bind_smoothing_spline.cpp
33
+ cpp/bindings/bind_tridiagonal.cpp
34
+ cpp/bindings/module.cpp
35
+ cpp/cmake/InterpolateCppConfig.cmake.in
36
+ cpp/cmake/version.hpp.in
37
+ cpp/examples/CMakeLists.txt
38
+ cpp/examples/bspline_approx_smooth_example.cpp
39
+ cpp/examples/bspline_cubic_example.cpp
40
+ cpp/examples/bspline_example.cpp
41
+ cpp/examples/bspline_interpolator_example.cpp
42
+ cpp/examples/concepts_example.cpp
43
+ cpp/examples/cubic_smoothing_example.cpp
44
+ cpp/examples/cubic_spline_acc1_example.cpp
45
+ cpp/examples/cubic_spline_acc2_example.cpp
46
+ cpp/examples/cubic_spline_example.cpp
47
+ cpp/examples/double_s_example.cpp
48
+ cpp/examples/parabolic_linear_example.cpp
49
+ cpp/examples/paths_example.cpp
50
+ cpp/examples/polynomial_example.cpp
51
+ cpp/examples/quaternion_example.cpp
52
+ cpp/examples/trapezoidal_example.cpp
53
+ cpp/examples/shared/example_utils.hpp
54
+ cpp/include/interpolatecpp/concepts.hpp
55
+ cpp/include/interpolatecpp/config.hpp
56
+ cpp/include/interpolatecpp/tridiagonal.hpp
57
+ cpp/include/interpolatecpp/bspline/approximation_bspline.hpp
58
+ cpp/include/interpolatecpp/bspline/bspline.hpp
59
+ cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp
60
+ cpp/include/interpolatecpp/bspline/bspline_parameters.hpp
61
+ cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp
62
+ cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp
63
+ cpp/include/interpolatecpp/motion/double_s_trajectory.hpp
64
+ cpp/include/interpolatecpp/motion/motion_types.hpp
65
+ cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp
66
+ cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp
67
+ cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp
68
+ cpp/include/interpolatecpp/path/circular_path.hpp
69
+ cpp/include/interpolatecpp/path/frenet_frame.hpp
70
+ cpp/include/interpolatecpp/path/linear_path.hpp
71
+ cpp/include/interpolatecpp/path/linear_traj.hpp
72
+ cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp
73
+ cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp
74
+ cpp/include/interpolatecpp/quat/quaternion.hpp
75
+ cpp/include/interpolatecpp/quat/quaternion_spline.hpp
76
+ cpp/include/interpolatecpp/quat/squad_c2.hpp
77
+ cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp
78
+ cpp/include/interpolatecpp/spline/cubic_spline.hpp
79
+ cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp
80
+ cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp
81
+ cpp/include/interpolatecpp/spline/smoothing_search.hpp
82
+ cpp/include/interpolatecpp/spline/spline_parameters.hpp
83
+ cpp/src/approximation_bspline.cpp
84
+ cpp/src/bspline.cpp
85
+ cpp/src/bspline_interpolator.cpp
86
+ cpp/src/circular_path.cpp
87
+ cpp/src/cubic_bspline_interpolation.cpp
88
+ cpp/src/cubic_smoothing_spline.cpp
89
+ cpp/src/cubic_spline.cpp
90
+ cpp/src/cubic_spline_with_acc1.cpp
91
+ cpp/src/cubic_spline_with_acc2.cpp
92
+ cpp/src/double_s_trajectory.cpp
93
+ cpp/src/frenet_frame.cpp
94
+ cpp/src/linear_path.cpp
95
+ cpp/src/linear_traj.cpp
96
+ cpp/src/log_quaternion_interpolation.cpp
97
+ cpp/src/modified_log_quaternion_interpolation.cpp
98
+ cpp/src/parabolic_blend_trajectory.cpp
99
+ cpp/src/polynomial_trajectory.cpp
100
+ cpp/src/quaternion.cpp
101
+ cpp/src/quaternion_spline.cpp
102
+ cpp/src/smoothing_cubic_bspline.cpp
103
+ cpp/src/smoothing_search.cpp
104
+ cpp/src/squad_c2.cpp
105
+ cpp/src/trapezoidal_trajectory.cpp
106
+ cpp/tests/CMakeLists.txt
107
+ cpp/tests/test_bspline.cpp
108
+ cpp/tests/test_bspline_variants.cpp
109
+ cpp/tests/test_concepts.cpp
110
+ cpp/tests/test_cubic_smoothing_spline.cpp
111
+ cpp/tests/test_cubic_spline.cpp
112
+ cpp/tests/test_cubic_spline_with_acc1.cpp
113
+ cpp/tests/test_cubic_spline_with_acc2.cpp
114
+ cpp/tests/test_double_s_trajectory.cpp
115
+ cpp/tests/test_parabolic_blend_trajectory.cpp
116
+ cpp/tests/test_paths.cpp
117
+ cpp/tests/test_polynomial_trajectory.cpp
118
+ cpp/tests/test_quaternion.cpp
119
+ cpp/tests/test_quaternion_spline.cpp
120
+ cpp/tests/test_smoothing_search.cpp
121
+ cpp/tests/test_trapezoidal_trajectory.cpp
122
+ cpp/tests/test_tridiagonal.cpp
123
+ cpp/tests/shared/test_data.hpp
124
+ docs/algorithms.md
125
+ docs/api-reference.md
126
+ docs/architecture.md
127
+ docs/changelog.md
128
+ docs/contributing.md
129
+ docs/examples.md
130
+ docs/index.md
131
+ docs/installation.md
132
+ docs/quickstart.md
133
+ docs/troubleshooting.md
134
+ docs/user-guide.md
135
+ docs/assets/extra.css
136
+ docs/assets/extra.js
137
+ docs/tutorials/motion-profiles.md
138
+ docs/tutorials/path-planning.md
139
+ docs/tutorials/quaternion-interpolation.md
140
+ docs/tutorials/spline-interpolation.md
141
+ examples/b_spline_approx_ex.py
142
+ examples/b_spline_cubic_ex.py
143
+ examples/b_spline_ex.py
144
+ examples/b_spline_interpolate_ex.py
145
+ examples/b_spline_smooth_ex.py
146
+ examples/c_s_smoot_search_ex.py
147
+ examples/c_s_smoothing_ex.py
148
+ examples/c_s_with_acc1_ex.py
149
+ examples/c_s_with_acc2_ex.py
150
+ examples/cubic_spline_ex.py
151
+ examples/double_s_ex.py
152
+ examples/frenet_frame_ex.py
153
+ examples/lin_poly_parabolic_ex.py
154
+ examples/linear_ex.py
155
+ examples/log_quat_ex.py
156
+ examples/log_quat_new_ex.py
157
+ examples/main.py
158
+ examples/polynomials_ex.py
159
+ examples/protocols_ex.py
160
+ examples/quat_visualization_ex.py
161
+ examples/simple_paths_ex.py
162
+ examples/squad_c2_ex.py
163
+ examples/trapezoidal_ex.py
164
+ interpolatepy/__init__.py
165
+ interpolatepy/_api.py
166
+ interpolatepy/_backend.py
167
+ interpolatepy/b_spline.py
168
+ interpolatepy/b_spline_approx.py
169
+ interpolatepy/b_spline_cubic.py
170
+ interpolatepy/b_spline_interpolate.py
171
+ interpolatepy/b_spline_smooth.py
172
+ interpolatepy/c_s_smoot_search.py
173
+ interpolatepy/c_s_smoothing.py
174
+ interpolatepy/c_s_with_acc1.py
175
+ interpolatepy/c_s_with_acc2.py
176
+ interpolatepy/cubic_spline.py
177
+ interpolatepy/double_s.py
178
+ interpolatepy/frenet_frame.py
179
+ interpolatepy/lin_poly_parabolic.py
180
+ interpolatepy/linear.py
181
+ interpolatepy/log_quat.py
182
+ interpolatepy/polynomials.py
183
+ interpolatepy/protocols.py
184
+ interpolatepy/quat_core.py
185
+ interpolatepy/quat_spline.py
186
+ interpolatepy/quat_visualization.py
187
+ interpolatepy/simple_paths.py
188
+ interpolatepy/squad_c2.py
189
+ interpolatepy/trapezoidal.py
190
+ interpolatepy/tridiagonal_inv.py
191
+ interpolatepy/version.py
192
+ interpolatepy/_adapters/__init__.py
193
+ interpolatepy/_adapters/_bspline.py
194
+ interpolatepy/_adapters/_direct.py
195
+ interpolatepy/_adapters/_motion.py
196
+ interpolatepy/_adapters/_paths.py
197
+ interpolatepy/_adapters/_quaternion.py
198
+ interpolatepy/_adapters/_spline.py
199
+ tests/__init__.py
200
+ tests/inv_test.py
201
+ tests/test_b_spline.py
202
+ tests/test_b_spline_variants.py
203
+ tests/test_backend.py
204
+ tests/test_cubic_spline.py
205
+ tests/test_lin_poly_parabolic.py
206
+ tests/test_linear.py
207
+ tests/test_log_quat.py
208
+ tests/test_motion_profiles.py
209
+ tests/test_path_planning.py
210
+ tests/test_polynomials.py
211
+ tests/test_protocols.py
212
+ tests/test_quat_interp.py
213
+ tests/test_quat_visualization.py
214
+ tests/test_smoothing.py
215
+ tests/test_squad_c2.py
@@ -0,0 +1,3 @@
1
+ numpy>=1.26
2
+ matplotlib>=3.6
3
+ scipy>=1.11