splinekit 0.1.0__tar.gz → 0.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 (339) hide show
  1. splinekit-0.2.2/.github/workflows/release.yml +140 -0
  2. splinekit-0.2.2/CMakeLists.txt +36 -0
  3. {splinekit-0.1.0 → splinekit-0.2.2}/PKG-INFO +43 -34
  4. {splinekit-0.1.0 → splinekit-0.2.2}/README.md +11 -0
  5. splinekit-0.2.2/ansi_c/spline_padding/src/spline_padding.c +275 -0
  6. splinekit-0.2.2/ansi_c/spline_padding/src/spline_padding.h +57 -0
  7. splinekit-0.2.2/dev/ANSI-C/spline_padding_cmake/CMakeLists.txt +15 -0
  8. splinekit-0.2.2/dev/ANSI-C/spline_padding_cmake/spline_padding.c +275 -0
  9. splinekit-0.2.2/dev/ANSI-C/spline_padding_cmake/spline_padding.h +56 -0
  10. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/libspline_padding.dylib +0 -0
  11. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.c +275 -0
  12. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.h +56 -0
  13. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.pbxproj +295 -0
  14. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  15. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/xcuserdata/pthevena.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  16. splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/xcuserdata/pthevena.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  17. splinekit-0.2.2/dev/Jupyter/bspline_annihilate.ipynb +133 -0
  18. splinekit-0.2.2/dev/Jupyter/bspline_cardinal.ipynb +108 -0
  19. splinekit-0.2.2/dev/Jupyter/bspline_convolve_mono.ipynb +106 -0
  20. splinekit-0.2.2/dev/Jupyter/bspline_dual.ipynb +110 -0
  21. splinekit-0.2.2/dev/Jupyter/bspline_dual_property.ipynb +137 -0
  22. splinekit-0.2.2/dev/Jupyter/bspline_gauss_exo.ipynb +147 -0
  23. splinekit-0.2.2/dev/Jupyter/bspline_hello.ipynb +112 -0
  24. splinekit-0.2.2/dev/Jupyter/bspline_hello_grad.ipynb +113 -0
  25. splinekit-0.2.2/dev/Jupyter/bspline_hello_integral.ipynb +117 -0
  26. splinekit-0.2.2/dev/Jupyter/bspline_inv.ipynb +111 -0
  27. splinekit-0.2.2/dev/Jupyter/bspline_m_scale.ipynb +125 -0
  28. splinekit-0.2.2/dev/Jupyter/bspline_member.ipynb +109 -0
  29. splinekit-0.2.2/dev/Jupyter/bspline_member_diff.ipynb +140 -0
  30. splinekit-0.2.2/dev/Jupyter/bspline_member_integral.ipynb +114 -0
  31. splinekit-0.2.2/dev/Jupyter/bspline_numeric_stability.ipynb +513 -0
  32. splinekit-0.2.2/dev/Jupyter/bspline_ortho.ipynb +108 -0
  33. splinekit-0.2.2/dev/Jupyter/bspline_ortho_property.ipynb +133 -0
  34. splinekit-0.2.2/dev/Jupyter/bspline_partition_mono.ipynb +104 -0
  35. splinekit-0.2.2/dev/Jupyter/bspline_periodic_inv.ipynb +131 -0
  36. splinekit-0.2.2/dev/Jupyter/bspline_poles.ipynb +115 -0
  37. splinekit-0.2.2/dev/Jupyter/bspline_sinc.ipynb +137 -0
  38. splinekit-0.2.2/dev/Jupyter/bspline_spline_poly.ipynb +103 -0
  39. splinekit-0.2.2/dev/Jupyter/bspline_trigo_exo.ipynb +227 -0
  40. splinekit-0.2.2/dev/Jupyter/bspline_vs_cos.ipynb +141 -0
  41. splinekit-0.2.2/dev/Jupyter/bspline_vs_erf.ipynb +130 -0
  42. splinekit-0.2.2/dev/Jupyter/bspline_vs_exp.ipynb +154 -0
  43. splinekit-0.2.2/dev/Jupyter/bspline_vs_pi_as_sum.ipynb +118 -0
  44. splinekit-0.2.2/dev/Jupyter/bspline_vs_pi_at0.ipynb +121 -0
  45. splinekit-0.2.2/dev/Jupyter/bspline_vs_sin.ipynb +150 -0
  46. splinekit-0.2.2/dev/Jupyter/padding_data.ipynb +254 -0
  47. splinekit-0.2.2/dev/Jupyter/padding_speed.ipynb +219 -0
  48. splinekit-0.2.2/dev/Jupyter/spline_approximation.ipynb +162 -0
  49. splinekit-0.2.2/dev/Jupyter/spline_at_array.ipynb +365 -0
  50. splinekit-0.2.2/dev/Jupyter/spline_at_scalar.ipynb +1107 -0
  51. splinekit-0.2.2/dev/Jupyter/spline_bounds.ipynb +138 -0
  52. splinekit-0.2.2/dev/Jupyter/spline_evaluation_speed.ipynb +158 -0
  53. splinekit-0.2.2/dev/Jupyter/spline_interpolation.ipynb +159 -0
  54. splinekit-0.2.2/dev/Jupyter/spline_polynomials.ipynb +153 -0
  55. splinekit-0.2.2/dev/Jupyter/spline_random_1d.ipynb +170 -0
  56. splinekit-0.2.2/dev/Jupyter/spline_random_2d.ipynb +376 -0
  57. splinekit-0.2.2/dev/Wolfram/Bspline Poles.nb +2047 -0
  58. splinekit-0.2.2/dev/Wolfram/IntervalChecks.nb +2610 -0
  59. splinekit-0.2.2/dev/Wolfram/PeriodicSplinesChecks.nb +11404 -0
  60. splinekit-0.2.2/dev/Wolfram/SplinePaddingChecks.nb +7539 -0
  61. splinekit-0.2.2/dev/Wolfram/Test BSplines.nb +3205 -0
  62. splinekit-0.2.2/dev/Wolfram/Test PeriodicNonuniformPiecewise.nb +453 -0
  63. splinekit-0.2.2/dev/Wolfram/Test PeriodicSpline1D.nb +14686 -0
  64. splinekit-0.2.2/dev/Wolfram/Test SplinePadding.nb +3861 -0
  65. splinekit-0.2.2/dev/Wolfram/Test SplineUtilities.nb +2571 -0
  66. splinekit-0.2.2/dev/Wolfram/Verify doc.nb +3658 -0
  67. splinekit-0.2.2/dev/Wolfram/rescued Test SplinePadding.nb +3935 -0
  68. splinekit-0.2.2/dev/cpJupyter.sh +6 -0
  69. splinekit-0.2.2/dev/gzJupyter.sh +10 -0
  70. splinekit-0.2.2/dev/sk.numbers +0 -0
  71. splinekit-0.2.2/dev/zipJupyter.sh +11 -0
  72. splinekit-0.2.2/docs/bases/01_bases.rst +12 -0
  73. splinekit-0.2.2/docs/bases/index.rst +14 -0
  74. splinekit-0.2.2/docs/bsplines/01_bsplines.rst +12 -0
  75. splinekit-0.2.2/docs/bsplines/index.rst +14 -0
  76. splinekit-0.2.2/docs/demos/bspline/bspline_bases.rst +219 -0
  77. splinekit-0.2.2/docs/demos/bspline/bspline_inverse.rst +59 -0
  78. splinekit-0.2.2/docs/demos/bspline/bspline_m_scale.rst +23 -0
  79. splinekit-0.2.2/docs/demos/bspline/bspline_members.rst +38 -0
  80. splinekit-0.2.2/docs/demos/bspline/bspline_numeric_stability.ipynb.gz +0 -0
  81. splinekit-0.2.2/docs/demos/bspline/bspline_poles.rst +115 -0
  82. splinekit-0.2.2/docs/demos/bspline/bspline_stability.rst +264 -0
  83. splinekit-0.2.2/docs/demos/bspline/bspline_vs_pi.rst +36 -0
  84. splinekit-0.2.2/docs/demos/bspline/hello_bspline.rst +38 -0
  85. splinekit-0.2.2/docs/demos/bspline/index.rst +31 -0
  86. splinekit-0.2.2/docs/demos/bspline/spline_engineer_func.rst +103 -0
  87. splinekit-0.2.2/docs/demos/bspline/spline_vs_poly.rst +108 -0
  88. splinekit-0.2.2/docs/demos/index.rst +24 -0
  89. splinekit-0.2.2/docs/demos/padding/index.rst +22 -0
  90. splinekit-0.2.2/docs/demos/padding/padding.rst +341 -0
  91. splinekit-0.2.2/docs/demos/padding/padding_speed.ipynb.gz +0 -0
  92. splinekit-0.2.2/docs/demos/spline1d/bounds.rst +112 -0
  93. splinekit-0.2.2/docs/demos/spline1d/constructors.rst +68 -0
  94. splinekit-0.2.2/docs/demos/spline1d/evaluation.rst +222 -0
  95. splinekit-0.2.2/docs/demos/spline1d/index.rst +27 -0
  96. splinekit-0.2.2/docs/demos/spline1d/polynomials.rst +138 -0
  97. splinekit-0.2.2/docs/demos/spline1d/random1d.rst +28 -0
  98. splinekit-0.2.2/docs/demos/spline1d/random2d.rst +43 -0
  99. splinekit-0.2.2/docs/demos/spline1d/spline_evaluation_speed.ipynb.gz +0 -0
  100. {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-numbers.rst +8 -8
  101. {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-polynomials.rst +9 -9
  102. {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-splines.rst +10 -10
  103. {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-terminology.rst +10 -10
  104. splinekit-0.2.2/docs/glossary/index.rst +13 -0
  105. splinekit-0.2.2/docs/index.rst +46 -0
  106. splinekit-0.2.2/docs/installation/index.rst +5 -0
  107. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/01_bounded.rst +7 -7
  108. splinekit-0.2.2/docs/interval/bounded/02_open.rst +12 -0
  109. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/03_open_closed.rst +7 -7
  110. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/04_closed.rst +7 -7
  111. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/05_closed_open.rst +7 -7
  112. splinekit-0.2.2/docs/interval/bounded/index.rst +18 -0
  113. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/degenerate/01_degenerate.rst +7 -7
  114. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/degenerate/02_singleton.rst +7 -7
  115. splinekit-0.2.2/docs/interval/degenerate/index.rst +15 -0
  116. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/01_half_bounded.rst +7 -7
  117. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/02_above.rst +7 -7
  118. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/03_not_below.rst +7 -7
  119. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/04_not_above.rst +7 -7
  120. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/05_below.rst +7 -7
  121. splinekit-0.2.2/docs/interval/half_bounded/index.rst +18 -0
  122. splinekit-0.2.2/docs/interval/index.rst +14 -0
  123. splinekit-0.2.2/docs/interval/interval/01_interval.rst +12 -0
  124. splinekit-0.2.2/docs/interval/interval/index.rst +15 -0
  125. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/universal/01_universal.rst +7 -7
  126. splinekit-0.2.2/docs/interval/universal/02_empty.rst +12 -0
  127. splinekit-0.2.2/docs/interval/universal/03_rr.rst +12 -0
  128. splinekit-0.2.2/docs/interval/universal/index.rst +16 -0
  129. splinekit-0.2.2/docs/periodic_nonuniform_piecewise/01_periodic_nonuniform_piecewise.rst +12 -0
  130. splinekit-0.2.2/docs/periodic_nonuniform_piecewise/index.rst +14 -0
  131. splinekit-0.2.2/docs/periodic_spline_1d/01_periodic_spline_1d.rst +12 -0
  132. splinekit-0.2.2/docs/periodic_spline_1d/index.rst +17 -0
  133. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/matplotlib-color.rst +3 -2
  134. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/matplotlib-linestyle.rst +3 -2
  135. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/matplotlib-marker.rst +28 -27
  136. splinekit-0.2.2/docs/spline_padding/01_spline_padding.rst +12 -0
  137. splinekit-0.2.2/docs/spline_padding/index.rst +16 -0
  138. splinekit-0.2.2/docs/spline_utilities/01_spline_utilities.rst +12 -0
  139. splinekit-0.2.2/docs/spline_utilities/index.rst +16 -0
  140. {splinekit-0.1.0 → splinekit-0.2.2}/pyproject.toml +11 -11
  141. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/spline_padding.py +75 -75
  142. splinekit-0.2.2/temp/bspline_stability.py +143 -0
  143. splinekit-0.1.0/.github/workflows/release.yml +0 -140
  144. splinekit-0.1.0/docs/bases/01_bases.rst +0 -12
  145. splinekit-0.1.0/docs/bases/index.rst +0 -14
  146. splinekit-0.1.0/docs/bsplines/01_bsplines.rst +0 -12
  147. splinekit-0.1.0/docs/bsplines/index.rst +0 -14
  148. splinekit-0.1.0/docs/glossary/index.rst +0 -13
  149. splinekit-0.1.0/docs/index.rst +0 -45
  150. splinekit-0.1.0/docs/installation/index.rst +0 -5
  151. splinekit-0.1.0/docs/interval/bounded/02_open.rst +0 -12
  152. splinekit-0.1.0/docs/interval/bounded/index.rst +0 -18
  153. splinekit-0.1.0/docs/interval/degenerate/index.rst +0 -15
  154. splinekit-0.1.0/docs/interval/half_bounded/index.rst +0 -18
  155. splinekit-0.1.0/docs/interval/index.rst +0 -14
  156. splinekit-0.1.0/docs/interval/interval/01_interval.rst +0 -12
  157. splinekit-0.1.0/docs/interval/interval/index.rst +0 -15
  158. splinekit-0.1.0/docs/interval/universal/02_empty.rst +0 -12
  159. splinekit-0.1.0/docs/interval/universal/03_rr.rst +0 -12
  160. splinekit-0.1.0/docs/interval/universal/index.rst +0 -16
  161. splinekit-0.1.0/docs/jupyter_labs/bspline_bases.ipynb.gz +0 -0
  162. splinekit-0.1.0/docs/jupyter_labs/bspline_interactive_shape.ipynb.gz +0 -0
  163. splinekit-0.1.0/docs/jupyter_labs/bspline_inverse_sequence.ipynb.gz +0 -0
  164. splinekit-0.1.0/docs/jupyter_labs/bspline_m_scale.ipynb.gz +0 -0
  165. splinekit-0.1.0/docs/jupyter_labs/bspline_numeric_stability.ipynb.gz +0 -0
  166. splinekit-0.1.0/docs/jupyter_labs/bspline_poles.ipynb.gz +0 -0
  167. splinekit-0.1.0/docs/jupyter_labs/bspline_random1d.ipynb.gz +0 -0
  168. splinekit-0.1.0/docs/jupyter_labs/bspline_random2d.ipynb.gz +0 -0
  169. splinekit-0.1.0/docs/jupyter_labs/bspline_static_shape.ipynb.gz +0 -0
  170. splinekit-0.1.0/docs/jupyter_labs/bspline_vs_exponentials.ipynb.gz +0 -0
  171. splinekit-0.1.0/docs/jupyter_labs/bspline_vs_pi.ipynb.gz +0 -0
  172. splinekit-0.1.0/docs/jupyter_labs/bspline_vs_polynomials.ipynb.gz +0 -0
  173. splinekit-0.1.0/docs/jupyter_labs/bspline_vs_trigonometry.ipynb.gz +0 -0
  174. splinekit-0.1.0/docs/jupyter_labs/index.rst +0 -84
  175. splinekit-0.1.0/docs/jupyter_labs/padding.ipynb.gz +0 -0
  176. splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_bounds.ipynb.gz +0 -0
  177. splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_creator.ipynb.gz +0 -0
  178. splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_evaluate.ipynb.gz +0 -0
  179. splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_polynomials.ipynb.gz +0 -0
  180. splinekit-0.1.0/docs/periodic_nonuniform_piecewise/01_periodic_nonuniform_piecewise.rst +0 -12
  181. splinekit-0.1.0/docs/periodic_nonuniform_piecewise/index.rst +0 -14
  182. splinekit-0.1.0/docs/periodic_spline_1d/01_periodic_spline_1d.rst +0 -12
  183. splinekit-0.1.0/docs/periodic_spline_1d/index.rst +0 -15
  184. splinekit-0.1.0/docs/spline_padding/01_spline_padding.rst +0 -12
  185. splinekit-0.1.0/docs/spline_padding/index.rst +0 -14
  186. splinekit-0.1.0/docs/spline_utilities/01_spline_utilities.rst +0 -12
  187. splinekit-0.1.0/docs/spline_utilities/index.rst +0 -14
  188. splinekit-0.1.0/docs/spline_utilities/noxfile.py +0 -18
  189. {splinekit-0.1.0 → splinekit-0.2.2}/.github/workflows/deploy-docs.yml +0 -0
  190. {splinekit-0.1.0 → splinekit-0.2.2}/.github/workflows/test.yml +0 -0
  191. {splinekit-0.1.0 → splinekit-0.2.2}/.gitignore +0 -0
  192. {splinekit-0.1.0 → splinekit-0.2.2}/.jupyterlite.doit.db +0 -0
  193. {splinekit-0.1.0 → splinekit-0.2.2}/.virtual_documents/docs/tutorial/dummy.ipynb +0 -0
  194. {splinekit-0.1.0 → splinekit-0.2.2}/LICENSE +0 -0
  195. {splinekit-0.1.0 → splinekit-0.2.2}/_output/api/translations/all.json +0 -0
  196. {splinekit-0.1.0 → splinekit-0.2.2}/_output/api/translations/en.json +0 -0
  197. {splinekit-0.1.0 → splinekit-0.2.2}/_output/api/workspaces/all.json +0 -0
  198. {splinekit-0.1.0 → splinekit-0.2.2}/_output/bootstrap.js +0 -0
  199. {splinekit-0.1.0 → splinekit-0.2.2}/_output/config-utils.js +0 -0
  200. {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/favicon.ico +0 -0
  201. {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/index.html +0 -0
  202. {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/jupyter-lite.ipynb +0 -0
  203. {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/jupyter-lite.json +0 -0
  204. {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/package.json +0 -0
  205. {splinekit-0.1.0 → splinekit-0.2.2}/_output/doc/tree/index.html +0 -0
  206. {splinekit-0.1.0 → splinekit-0.2.2}/_output/doc/workspaces/index.html +0 -0
  207. {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/favicon.ico +0 -0
  208. {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/index.html +0 -0
  209. {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/jupyter-lite.ipynb +0 -0
  210. {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/jupyter-lite.json +0 -0
  211. {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/package.json +0 -0
  212. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/install.json +0 -0
  213. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/package.json +0 -0
  214. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/package.json.orig +0 -0
  215. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/plugin.json +0 -0
  216. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js +0 -0
  217. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js.LICENSE.txt +0 -0
  218. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/509.d51a8122d1920ac82323.js +0 -0
  219. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/720.094c38d70b1dec0ceea7.js +0 -0
  220. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/remoteEntry.94495aac41d2fef6ad41.js +0 -0
  221. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/style.js +0 -0
  222. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/third-party-licenses.json +0 -0
  223. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/install.json +0 -0
  224. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/package.json +0 -0
  225. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/568.1e2faa2ba0bbe59c4780.js +0 -0
  226. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/747.67662283a5707eeb4d4c.js +0 -0
  227. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/remoteEntry.5cbb9d2323598fbda535.js +0 -0
  228. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/style.js +0 -0
  229. {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/third-party-licenses.json +0 -0
  230. {splinekit-0.1.0 → splinekit-0.2.2}/_output/icon-120x120.png +0 -0
  231. {splinekit-0.1.0 → splinekit-0.2.2}/_output/icon-512x512.png +0 -0
  232. {splinekit-0.1.0 → splinekit-0.2.2}/_output/index.html +0 -0
  233. {splinekit-0.1.0 → splinekit-0.2.2}/_output/jupyter-lite.ipynb +0 -0
  234. {splinekit-0.1.0 → splinekit-0.2.2}/_output/jupyter-lite.json +0 -0
  235. {splinekit-0.1.0 → splinekit-0.2.2}/_output/jupyterlite.schema.v0.json +0 -0
  236. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/favicon.ico +0 -0
  237. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/index.html +0 -0
  238. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/jupyter-lite.ipynb +0 -0
  239. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/jupyter-lite.json +0 -0
  240. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/package.json +0 -0
  241. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/tree/index.html +0 -0
  242. {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/workspaces/index.html +0 -0
  243. {splinekit-0.1.0 → splinekit-0.2.2}/_output/manifest.webmanifest +0 -0
  244. {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/favicon.ico +0 -0
  245. {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/index.html +0 -0
  246. {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/jupyter-lite.ipynb +0 -0
  247. {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/jupyter-lite.json +0 -0
  248. {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/package.json +0 -0
  249. {splinekit-0.1.0 → splinekit-0.2.2}/_output/package.json +0 -0
  250. {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/index.html +0 -0
  251. {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/jupyter-lite.ipynb +0 -0
  252. {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/jupyter-lite.json +0 -0
  253. {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/package.json +0 -0
  254. {splinekit-0.1.0 → splinekit-0.2.2}/_output/service-worker.js +0 -0
  255. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-busy-1.ico +0 -0
  256. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-busy-2.ico +0 -0
  257. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-busy-3.ico +0 -0
  258. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-file.ico +0 -0
  259. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-notebook.ico +0 -0
  260. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-terminal.ico +0 -0
  261. {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon.ico +0 -0
  262. {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/favicon.ico +0 -0
  263. {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/index.html +0 -0
  264. {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/jupyter-lite.ipynb +0 -0
  265. {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/jupyter-lite.json +0 -0
  266. {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/package.json +0 -0
  267. {splinekit-0.1.0 → splinekit-0.2.2}/docs/.jupyterlite.doit.db +0 -0
  268. {splinekit-0.1.0 → splinekit-0.2.2}/docs/_static/custom.css +0 -0
  269. {splinekit-0.1.0 → splinekit-0.2.2}/docs/bases/noxfile.py +0 -0
  270. {splinekit-0.1.0 → splinekit-0.2.2}/docs/bsplines/noxfile.py +0 -0
  271. {splinekit-0.1.0 → splinekit-0.2.2}/docs/conf.py +0 -0
  272. {splinekit-0.1.0 → splinekit-0.2.2}/docs/environment.yml +0 -0
  273. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/noxfile.py +0 -0
  274. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/degenerate/noxfile.py +0 -0
  275. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/noxfile.py +0 -0
  276. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/interval/noxfile.py +0 -0
  277. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/noxfile.py +0 -0
  278. {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/universal/noxfile.py +0 -0
  279. {splinekit-0.1.0/docs/jupyter_labs → splinekit-0.2.2/docs}/noxfile.py +0 -0
  280. {splinekit-0.1.0/docs → splinekit-0.2.2/docs/periodic_nonuniform_piecewise}/noxfile.py +0 -0
  281. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m00.png +0 -0
  282. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m01.png +0 -0
  283. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m02.png +0 -0
  284. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m03.png +0 -0
  285. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m04.png +0 -0
  286. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m05.png +0 -0
  287. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m06.png +0 -0
  288. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m07.png +0 -0
  289. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m08.png +0 -0
  290. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m09.png +0 -0
  291. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m10.png +0 -0
  292. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m11.png +0 -0
  293. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m12.png +0 -0
  294. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m13.png +0 -0
  295. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m14.png +0 -0
  296. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m15.png +0 -0
  297. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m16.png +0 -0
  298. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m17.png +0 -0
  299. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m18.png +0 -0
  300. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m19.png +0 -0
  301. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m20.png +0 -0
  302. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m21.png +0 -0
  303. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m22.png +0 -0
  304. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m23.png +0 -0
  305. {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m24.png +0 -0
  306. {splinekit-0.1.0/docs/periodic_nonuniform_piecewise → splinekit-0.2.2/docs/periodic_spline_1d}/noxfile.py +0 -0
  307. {splinekit-0.1.0/docs/periodic_spline_1d → splinekit-0.2.2/docs/spline_padding}/noxfile.py +0 -0
  308. {splinekit-0.1.0/docs/spline_padding → splinekit-0.2.2/docs/spline_utilities}/noxfile.py +0 -0
  309. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/__init__.py +0 -0
  310. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/bases.py +0 -0
  311. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/bsplines.py +0 -0
  312. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/__init__.py +0 -0
  313. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/_known_intervals.py +0 -0
  314. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/above.py +0 -0
  315. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/below.py +0 -0
  316. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/bounded.py +0 -0
  317. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/closed.py +0 -0
  318. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/closed_open.py +0 -0
  319. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/degenerate.py +0 -0
  320. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/empty.py +0 -0
  321. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/half_bounded.py +0 -0
  322. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/interval.py +0 -0
  323. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/mypy.ini +0 -0
  324. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/not_above.py +0 -0
  325. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/not_below.py +0 -0
  326. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/open.py +0 -0
  327. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/open_closed.py +0 -0
  328. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/rr.py +0 -0
  329. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/singleton.py +0 -0
  330. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/universal.py +0 -0
  331. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/mypy.ini +0 -0
  332. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/periodic_nonuniform_piecewise.py +0 -0
  333. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/periodic_spline_1d.py +0 -0
  334. {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/spline_utilities.py +0 -0
  335. {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_bsplines.py +0 -0
  336. {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_periodic_nonuniform_piecewise.py +0 -0
  337. {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_periodic_spline_1d.py +0 -0
  338. {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_spline_padding.py +0 -0
  339. {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_spline_utilities.py +0 -0
@@ -0,0 +1,140 @@
1
+ # splinekit/.github/workflows/release.yml
2
+
3
+ ### Pure Python
4
+ # name: Build & publish to PyPI
5
+ #
6
+ # on:
7
+ # push:
8
+ # tags:
9
+ # - "v*"
10
+ #
11
+ # permissions:
12
+ # contents: read
13
+ # id-token: write # OIDC for PyPI
14
+ #
15
+ # jobs:
16
+ # build-and-publish:
17
+ # runs-on: ubuntu-latest
18
+ #
19
+ # steps:
20
+ # - name: Checkout repository
21
+ # uses: actions/checkout@v4
22
+ #
23
+ # - name: Set up Python
24
+ # uses: actions/setup-python@v5
25
+ # with:
26
+ # python-version: "3.12"
27
+ #
28
+ # - name: Install build tooling
29
+ # run: |
30
+ # python -m pip install -U pip build
31
+ #
32
+ # - name: Build sdist and wheel (pure Python)
33
+ # run: python -m build # creates dist/*.tar.gz and dist/*.whl
34
+ #
35
+ # - name: Publish to PyPI
36
+ # uses: pypa/gh-action-pypi-publish@release/v1
37
+
38
+ ### Activate for C dynamic library
39
+ name: Build & publish to PyPI
40
+
41
+ on:
42
+ push:
43
+ tags:
44
+ - "v*"
45
+
46
+ permissions:
47
+ contents: read
48
+ id-token: write # OIDC for PyPI
49
+
50
+ jobs:
51
+ build_wheels:
52
+ name: Build wheels on ${{ matrix.os }}
53
+ runs-on: ${{ matrix.os }}
54
+
55
+ strategy:
56
+ fail-fast: false
57
+ matrix:
58
+ include:
59
+ # Linux + Windows
60
+ - os: ubuntu-latest
61
+ mac_arch: x86_64 # unused on Linux, but keeps env simple
62
+ - os: windows-latest
63
+ mac_arch: x86_64 # unused on Windows, but keeps env simple
64
+
65
+ # macOS Intel (x86_64) and Apple Silicon (arm64)
66
+ - os: macos-15-intel
67
+ mac_arch: x86_64
68
+ - os: macos-15 # or macos-latest
69
+ mac_arch: arm64
70
+
71
+ steps:
72
+ - uses: actions/checkout@v4
73
+
74
+ - uses: actions/setup-python@v5
75
+ with:
76
+ python-version: "3.12"
77
+
78
+ - name: Install build tools
79
+ run: python -m pip install -U pip cibuildwheel build
80
+
81
+ - name: Build wheels
82
+ run: python -m cibuildwheel --output-dir dist
83
+ env:
84
+ # CPython only, for versions we support
85
+ CIBW_BUILD: "cp311-* cp312-*"
86
+
87
+ # Avoid unsupported/undesired targets
88
+ CIBW_SKIP: "*musllinux*"
89
+
90
+ # Architectures
91
+ CIBW_ARCHS_LINUX: "x86_64"
92
+ CIBW_ARCHS_WINDOWS: "AMD64"
93
+ CIBW_ARCHS_MACOS: ${{ matrix.mac_arch }}
94
+
95
+ # macOS: ensure wheels target a realistic minimum for C++17
96
+ # (Intel: 10.13+ matches cp312 minimum; arm64 will still be 11.0+)
97
+ CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.13
98
+
99
+ # Simple smoke test: import and check native module presence
100
+ CIBW_TEST_COMMAND: >
101
+ python -c "import importlib.util, numpy as np, splinekit;
102
+ print('ok', importlib.util.find_spec('splinekit._padding') is not None)"
103
+
104
+ - name: Build sdist (once on Ubuntu)
105
+ if: matrix.os == 'ubuntu-latest'
106
+ run: python -m build -s -o dist
107
+
108
+ - name: Upload wheel artifacts
109
+ uses: actions/upload-artifact@v4
110
+ with:
111
+ name: wheels-${{ matrix.os }}-${{ matrix.mac_arch }}
112
+ path: dist/*.whl
113
+ if-no-files-found: error
114
+
115
+ - name: Upload sdist artifact
116
+ if: matrix.os == 'ubuntu-latest'
117
+ uses: actions/upload-artifact@v4
118
+ with:
119
+ name: sdist
120
+ path: dist/*.tar.gz
121
+ if-no-files-found: error
122
+
123
+ publish:
124
+ needs: [build_wheels]
125
+ runs-on: ubuntu-latest
126
+
127
+ steps:
128
+ - uses: actions/download-artifact@v4
129
+ with:
130
+ pattern: wheels-*
131
+ merge-multiple: true
132
+ path: dist
133
+
134
+ - uses: actions/download-artifact@v4
135
+ with:
136
+ name: sdist
137
+ path: dist
138
+
139
+ - name: Publish to PyPI
140
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,36 @@
1
+ cmake_minimum_required(VERSION 3.23)
2
+ project(padding LANGUAGES C)
3
+
4
+ set(CMAKE_C_STANDARD 99)
5
+ set(CMAKE_C_STANDARD_REQUIRED ON)
6
+ set(CMAKE_C_EXTENSIONS OFF)
7
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
8
+
9
+ if (MSVC)
10
+ add_compile_options(/W4 /permissive- /Zc:preprocessor /Zc:__cplusplus)
11
+ else()
12
+ add_compile_options(-Wall -Wextra -Wpedantic)
13
+ endif()
14
+
15
+ # ---- Absolute source paths (robust on Windows) ----
16
+ set(PADDING_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ansi_c/spline_padding/src")
17
+
18
+ add_library(padding SHARED)
19
+
20
+ target_sources(padding
21
+ PRIVATE
22
+ "${PADDING_SRC_DIR}/spline_padding.c"
23
+ PUBLIC
24
+ FILE_SET spline_padding
25
+ TYPE HEADERS
26
+ FILES
27
+ "${PADDING_SRC_DIR}/spline_padding.h"
28
+ )
29
+ target_compile_features(padding PUBLIC c_std_99)
30
+
31
+ install(
32
+ TARGETS padding
33
+ LIBRARY DESTINATION splinekit
34
+ RUNTIME DESTINATION splinekit
35
+ ARCHIVE DESTINATION splinekit
36
+ )
@@ -1,54 +1,52 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splinekit
3
- Version: 0.1.0
3
+ Version: 0.2.2
4
4
  Summary: A set of functions and classes to handle periodic 1D polynomial splines
5
- Project-URL: Homepage, https://github.com/splinekit/splinekit
6
- Project-URL: Documentation, https://splinekit.github.io/
7
- Project-URL: Repository, https://github.com/splinekit/splinekit.git
8
- Project-URL: Issues, https://github.com/splinekit/splinekit/issues
9
- Project-URL: Source, https://github.com/splinekit/splinekit
10
- Project-URL: PyPI, https://pypi.org/project/splinekit/
11
- Author-email: Philippe Thévenaz <philippe.thevenaz@icloud.com>
12
- Maintainer-email: Philippe Thévenaz <philippe.thevenaz@icloud.com>
5
+ Author-Email: =?utf-8?q?Philippe_Th=C3=A9venaz?= <philippe.thevenaz@icloud.com>
6
+ Maintainer-Email: =?utf-8?q?Philippe_Th=C3=A9venaz?= <philippe.thevenaz@icloud.com>
13
7
  License-Expression: MIT
14
8
  License-File: LICENSE
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Operating System :: OS Independent
15
11
  Classifier: Intended Audience :: Developers
16
12
  Classifier: Intended Audience :: Education
17
13
  Classifier: Intended Audience :: Science/Research
18
- Classifier: Operating System :: OS Independent
19
- Classifier: Programming Language :: Python :: 3
20
14
  Classifier: Topic :: Scientific/Engineering
21
15
  Classifier: Topic :: Scientific/Engineering :: Mathematics
22
16
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Project-URL: Homepage, https://github.com/splinekit/splinekit
18
+ Project-URL: Documentation, https://splinekit.github.io/
19
+ Project-URL: Repository, https://github.com/splinekit/splinekit.git
20
+ Project-URL: Issues, https://github.com/splinekit/splinekit/issues
21
+ Project-URL: Source, https://github.com/splinekit/splinekit
22
+ Project-URL: PyPI, https://pypi.org/project/splinekit/
23
23
  Requires-Python: >=3.11
24
- Requires-Dist: matplotlib>=3.8
25
24
  Requires-Dist: numpy>=1.26
26
25
  Requires-Dist: scipy>=1.15
27
26
  Requires-Dist: sympy>=1.12
28
- Provides-Extra: dev
29
- Requires-Dist: build; extra == 'dev'
30
- Requires-Dist: ipykernel>=7.1.0; extra == 'dev'
31
- Requires-Dist: ipython>=8.26; extra == 'dev'
32
- Requires-Dist: ipywidgets>=8; extra == 'dev'
33
- Requires-Dist: mypy>=1.8; extra == 'dev'
34
- Requires-Dist: pytest>=6.0; extra == 'dev'
35
- Requires-Dist: tox>=4.13; extra == 'dev'
27
+ Requires-Dist: matplotlib>=3.8
28
+ Provides-Extra: visualization
29
+ Requires-Dist: IPython>=8.26; extra == "visualization"
36
30
  Provides-Extra: docs
37
- Requires-Dist: ipython>=8.26; extra == 'docs'
38
- Requires-Dist: myst-parser>=3.0; extra == 'docs'
39
- Requires-Dist: nbsphinx>=0.9; extra == 'docs'
40
- Requires-Dist: sphinx-copybutton>=0.5; extra == 'docs'
41
- Requires-Dist: sphinx-design>=0.6; extra == 'docs'
42
- Requires-Dist: sphinx-gallery>=0.17; extra == 'docs'
43
- Requires-Dist: sphinx-prompt>=1.8; extra == 'docs'
44
- Requires-Dist: sphinx-remove-toctrees>=1.0; extra == 'docs'
45
- Requires-Dist: sphinx-rtd-theme>=3.0.2; extra == 'docs'
46
- Requires-Dist: sphinx>=7.3; extra == 'docs'
31
+ Requires-Dist: splinekit[visualization]; extra == "docs"
32
+ Requires-Dist: sphinx>=7.3; extra == "docs"
33
+ Requires-Dist: sphinx-gallery>=0.17; extra == "docs"
34
+ Requires-Dist: sphinx-prompt>=1.8; extra == "docs"
35
+ Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
36
+ Requires-Dist: sphinx-remove-toctrees>=1.0; extra == "docs"
37
+ Requires-Dist: sphinx-design>=0.6; extra == "docs"
38
+ Requires-Dist: sphinx-rtd-theme>=3.0.2; extra == "docs"
39
+ Requires-Dist: myst-parser>=3.0; extra == "docs"
40
+ Requires-Dist: nbsphinx>=0.9; extra == "docs"
47
41
  Provides-Extra: tests
48
- Requires-Dist: pytest>=6.0; extra == 'tests'
49
- Requires-Dist: tox>=4.13; extra == 'tests'
50
- Provides-Extra: visualization
51
- Requires-Dist: ipython>=8.26; extra == 'visualization'
42
+ Requires-Dist: tox>=4.13; extra == "tests"
43
+ Requires-Dist: pytest>=6.0; extra == "tests"
44
+ Provides-Extra: dev
45
+ Requires-Dist: splinekit[tests,visualization]; extra == "dev"
46
+ Requires-Dist: mypy>=1.8; extra == "dev"
47
+ Requires-Dist: ipykernel>=7.1.0; extra == "dev"
48
+ Requires-Dist: ipywidgets>=8; extra == "dev"
49
+ Requires-Dist: build; extra == "dev"
52
50
  Description-Content-Type: text/markdown
53
51
 
54
52
  <!-- splinekit/README.md -->
@@ -111,3 +109,14 @@ Install `splinekit` development environment in editable mode
111
109
  ```shell
112
110
  pip install -e .[dev]
113
111
  ```
112
+
113
+ ## Release Notes
114
+
115
+ ### 0.1.0
116
+ First stable version. Pure Python.
117
+
118
+ ### 0.2.1
119
+ Same API as 0.1.0. Ansi-C dynamic library.
120
+
121
+ ### 0.2.2
122
+ Some demos added
@@ -58,3 +58,14 @@ Install `splinekit` development environment in editable mode
58
58
  ```shell
59
59
  pip install -e .[dev]
60
60
  ```
61
+
62
+ ## Release Notes
63
+
64
+ ### 0.1.0
65
+ First stable version. Pure Python.
66
+
67
+ ### 0.2.1
68
+ Same API as 0.1.0. Ansi-C dynamic library.
69
+
70
+ ### 0.2.2
71
+ Some demos added
@@ -0,0 +1,275 @@
1
+ #include "spline_padding.h"
2
+
3
+ extern void get_samples_to_coeff_p (
4
+ double data[],
5
+ int32_t dataCount,
6
+ double pole[],
7
+ int32_t poleCount
8
+ ) {
9
+ if ((NULL == data) || (0 >= dataCount)) {
10
+ return;
11
+ }
12
+ if ((NULL == pole) || (0 >= poleCount)) {
13
+ return;
14
+ }
15
+ if ((0 != poleCount) && (1 != dataCount)) {
16
+ for (int q = 0; q < poleCount; q++) {
17
+ const double z = pole[q];
18
+ double sigma = data[0];
19
+ double zeta = z;
20
+ int k = 1;
21
+ while ((k < dataCount) && (0.0 != zeta)) {
22
+ sigma += zeta * data[dataCount - k];
23
+ zeta *= z;
24
+ k++;
25
+ }
26
+ data[0] = sigma / (1.0 - zeta);
27
+ for (int k = 1; k < dataCount; k++) {
28
+ data[k] += z * data[k - 1];
29
+ }
30
+ sigma = data[dataCount - 1];
31
+ zeta = z;
32
+ k = 0;
33
+ while ((k < (dataCount - 1)) && (0.0 != zeta)) {
34
+ sigma += zeta * data[k];
35
+ zeta *= z;
36
+ k++;
37
+ }
38
+ const double z12 = (1.0 - z) * (1.0 - z);
39
+ data[dataCount - 1] = z12 * sigma / (1.0 - zeta);
40
+ for (int k = 1; k < dataCount; k++) {
41
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
42
+ }
43
+ }
44
+ }
45
+ } /* end get_samples_to_coeff_p */
46
+
47
+ extern void get_samples_to_coeff_n (
48
+ double data[],
49
+ int32_t dataCount,
50
+ double pole[],
51
+ int32_t poleCount
52
+ ) {
53
+ if ((NULL == data) || (0 >= dataCount)) {
54
+ return;
55
+ }
56
+ if ((NULL == pole) || (0 >= poleCount)) {
57
+ return;
58
+ }
59
+ if ((0 != poleCount) && (1 != dataCount)) {
60
+ for (int q = 0; q < poleCount; q++) {
61
+ const double z = pole[q];
62
+ double sigma1 = data[0];
63
+ double sigma2 = data[dataCount - 1];
64
+ double zeta = z;
65
+ int k = 1;
66
+ while ((k < (dataCount - 1)) && (0.0 != zeta)) {
67
+ sigma1 += zeta * data[k];
68
+ sigma2 += zeta * data[dataCount - 1 - k];
69
+ zeta *= z;
70
+ k++;
71
+ }
72
+ data[0] = (sigma1 + zeta * sigma2) / (1.0 - zeta * zeta);
73
+ for (int k = 1; k < dataCount; k++) {
74
+ data[k] += z * data[k - 1];
75
+ }
76
+ const double z12 = (1.0 - z) * (1.0 - z);
77
+ data[dataCount - 1] = z12 * (z * data[dataCount - 2] + data[dataCount - 1]) / (1.0 - z * z);
78
+ for (int k = 1; k < dataCount; k++) {
79
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
80
+ }
81
+ }
82
+ }
83
+ } /* end get_samples_to_coeff_n */
84
+
85
+ extern void get_samples_to_coeff_w (
86
+ double data[],
87
+ int32_t dataCount,
88
+ double pole[],
89
+ int32_t poleCount
90
+ ) {
91
+ if ((NULL == data) || (0 >= dataCount)) {
92
+ return;
93
+ }
94
+ if ((NULL == pole) || (0 >= poleCount)) {
95
+ return;
96
+ }
97
+ if ((0 != poleCount) && (1 != dataCount)) {
98
+ for (int q = 0; q < poleCount; q++) {
99
+ const double z = pole[q];
100
+ double sigma1 = 0.0;
101
+ double sigma2 = 0.0;
102
+ double zeta = 1.0;
103
+ int k = 0;
104
+ while ((k < dataCount) && (0.0 != zeta)) {
105
+ sigma1 += zeta * data[k];
106
+ sigma2 += zeta * data[dataCount - 1 - k];
107
+ zeta *= z;
108
+ k++;
109
+ }
110
+ data[0] += z * (sigma1 + zeta * sigma2) / (1.0 - zeta * zeta);
111
+ for (int k = 1; k < dataCount; k++) {
112
+ data[k] += z * data[k - 1];
113
+ }
114
+ const double z12 = (1.0 - z) * (1.0 - z);
115
+ data[dataCount - 1] *= 1.0 - z;
116
+ for (int k = 1; k < dataCount; k++) {
117
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
118
+ }
119
+ }
120
+ }
121
+ } /* end get_samples_to_coeff_w */
122
+
123
+ extern void get_samples_to_coeff_a (
124
+ double data[],
125
+ int32_t dataCount,
126
+ double pole[],
127
+ int32_t poleCount
128
+ ) {
129
+ if ((NULL == data) || (0 >= dataCount)) {
130
+ return;
131
+ }
132
+ if ((NULL == pole) || (0 >= poleCount)) {
133
+ return;
134
+ }
135
+ if ((0 != poleCount) && (1 != dataCount)) {
136
+ for (int q = 0; q < poleCount; q++) {
137
+ const double z = pole[q];
138
+ double sigma1 = 0.0;
139
+ double sigma2 = 0.0;
140
+ double zeta = z;
141
+ int k = 1;
142
+ while ((k < (dataCount - 1)) && (0.0 != zeta)) {
143
+ sigma1 += zeta * data[k];
144
+ sigma2 += zeta * data[dataCount - 1 - k];
145
+ zeta *= z;
146
+ k++;
147
+ }
148
+ data[0] = ((data[0] - zeta * data[dataCount - 1]) * (1.0 + z) / (1.0 - z) - sigma1 + zeta * sigma2) / (1.0 - zeta * zeta);
149
+ for (int k = 1; k < dataCount; k++) {
150
+ data[k] += z * data[k - 1];
151
+ }
152
+ const double z12 = (1.0 - z) * (1.0 - z);
153
+ data[dataCount - 1] -= z * data[dataCount - 2];
154
+ for (int k = 1; k < dataCount; k++) {
155
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
156
+ }
157
+ }
158
+ }
159
+ } /* end get_samples_to_coeff_a */
160
+
161
+ extern void get_samples_to_coeff_np (
162
+ double data[],
163
+ int32_t dataCount,
164
+ double pole[],
165
+ int32_t poleCount
166
+ ) {
167
+ if ((NULL == data) || (0 >= dataCount)) {
168
+ return;
169
+ }
170
+ if ((NULL == pole) || (0 >= poleCount)) {
171
+ return;
172
+ }
173
+ for (int q = 0; q < poleCount; q++) {
174
+ const double z = pole[q];
175
+ double sigma1 = data[0];
176
+ double sigma2 = data[dataCount - 1];
177
+ double zeta = z;
178
+ int k = 1;
179
+ while ((k < dataCount) && (0.0 != zeta)) {
180
+ sigma1 += zeta * data[k];
181
+ sigma2 += zeta * data[dataCount - 1 - k];
182
+ zeta *= z;
183
+ k++;
184
+ }
185
+ const double Z0 = z / (1.0 + zeta);
186
+ sigma1 *= Z0;
187
+ sigma2 *= Z0;
188
+ data[0] -= sigma2;
189
+ for (int k = 1; k < dataCount; k++) {
190
+ data[k] += z * data[k - 1];
191
+ }
192
+ zeta *= zeta;
193
+ const double z12 = (1.0 - z) * (1.0 - z);
194
+ const double Z1 = (1.0 - z) / (1.0 + z);
195
+ data[dataCount - 1] *= (1.0 + zeta) * Z1;
196
+ data[dataCount - 1] -= (sigma2 * zeta / z + sigma1) * Z1;
197
+ for (int k = 1; k < dataCount; k++) {
198
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
199
+ }
200
+ }
201
+ } /* end get_samples_to_coeff_np */
202
+
203
+ extern void get_samples_to_coeff_nn (
204
+ double data[],
205
+ int32_t dataCount,
206
+ double pole[],
207
+ int32_t poleCount
208
+ ) {
209
+ if ((NULL == data) || (0 >= dataCount)) {
210
+ return;
211
+ }
212
+ if ((NULL == pole) || (0 >= poleCount)) {
213
+ return;
214
+ }
215
+ for (int q = 0; q < poleCount; q++) {
216
+ const double z = pole[q];
217
+ double sigma1 = 0.0;
218
+ double sigma2 = 0.0;
219
+ double zeta = 1.0;
220
+ int k = 0;
221
+ while ((k < dataCount) && (0.0 != zeta)) {
222
+ sigma1 += zeta * data[k];
223
+ sigma2 += zeta * data[dataCount - 1 - k];
224
+ zeta *= z;
225
+ k++;
226
+ }
227
+ zeta *= z;
228
+ data[0] -= (sigma1 - zeta * sigma2) * z * z / (1.0 - zeta * zeta);
229
+ for (int k = 1; k < dataCount; k++) {
230
+ data[k] += z * data[k - 1];
231
+ }
232
+ const double z12 = (1.0 - z) * (1.0 - z);
233
+ data[dataCount - 1] *= z12;
234
+ for (int k = 1; k < dataCount; k++) {
235
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
236
+ }
237
+ }
238
+ } /* end get_samples_to_coeff_nn */
239
+
240
+ extern void get_samples_to_coeff_nw (
241
+ double data[],
242
+ int32_t dataCount,
243
+ double pole[],
244
+ int32_t poleCount
245
+ ) {
246
+ if ((NULL == data) || (0 >= dataCount)) {
247
+ return;
248
+ }
249
+ if ((NULL == pole) || (0 >= poleCount)) {
250
+ return;
251
+ }
252
+ for (int q = 0; q < poleCount; q++) {
253
+ const double z = pole[q];
254
+ double sigma1 = 0.0;
255
+ double sigma2 = 0.0;
256
+ double zeta = 1.0;
257
+ int k = 0;
258
+ while ((k < dataCount) && (0.0 != zeta)) {
259
+ sigma1 += zeta * data[k];
260
+ sigma2 += zeta * data[dataCount - 1 - k];
261
+ zeta *= z;
262
+ k++;
263
+ }
264
+ data[0] -= (sigma1 - zeta * sigma2) * z / (1.0 - zeta * zeta);
265
+ for (int k = 1; k < dataCount; k++) {
266
+ data[k] += z * data[k - 1];
267
+ }
268
+ const double z12 = (1.0 - z) * (1.0 - z);
269
+ data[dataCount - 1] *= z12 / (1.0 + z);
270
+ for (int k = 1; k < dataCount; k++) {
271
+ data[dataCount - 1 - k] = z * data[dataCount - k] + z12 * data[dataCount - 1 - k];
272
+ }
273
+ }
274
+ } /* end get_samples_to_coeff_nw */
275
+
@@ -0,0 +1,57 @@
1
+ #ifndef spline_padding_h
2
+ #define spline_padding_h
3
+
4
+ #include <stdint.h>
5
+ #include <stdio.h>
6
+ #include <stdlib.h>
7
+
8
+ extern void get_samples_to_coeff_p (
9
+ double *data,
10
+ int32_t dataCount,
11
+ double *pole,
12
+ int32_t poleCount
13
+ );
14
+
15
+ extern void get_samples_to_coeff_n (
16
+ double *data,
17
+ int32_t dataCount,
18
+ double *pole,
19
+ int32_t poleCount
20
+ );
21
+
22
+ extern void get_samples_to_coeff_w (
23
+ double *data,
24
+ int32_t dataCount,
25
+ double *pole,
26
+ int32_t poleCount
27
+ );
28
+
29
+ extern void get_samples_to_coeff_a (
30
+ double *data,
31
+ int32_t dataCount,
32
+ double *pole,
33
+ int32_t poleCount
34
+ );
35
+
36
+ extern void get_samples_to_coeff_np (
37
+ double *data,
38
+ int32_t dataCount,
39
+ double *pole,
40
+ int32_t poleCount
41
+ );
42
+
43
+ extern void get_samples_to_coeff_nn (
44
+ double *data,
45
+ int32_t dataCount,
46
+ double *pole,
47
+ int32_t poleCount
48
+ );
49
+
50
+ extern void get_samples_to_coeff_nw (
51
+ double *data,
52
+ int32_t dataCount,
53
+ double *pole,
54
+ int32_t poleCount
55
+ );
56
+
57
+ #endif /* spline_padding_h */
@@ -0,0 +1,15 @@
1
+ cmake_minimum_required(VERSION 3.23)
2
+
3
+ project(Padding)
4
+
5
+ add_library(Padding SHARED)
6
+
7
+ target_sources(Padding
8
+ PRIVATE
9
+ spline_padding.c
10
+ PUBLIC
11
+ FILE_SET spline_padding
12
+ TYPE HEADERS
13
+ FILES
14
+ spline_padding.h
15
+ )