InterpolatePy 3.2.1__tar.gz → 3.2.2__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 (222) hide show
  1. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/PKG-INFO +1 -1
  2. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/PKG-INFO +1 -1
  3. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_cubic.py +13 -15
  4. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/version.py +1 -1
  5. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_b_spline_variants.py +23 -0
  6. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.editorconfig +0 -0
  7. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.gitattributes +0 -0
  8. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/FUNDING.yml +0 -0
  9. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/docs.yml +0 -0
  10. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/pre-commit.yml +0 -0
  11. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/publish.yml +0 -0
  12. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.github/workflows/test.yml +0 -0
  13. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.gitignore +0 -0
  14. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.pre-commit-config.yaml +0 -0
  15. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/.python-version +0 -0
  16. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/ALGORITHMS.md +0 -0
  17. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/SOURCES.txt +0 -0
  18. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/dependency_links.txt +0 -0
  19. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/requires.txt +0 -0
  20. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/InterpolatePy.egg-info/top_level.txt +0 -0
  21. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/LICENSE +0 -0
  22. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/README.md +0 -0
  23. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/codecov.yml +0 -0
  24. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/CMakeLists.txt +0 -0
  25. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/CMakeLists.txt +0 -0
  26. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_acc_splines.cpp +0 -0
  27. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_bspline.cpp +0 -0
  28. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_cubic_spline.cpp +0 -0
  29. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_motion.cpp +0 -0
  30. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_paths.cpp +0 -0
  31. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_quaternion.cpp +0 -0
  32. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_smoothing_search.cpp +0 -0
  33. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_smoothing_spline.cpp +0 -0
  34. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/bind_tridiagonal.cpp +0 -0
  35. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/bindings/module.cpp +0 -0
  36. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/cmake/InterpolateCppConfig.cmake.in +0 -0
  37. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/cmake/version.hpp.in +0 -0
  38. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/CMakeLists.txt +0 -0
  39. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_approx_smooth_example.cpp +0 -0
  40. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_cubic_example.cpp +0 -0
  41. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_example.cpp +0 -0
  42. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/bspline_interpolator_example.cpp +0 -0
  43. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/concepts_example.cpp +0 -0
  44. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_smoothing_example.cpp +0 -0
  45. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_spline_acc1_example.cpp +0 -0
  46. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_spline_acc2_example.cpp +0 -0
  47. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/cubic_spline_example.cpp +0 -0
  48. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/double_s_example.cpp +0 -0
  49. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/parabolic_linear_example.cpp +0 -0
  50. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/paths_example.cpp +0 -0
  51. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/polynomial_example.cpp +0 -0
  52. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/quaternion_example.cpp +0 -0
  53. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/shared/example_utils.hpp +0 -0
  54. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/examples/trapezoidal_example.cpp +0 -0
  55. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/approximation_bspline.hpp +0 -0
  56. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/bspline.hpp +0 -0
  57. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp +0 -0
  58. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/bspline_parameters.hpp +0 -0
  59. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp +0 -0
  60. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp +0 -0
  61. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/concepts.hpp +0 -0
  62. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/config.hpp +0 -0
  63. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/double_s_trajectory.hpp +0 -0
  64. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/motion_types.hpp +0 -0
  65. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp +0 -0
  66. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp +0 -0
  67. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp +0 -0
  68. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/circular_path.hpp +0 -0
  69. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/frenet_frame.hpp +0 -0
  70. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/linear_path.hpp +0 -0
  71. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/path/linear_traj.hpp +0 -0
  72. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp +0 -0
  73. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp +0 -0
  74. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/quaternion.hpp +0 -0
  75. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/quaternion_spline.hpp +0 -0
  76. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/quat/squad_c2.hpp +0 -0
  77. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp +0 -0
  78. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline.hpp +0 -0
  79. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp +0 -0
  80. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp +0 -0
  81. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/smoothing_search.hpp +0 -0
  82. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/spline/spline_parameters.hpp +0 -0
  83. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/include/interpolatecpp/tridiagonal.hpp +0 -0
  84. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/approximation_bspline.cpp +0 -0
  85. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/bspline.cpp +0 -0
  86. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/bspline_interpolator.cpp +0 -0
  87. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/circular_path.cpp +0 -0
  88. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_bspline_interpolation.cpp +0 -0
  89. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_smoothing_spline.cpp +0 -0
  90. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_spline.cpp +0 -0
  91. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_spline_with_acc1.cpp +0 -0
  92. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/cubic_spline_with_acc2.cpp +0 -0
  93. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/double_s_trajectory.cpp +0 -0
  94. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/frenet_frame.cpp +0 -0
  95. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/linear_path.cpp +0 -0
  96. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/linear_traj.cpp +0 -0
  97. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/log_quaternion_interpolation.cpp +0 -0
  98. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/modified_log_quaternion_interpolation.cpp +0 -0
  99. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/parabolic_blend_trajectory.cpp +0 -0
  100. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/polynomial_trajectory.cpp +0 -0
  101. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/quaternion.cpp +0 -0
  102. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/quaternion_spline.cpp +0 -0
  103. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/smoothing_cubic_bspline.cpp +0 -0
  104. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/smoothing_search.cpp +0 -0
  105. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/squad_c2.cpp +0 -0
  106. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/src/trapezoidal_trajectory.cpp +0 -0
  107. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/CMakeLists.txt +0 -0
  108. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/shared/test_data.hpp +0 -0
  109. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_bspline.cpp +0 -0
  110. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_bspline_variants.cpp +0 -0
  111. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_concepts.cpp +0 -0
  112. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_smoothing_spline.cpp +0 -0
  113. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_spline.cpp +0 -0
  114. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_spline_with_acc1.cpp +0 -0
  115. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_cubic_spline_with_acc2.cpp +0 -0
  116. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_double_s_trajectory.cpp +0 -0
  117. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_parabolic_blend_trajectory.cpp +0 -0
  118. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_paths.cpp +0 -0
  119. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_polynomial_trajectory.cpp +0 -0
  120. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_quaternion.cpp +0 -0
  121. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_quaternion_spline.cpp +0 -0
  122. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_smoothing_search.cpp +0 -0
  123. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_trapezoidal_trajectory.cpp +0 -0
  124. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/cpp/tests/test_tridiagonal.cpp +0 -0
  125. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/algorithms.md +0 -0
  126. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/api-reference.md +0 -0
  127. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/architecture.md +0 -0
  128. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/assets/extra.css +0 -0
  129. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/assets/extra.js +0 -0
  130. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/changelog.md +0 -0
  131. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/contributing.md +0 -0
  132. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/examples.md +0 -0
  133. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/index.md +0 -0
  134. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/installation.md +0 -0
  135. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/quickstart.md +0 -0
  136. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/troubleshooting.md +0 -0
  137. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/motion-profiles.md +0 -0
  138. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/path-planning.md +0 -0
  139. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/quaternion-interpolation.md +0 -0
  140. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/tutorials/spline-interpolation.md +0 -0
  141. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/docs/user-guide.md +0 -0
  142. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_approx_ex.py +0 -0
  143. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_cubic_ex.py +0 -0
  144. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_ex.py +0 -0
  145. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_interpolate_ex.py +0 -0
  146. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/b_spline_smooth_ex.py +0 -0
  147. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_smoot_search_ex.py +0 -0
  148. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_smoothing_ex.py +0 -0
  149. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_with_acc1_ex.py +0 -0
  150. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/c_s_with_acc2_ex.py +0 -0
  151. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/cubic_spline_ex.py +0 -0
  152. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/double_s_ex.py +0 -0
  153. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/frenet_frame_ex.py +0 -0
  154. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/lin_poly_parabolic_ex.py +0 -0
  155. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/linear_ex.py +0 -0
  156. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/log_quat_new_ex.py +0 -0
  157. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/lqi_spiral_frenet_ex.py +0 -0
  158. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/main.py +0 -0
  159. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/mlqi_spiral_frenet_ex.py +0 -0
  160. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/polynomials_ex.py +0 -0
  161. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/protocols_ex.py +0 -0
  162. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/quat_visualization_ex.py +0 -0
  163. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/simple_paths_ex.py +0 -0
  164. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/squad_c2_ex.py +0 -0
  165. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/examples/trapezoidal_ex.py +0 -0
  166. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/__init__.py +0 -0
  167. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/__init__.py +0 -0
  168. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_bspline.py +0 -0
  169. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_direct.py +0 -0
  170. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_motion.py +0 -0
  171. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_paths.py +0 -0
  172. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_quaternion.py +0 -0
  173. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_adapters/_spline.py +0 -0
  174. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_api.py +0 -0
  175. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/_backend.py +0 -0
  176. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline.py +0 -0
  177. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_approx.py +0 -0
  178. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_interpolate.py +0 -0
  179. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/b_spline_smooth.py +0 -0
  180. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_smoot_search.py +0 -0
  181. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_smoothing.py +0 -0
  182. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_with_acc1.py +0 -0
  183. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/c_s_with_acc2.py +0 -0
  184. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/cubic_spline.py +0 -0
  185. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/double_s.py +0 -0
  186. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/frenet_frame.py +0 -0
  187. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/lin_poly_parabolic.py +0 -0
  188. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/linear.py +0 -0
  189. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/log_quat.py +0 -0
  190. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/polynomials.py +0 -0
  191. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/protocols.py +0 -0
  192. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/quat_core.py +0 -0
  193. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/quat_spline.py +0 -0
  194. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/quat_visualization.py +0 -0
  195. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/simple_paths.py +0 -0
  196. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/squad_c2.py +0 -0
  197. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/trapezoidal.py +0 -0
  198. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/interpolatepy/tridiagonal_inv.py +0 -0
  199. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/mkdocs.yml +0 -0
  200. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/pyproject.toml +0 -0
  201. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/scripts/__init__.py +0 -0
  202. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/scripts/check_doc_snippets.py +0 -0
  203. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/scripts/check_python_examples.py +0 -0
  204. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/setup.cfg +0 -0
  205. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/__init__.py +0 -0
  206. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/inv_test.py +0 -0
  207. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_b_spline.py +0 -0
  208. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_backend.py +0 -0
  209. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_cubic_spline.py +0 -0
  210. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_lin_poly_parabolic.py +0 -0
  211. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_linear.py +0 -0
  212. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_log_quat.py +0 -0
  213. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_motion_profiles.py +0 -0
  214. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_native_adapter_api.py +0 -0
  215. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_path_planning.py +0 -0
  216. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_polynomials.py +0 -0
  217. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_protocols.py +0 -0
  218. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_quat_interp.py +0 -0
  219. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_quat_visualization.py +0 -0
  220. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_smoothing.py +0 -0
  221. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/tests/test_squad_c2.py +0 -0
  222. {interpolatepy-3.2.1 → interpolatepy-3.2.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InterpolatePy
3
- Version: 3.2.1
3
+ Version: 3.2.2
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>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InterpolatePy
3
- Version: 3.2.1
3
+ Version: 3.2.2
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>
@@ -400,25 +400,23 @@ class CubicBSplineInterpolation(BSpline):
400
400
  b3_k1 = basis_vals[1]
401
401
  b3_k2 = basis_vals[2]
402
402
 
403
- # Fill the tridiagonal matrix
403
+ # A known neighbour (p₁, pₙ₊₁) moves to the right-hand side, an unknown
404
+ # one gets an off-diagonal. Independent tests, not if/elif: at n == 2
405
+ # the only row is both first and last and needs both subtractions.
406
+ main_diagonal[k - 1] = b3_k1
407
+ rhs_k = np.asarray(self.interpolation_points[k], dtype=np.float64).copy()
408
+
404
409
  if k == 1:
405
- # First row
406
- main_diagonal[0] = b3_k1
407
- upper_diagonal[0] = b3_k2
408
- right_hand_side[0] = self.interpolation_points[k] - b3_k * control_points[1]
409
- elif k == n - 1:
410
- # Last row
411
- lower_diagonal[k - 2] = b3_k
412
- main_diagonal[k - 1] = b3_k1
413
- right_hand_side[k - 1] = (
414
- self.interpolation_points[k] - b3_k2 * control_points[n + 1]
415
- )
410
+ rhs_k -= b3_k * control_points[1]
416
411
  else:
417
- # Middle rows
418
412
  lower_diagonal[k - 2] = b3_k
419
- main_diagonal[k - 1] = b3_k1
413
+
414
+ if k == n - 1:
415
+ rhs_k -= b3_k2 * control_points[n + 1]
416
+ else:
420
417
  upper_diagonal[k - 1] = b3_k2
421
- right_hand_side[k - 1] = self.interpolation_points[k]
418
+
419
+ right_hand_side[k - 1] = rhs_k
422
420
 
423
421
  # Solve the tridiagonal system for each dimension
424
422
  for d in range(dimension):
@@ -2,4 +2,4 @@
2
2
  __version__ file.
3
3
  """
4
4
 
5
- __version__ = "3.2.1"
5
+ __version__ = "3.2.2"
@@ -352,6 +352,29 @@ class TestCubicBSplineInterpolation:
352
352
  assert isinstance(spline, CubicBSplineInterpolation)
353
353
 
354
354
 
355
+ @pytest.mark.parametrize("n_points", [2, 3, 4, 5, 6, 7, 8])
356
+ def test_curve_passes_through_every_point(self, n_points: int) -> None:
357
+ """The curve must pass through each point at that point's own u_bar.
358
+
359
+ Guards n == 2 (three points), where the single tridiagonal row is both
360
+ the first and the last: an if/elif chain there keeps only the left
361
+ term, drops b3_k2 * p[n+1] and displaces the middle control point.
362
+ Two points return before the solve and four or more have distinct
363
+ rows, so three is the only count that hits it -- hence the sweep.
364
+ """
365
+ rng = np.random.default_rng(0)
366
+ for _ in range(20):
367
+ points = rng.uniform(-0.5, 0.5, (n_points, 3))
368
+ spline = CubicBSplineInterpolation(
369
+ points=points, v0=np.zeros(3), vn=np.zeros(3), method="chord_length"
370
+ )
371
+ for i, u_bar in enumerate(np.asarray(spline.u_bars)):
372
+ evaluated = np.asarray(spline.evaluate(float(u_bar)))
373
+ assert np.linalg.norm(evaluated - points[i]) == pytest.approx(
374
+ 0.0, abs=1e-9
375
+ )
376
+
377
+
355
378
  class TestApproximationBSpline:
356
379
  """Test suite for ApproximationBSpline class."""
357
380
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes