splinekit 0.2.4__tar.gz → 0.2.5__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 (296) hide show
  1. {splinekit-0.2.4 → splinekit-0.2.5}/PKG-INFO +6 -3
  2. {splinekit-0.2.4 → splinekit-0.2.5}/README.md +5 -2
  3. splinekit-0.2.5/dev/Jupyter/padding_bases.ipynb +335 -0
  4. splinekit-0.2.5/dev/PythonSrc/PurePython/spline_padding.py +1903 -0
  5. {splinekit-0.2.4 → splinekit-0.2.5}/pyproject.toml +1 -1
  6. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/periodic_nonuniform_piecewise.py +28 -0
  7. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/periodic_spline_1d.py +28 -0
  8. splinekit-0.2.5/src/splinekit/spline_padding.py +2001 -0
  9. splinekit-0.2.4/.virtual_documents/docs/tutorial/dummy.ipynb +0 -4
  10. {splinekit-0.2.4 → splinekit-0.2.5}/.github/workflows/deploy-docs.yml +0 -0
  11. {splinekit-0.2.4 → splinekit-0.2.5}/.github/workflows/release.yml +0 -0
  12. {splinekit-0.2.4 → splinekit-0.2.5}/.github/workflows/test.yml +0 -0
  13. {splinekit-0.2.4 → splinekit-0.2.5}/.gitignore +0 -0
  14. {splinekit-0.2.4 → splinekit-0.2.5}/.jupyterlite.doit.db +0 -0
  15. {splinekit-0.2.4 → splinekit-0.2.5}/CMakeLists.txt +0 -0
  16. {splinekit-0.2.4 → splinekit-0.2.5}/LICENSE +0 -0
  17. {splinekit-0.2.4 → splinekit-0.2.5}/_output/api/translations/all.json +0 -0
  18. {splinekit-0.2.4 → splinekit-0.2.5}/_output/api/translations/en.json +0 -0
  19. {splinekit-0.2.4 → splinekit-0.2.5}/_output/api/workspaces/all.json +0 -0
  20. {splinekit-0.2.4 → splinekit-0.2.5}/_output/bootstrap.js +0 -0
  21. {splinekit-0.2.4 → splinekit-0.2.5}/_output/config-utils.js +0 -0
  22. {splinekit-0.2.4 → splinekit-0.2.5}/_output/consoles/favicon.ico +0 -0
  23. {splinekit-0.2.4 → splinekit-0.2.5}/_output/consoles/index.html +0 -0
  24. {splinekit-0.2.4 → splinekit-0.2.5}/_output/consoles/jupyter-lite.ipynb +0 -0
  25. {splinekit-0.2.4 → splinekit-0.2.5}/_output/consoles/jupyter-lite.json +0 -0
  26. {splinekit-0.2.4 → splinekit-0.2.5}/_output/consoles/package.json +0 -0
  27. {splinekit-0.2.4 → splinekit-0.2.5}/_output/doc/tree/index.html +0 -0
  28. {splinekit-0.2.4 → splinekit-0.2.5}/_output/doc/workspaces/index.html +0 -0
  29. {splinekit-0.2.4 → splinekit-0.2.5}/_output/edit/favicon.ico +0 -0
  30. {splinekit-0.2.4 → splinekit-0.2.5}/_output/edit/index.html +0 -0
  31. {splinekit-0.2.4 → splinekit-0.2.5}/_output/edit/jupyter-lite.ipynb +0 -0
  32. {splinekit-0.2.4 → splinekit-0.2.5}/_output/edit/jupyter-lite.json +0 -0
  33. {splinekit-0.2.4 → splinekit-0.2.5}/_output/edit/package.json +0 -0
  34. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/install.json +0 -0
  35. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/package.json +0 -0
  36. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/package.json.orig +0 -0
  37. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/plugin.json +0 -0
  38. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js +0 -0
  39. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js.LICENSE.txt +0 -0
  40. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/509.d51a8122d1920ac82323.js +0 -0
  41. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/720.094c38d70b1dec0ceea7.js +0 -0
  42. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/remoteEntry.94495aac41d2fef6ad41.js +0 -0
  43. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/style.js +0 -0
  44. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab-jupytext/static/third-party-licenses.json +0 -0
  45. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/install.json +0 -0
  46. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/package.json +0 -0
  47. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/static/568.1e2faa2ba0bbe59c4780.js +0 -0
  48. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/static/747.67662283a5707eeb4d4c.js +0 -0
  49. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/static/remoteEntry.5cbb9d2323598fbda535.js +0 -0
  50. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/static/style.js +0 -0
  51. {splinekit-0.2.4 → splinekit-0.2.5}/_output/extensions/jupyterlab_pygments/static/third-party-licenses.json +0 -0
  52. {splinekit-0.2.4 → splinekit-0.2.5}/_output/icon-120x120.png +0 -0
  53. {splinekit-0.2.4 → splinekit-0.2.5}/_output/icon-512x512.png +0 -0
  54. {splinekit-0.2.4 → splinekit-0.2.5}/_output/index.html +0 -0
  55. {splinekit-0.2.4 → splinekit-0.2.5}/_output/jupyter-lite.ipynb +0 -0
  56. {splinekit-0.2.4 → splinekit-0.2.5}/_output/jupyter-lite.json +0 -0
  57. {splinekit-0.2.4 → splinekit-0.2.5}/_output/jupyterlite.schema.v0.json +0 -0
  58. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/favicon.ico +0 -0
  59. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/index.html +0 -0
  60. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/jupyter-lite.ipynb +0 -0
  61. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/jupyter-lite.json +0 -0
  62. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/package.json +0 -0
  63. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/tree/index.html +0 -0
  64. {splinekit-0.2.4 → splinekit-0.2.5}/_output/lab/workspaces/index.html +0 -0
  65. {splinekit-0.2.4 → splinekit-0.2.5}/_output/manifest.webmanifest +0 -0
  66. {splinekit-0.2.4 → splinekit-0.2.5}/_output/notebooks/favicon.ico +0 -0
  67. {splinekit-0.2.4 → splinekit-0.2.5}/_output/notebooks/index.html +0 -0
  68. {splinekit-0.2.4 → splinekit-0.2.5}/_output/notebooks/jupyter-lite.ipynb +0 -0
  69. {splinekit-0.2.4 → splinekit-0.2.5}/_output/notebooks/jupyter-lite.json +0 -0
  70. {splinekit-0.2.4 → splinekit-0.2.5}/_output/notebooks/package.json +0 -0
  71. {splinekit-0.2.4 → splinekit-0.2.5}/_output/package.json +0 -0
  72. {splinekit-0.2.4 → splinekit-0.2.5}/_output/repl/index.html +0 -0
  73. {splinekit-0.2.4 → splinekit-0.2.5}/_output/repl/jupyter-lite.ipynb +0 -0
  74. {splinekit-0.2.4 → splinekit-0.2.5}/_output/repl/jupyter-lite.json +0 -0
  75. {splinekit-0.2.4 → splinekit-0.2.5}/_output/repl/package.json +0 -0
  76. {splinekit-0.2.4 → splinekit-0.2.5}/_output/service-worker.js +0 -0
  77. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon-busy-1.ico +0 -0
  78. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon-busy-2.ico +0 -0
  79. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon-busy-3.ico +0 -0
  80. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon-file.ico +0 -0
  81. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon-notebook.ico +0 -0
  82. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon-terminal.ico +0 -0
  83. {splinekit-0.2.4 → splinekit-0.2.5}/_output/static/favicons/favicon.ico +0 -0
  84. {splinekit-0.2.4 → splinekit-0.2.5}/_output/tree/favicon.ico +0 -0
  85. {splinekit-0.2.4 → splinekit-0.2.5}/_output/tree/index.html +0 -0
  86. {splinekit-0.2.4 → splinekit-0.2.5}/_output/tree/jupyter-lite.ipynb +0 -0
  87. {splinekit-0.2.4 → splinekit-0.2.5}/_output/tree/jupyter-lite.json +0 -0
  88. {splinekit-0.2.4 → splinekit-0.2.5}/_output/tree/package.json +0 -0
  89. {splinekit-0.2.4 → splinekit-0.2.5}/ansi_c/spline_padding/src/spline_padding.c +0 -0
  90. {splinekit-0.2.4 → splinekit-0.2.5}/ansi_c/spline_padding/src/spline_padding.h +0 -0
  91. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_cmake/CMakeLists.txt +0 -0
  92. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_cmake/spline_padding.c +0 -0
  93. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_cmake/spline_padding.h +0 -0
  94. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/libspline_padding.dylib +0 -0
  95. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/spline_padding.c +0 -0
  96. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/spline_padding.h +0 -0
  97. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.pbxproj +0 -0
  98. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  99. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/xcuserdata/pthevena.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  100. {splinekit-0.2.4 → splinekit-0.2.5}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/xcuserdata/pthevena.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
  101. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_annihilate.ipynb +0 -0
  102. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_cardinal.ipynb +0 -0
  103. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_convolve_mono.ipynb +0 -0
  104. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_dual.ipynb +0 -0
  105. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_dual_property.ipynb +0 -0
  106. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_gauss_exo.ipynb +0 -0
  107. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_hello.ipynb +0 -0
  108. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_hello_grad.ipynb +0 -0
  109. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_hello_integral.ipynb +0 -0
  110. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_inv.ipynb +0 -0
  111. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_m_scale.ipynb +0 -0
  112. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_member.ipynb +0 -0
  113. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_member_diff.ipynb +0 -0
  114. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_member_integral.ipynb +0 -0
  115. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_numeric_stability.ipynb +0 -0
  116. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_ortho.ipynb +0 -0
  117. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_ortho_property.ipynb +0 -0
  118. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_partition_mono.ipynb +0 -0
  119. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_periodic_inv.ipynb +0 -0
  120. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_poles.ipynb +0 -0
  121. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_sinc.ipynb +0 -0
  122. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_spline_poly.ipynb +0 -0
  123. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_trigo_exo.ipynb +0 -0
  124. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_vs_cos.ipynb +0 -0
  125. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_vs_erf.ipynb +0 -0
  126. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_vs_exp.ipynb +0 -0
  127. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_vs_pi_as_sum.ipynb +0 -0
  128. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_vs_pi_at0.ipynb +0 -0
  129. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/bspline_vs_sin.ipynb +0 -0
  130. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/padding_data.ipynb +0 -0
  131. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/padding_speed.ipynb +0 -0
  132. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_approximation.ipynb +0 -0
  133. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_at_array.ipynb +0 -0
  134. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_at_scalar.ipynb +0 -0
  135. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_bounds.ipynb +0 -0
  136. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_evaluation_speed.ipynb +0 -0
  137. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_interpolation.ipynb +0 -0
  138. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_polynomials.ipynb +0 -0
  139. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_random_1d.ipynb +0 -0
  140. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Jupyter/spline_random_2d.ipynb +0 -0
  141. {splinekit-0.2.4/src/splinekit → splinekit-0.2.5/dev/PythonSrc/Accelerated}/spline_padding.py +0 -0
  142. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Bspline Poles.nb +0 -0
  143. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/IntervalChecks.nb +0 -0
  144. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/PeriodicSplinesChecks.nb +0 -0
  145. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/SplinePaddingChecks.nb +0 -0
  146. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Test BSplines.nb +0 -0
  147. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Test PeriodicNonuniformPiecewise.nb +0 -0
  148. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Test PeriodicSpline1D.nb +0 -0
  149. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Test SplinePadding.nb +0 -0
  150. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Test SplineUtilities.nb +0 -0
  151. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/Verify doc.nb +0 -0
  152. {splinekit-0.2.4 → splinekit-0.2.5}/dev/Wolfram/rescued Test SplinePadding.nb +0 -0
  153. {splinekit-0.2.4 → splinekit-0.2.5}/dev/cpJupyter.sh +0 -0
  154. {splinekit-0.2.4 → splinekit-0.2.5}/dev/gzJupyter.sh +0 -0
  155. {splinekit-0.2.4 → splinekit-0.2.5}/dev/sk.numbers +0 -0
  156. {splinekit-0.2.4 → splinekit-0.2.5}/dev/zipJupyter.sh +0 -0
  157. {splinekit-0.2.4 → splinekit-0.2.5}/docs/.jupyterlite.doit.db +0 -0
  158. {splinekit-0.2.4 → splinekit-0.2.5}/docs/_static/custom.css +0 -0
  159. {splinekit-0.2.4 → splinekit-0.2.5}/docs/bases/01_bases.rst +0 -0
  160. {splinekit-0.2.4 → splinekit-0.2.5}/docs/bases/index.rst +0 -0
  161. {splinekit-0.2.4 → splinekit-0.2.5}/docs/bases/noxfile.py +0 -0
  162. {splinekit-0.2.4 → splinekit-0.2.5}/docs/bsplines/01_bsplines.rst +0 -0
  163. {splinekit-0.2.4 → splinekit-0.2.5}/docs/bsplines/index.rst +0 -0
  164. {splinekit-0.2.4 → splinekit-0.2.5}/docs/bsplines/noxfile.py +0 -0
  165. {splinekit-0.2.4 → splinekit-0.2.5}/docs/conf.py +0 -0
  166. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_bases.rst +0 -0
  167. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_inverse.rst +0 -0
  168. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_m_scale.rst +0 -0
  169. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_members.rst +0 -0
  170. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_numeric_stability.ipynb.gz +0 -0
  171. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_poles.rst +0 -0
  172. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_stability.rst +0 -0
  173. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/bspline_vs_pi.rst +0 -0
  174. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/hello_bspline.rst +0 -0
  175. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/index.rst +0 -0
  176. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/spline_engineer_func.rst +0 -0
  177. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/bspline/spline_vs_poly.rst +0 -0
  178. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/index.rst +0 -0
  179. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/padding/index.rst +0 -0
  180. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/padding/padding.rst +0 -0
  181. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/padding/padding_speed.ipynb.gz +0 -0
  182. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/bounds.rst +0 -0
  183. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/constructors.rst +0 -0
  184. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/evaluation.rst +0 -0
  185. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/index.rst +0 -0
  186. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/polynomials.rst +0 -0
  187. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/random1d.rst +0 -0
  188. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/random2d.rst +0 -0
  189. {splinekit-0.2.4 → splinekit-0.2.5}/docs/demos/spline1d/spline_evaluation_speed.ipynb.gz +0 -0
  190. {splinekit-0.2.4 → splinekit-0.2.5}/docs/environment.yml +0 -0
  191. {splinekit-0.2.4 → splinekit-0.2.5}/docs/glossary/glossary-numbers.rst +0 -0
  192. {splinekit-0.2.4 → splinekit-0.2.5}/docs/glossary/glossary-polynomials.rst +0 -0
  193. {splinekit-0.2.4 → splinekit-0.2.5}/docs/glossary/glossary-splines.rst +0 -0
  194. {splinekit-0.2.4 → splinekit-0.2.5}/docs/glossary/glossary-terminology.rst +0 -0
  195. {splinekit-0.2.4 → splinekit-0.2.5}/docs/glossary/index.rst +0 -0
  196. {splinekit-0.2.4 → splinekit-0.2.5}/docs/index.rst +0 -0
  197. {splinekit-0.2.4 → splinekit-0.2.5}/docs/installation/index.rst +0 -0
  198. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/01_bounded.rst +0 -0
  199. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/02_open.rst +0 -0
  200. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/03_open_closed.rst +0 -0
  201. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/04_closed.rst +0 -0
  202. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/05_closed_open.rst +0 -0
  203. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/index.rst +0 -0
  204. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/bounded/noxfile.py +0 -0
  205. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/degenerate/01_degenerate.rst +0 -0
  206. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/degenerate/02_singleton.rst +0 -0
  207. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/degenerate/index.rst +0 -0
  208. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/degenerate/noxfile.py +0 -0
  209. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/01_half_bounded.rst +0 -0
  210. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/02_above.rst +0 -0
  211. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/03_not_below.rst +0 -0
  212. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/04_not_above.rst +0 -0
  213. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/05_below.rst +0 -0
  214. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/index.rst +0 -0
  215. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/half_bounded/noxfile.py +0 -0
  216. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/index.rst +0 -0
  217. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/interval/01_interval.rst +0 -0
  218. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/interval/index.rst +0 -0
  219. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/interval/noxfile.py +0 -0
  220. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/noxfile.py +0 -0
  221. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/universal/01_universal.rst +0 -0
  222. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/universal/02_empty.rst +0 -0
  223. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/universal/03_rr.rst +0 -0
  224. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/universal/index.rst +0 -0
  225. {splinekit-0.2.4 → splinekit-0.2.5}/docs/interval/universal/noxfile.py +0 -0
  226. {splinekit-0.2.4 → splinekit-0.2.5}/docs/noxfile.py +0 -0
  227. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_nonuniform_piecewise/01_periodic_nonuniform_piecewise.rst +0 -0
  228. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_nonuniform_piecewise/index.rst +0 -0
  229. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_nonuniform_piecewise/noxfile.py +0 -0
  230. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/01_periodic_spline_1d.rst +0 -0
  231. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/index.rst +0 -0
  232. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m00.png +0 -0
  233. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m01.png +0 -0
  234. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m02.png +0 -0
  235. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m03.png +0 -0
  236. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m04.png +0 -0
  237. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m05.png +0 -0
  238. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m06.png +0 -0
  239. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m07.png +0 -0
  240. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m08.png +0 -0
  241. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m09.png +0 -0
  242. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m10.png +0 -0
  243. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m11.png +0 -0
  244. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m12.png +0 -0
  245. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m13.png +0 -0
  246. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m14.png +0 -0
  247. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m15.png +0 -0
  248. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m16.png +0 -0
  249. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m17.png +0 -0
  250. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m18.png +0 -0
  251. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m19.png +0 -0
  252. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m20.png +0 -0
  253. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m21.png +0 -0
  254. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m22.png +0 -0
  255. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m23.png +0 -0
  256. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/m24.png +0 -0
  257. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/matplotlib-color.rst +0 -0
  258. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/matplotlib-linestyle.rst +0 -0
  259. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/matplotlib-marker.rst +0 -0
  260. {splinekit-0.2.4 → splinekit-0.2.5}/docs/periodic_spline_1d/noxfile.py +0 -0
  261. {splinekit-0.2.4 → splinekit-0.2.5}/docs/spline_padding/01_spline_padding.rst +0 -0
  262. {splinekit-0.2.4 → splinekit-0.2.5}/docs/spline_padding/index.rst +0 -0
  263. {splinekit-0.2.4 → splinekit-0.2.5}/docs/spline_padding/noxfile.py +0 -0
  264. {splinekit-0.2.4 → splinekit-0.2.5}/docs/spline_utilities/01_spline_utilities.rst +0 -0
  265. {splinekit-0.2.4 → splinekit-0.2.5}/docs/spline_utilities/index.rst +0 -0
  266. {splinekit-0.2.4 → splinekit-0.2.5}/docs/spline_utilities/noxfile.py +0 -0
  267. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/__init__.py +0 -0
  268. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/bases.py +0 -0
  269. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/bsplines.py +0 -0
  270. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/__init__.py +0 -0
  271. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/_known_intervals.py +0 -0
  272. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/above.py +0 -0
  273. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/below.py +0 -0
  274. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/bounded.py +0 -0
  275. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/closed.py +0 -0
  276. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/closed_open.py +0 -0
  277. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/degenerate.py +0 -0
  278. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/empty.py +0 -0
  279. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/half_bounded.py +0 -0
  280. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/interval.py +0 -0
  281. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/mypy.ini +0 -0
  282. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/not_above.py +0 -0
  283. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/not_below.py +0 -0
  284. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/open.py +0 -0
  285. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/open_closed.py +0 -0
  286. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/rr.py +0 -0
  287. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/singleton.py +0 -0
  288. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/interval/universal.py +0 -0
  289. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/mypy.ini +0 -0
  290. {splinekit-0.2.4 → splinekit-0.2.5}/src/splinekit/spline_utilities.py +0 -0
  291. {splinekit-0.2.4 → splinekit-0.2.5}/temp/bspline_stability.py +0 -0
  292. {splinekit-0.2.4 → splinekit-0.2.5}/tests/test_bsplines.py +0 -0
  293. {splinekit-0.2.4 → splinekit-0.2.5}/tests/test_periodic_nonuniform_piecewise.py +0 -0
  294. {splinekit-0.2.4 → splinekit-0.2.5}/tests/test_periodic_spline_1d.py +0 -0
  295. {splinekit-0.2.4 → splinekit-0.2.5}/tests/test_spline_padding.py +0 -0
  296. {splinekit-0.2.4 → splinekit-0.2.5}/tests/test_spline_utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: splinekit
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: A set of functions and classes to handle periodic 1D polynomial splines
5
5
  Author-Email: =?utf-8?q?Philippe_Th=C3=A9venaz?= <philippe.thevenaz@icloud.com>
6
6
  Maintainer-Email: =?utf-8?q?Philippe_Th=C3=A9venaz?= <philippe.thevenaz@icloud.com>
@@ -54,7 +54,7 @@ Description-Content-Type: text/markdown
54
54
  # splinekit: Spline Operations
55
55
  `splinekit` is a Python-based open-source software library aimed at the manipulation of one-dimensional periodic splines.
56
56
 
57
- | ***<div style="background-color:aliceblue">&#160;&#160;Full documentation at https://splinekit.github.io/ &#160;&#160;</div>*** |
57
+ | ***<div style="background-color:aliceblue">&#160;&#160;Full documentation at [https://splinekit.github.io/](https://splinekit.github.io/) &#160;&#160;</div>*** |
58
58
  | - |
59
59
 
60
60
  ## Installation
@@ -121,4 +121,7 @@ First stable version. Pure Python.
121
121
  Same API as 0.1.0. Ansi-C dynamic library.
122
122
 
123
123
  ### 0.2.2 — 0.2.4
124
- Some demos added
124
+ Some demos added.
125
+
126
+ ### 0.2.5
127
+ Minor debug of least-significant-bit edge cases.
@@ -3,7 +3,7 @@
3
3
  # splinekit: Spline Operations
4
4
  `splinekit` is a Python-based open-source software library aimed at the manipulation of one-dimensional periodic splines.
5
5
 
6
- | ***<div style="background-color:aliceblue">&#160;&#160;Full documentation at https://splinekit.github.io/ &#160;&#160;</div>*** |
6
+ | ***<div style="background-color:aliceblue">&#160;&#160;Full documentation at [https://splinekit.github.io/](https://splinekit.github.io/) &#160;&#160;</div>*** |
7
7
  | - |
8
8
 
9
9
  ## Installation
@@ -70,4 +70,7 @@ First stable version. Pure Python.
70
70
  Same API as 0.1.0. Ansi-C dynamic library.
71
71
 
72
72
  ### 0.2.2 — 0.2.4
73
- Some demos added
73
+ Some demos added.
74
+
75
+ ### 0.2.5
76
+ Minor debug of least-significant-bit edge cases.
@@ -0,0 +1,335 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "02240a05-3526-4530-ae12-d9522465b594",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Padded Splines\n",
9
+ "The data samples are represented with circles. The first sample, as well as its replicates when the padding is globally periodic, is indicated by a red stem line. The portion of curve in thick green is tied to the observed data, with a number of samples that can be specified. The portion of curve in thick blue is the complement to a full period."
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "code",
14
+ "execution_count": 1,
15
+ "id": "230ca8a8-c806-4207-b416-9954d55f1377",
16
+ "metadata": {},
17
+ "outputs": [
18
+ {
19
+ "data": {
20
+ "application/vnd.jupyter.widget-view+json": {
21
+ "model_id": "9049773b238948f1b9b1057e21a9087b",
22
+ "version_major": 2,
23
+ "version_minor": 0
24
+ },
25
+ "text/plain": [
26
+ "interactive(children=(IntSlider(value=3, description='degree', max=9), IntSlider(value=6, description='samples…"
27
+ ]
28
+ },
29
+ "execution_count": 1,
30
+ "metadata": {},
31
+ "output_type": "execute_result"
32
+ }
33
+ ],
34
+ "source": [
35
+ "# Load the required libraries\n",
36
+ "import ipywidgets as widgets\n",
37
+ "import matplotlib.pyplot as plt\n",
38
+ "import numpy as np\n",
39
+ "\n",
40
+ "import splinekit as sk # This library\n",
41
+ "\n",
42
+ "# Setup\n",
43
+ "max_degree = 9 # Maximal spline degree\n",
44
+ "max_samples = 12 # Maximal support\n",
45
+ "\n",
46
+ "# Initial random periodic cubic spline\n",
47
+ "s0 = sk.PeriodicSpline1D.from_spline_coeff(np.random.standard_normal(6), degree = 3)\n",
48
+ "\n",
49
+ "# Plot\n",
50
+ "def update_plot (\n",
51
+ " degree = 3,\n",
52
+ " samples = 6,\n",
53
+ " basis = 0\n",
54
+ "):\n",
55
+ " global s0\n",
56
+ "\n",
57
+ " # Update of the spline\n",
58
+ " f = s0.get_samples(0, support_length = s0.period)\n",
59
+ " if s0.period < samples:\n",
60
+ " f = np.append(f, np.random.standard_normal(samples - len(f)))\n",
61
+ " else:\n",
62
+ " f = f[ : samples]\n",
63
+ " s0 = sk.PeriodicSpline1D.from_samples(f, degree = degree)\n",
64
+ "\n",
65
+ " # Decomposition according to the basis\n",
66
+ " subplot = plt.subplots()\n",
67
+ " if 0 == basis: # BASIC\n",
68
+ " weights = np.diag(s0.spline_coeff)\n",
69
+ " bases = [sk.PeriodicSpline1D.from_spline_coeff(w, degree = degree) for w in weights]\n",
70
+ " image = {b.image() for b in bases}\n",
71
+ " image.add(s0.image())\n",
72
+ " plotrange = sk.interval.Interval.enclosure(image)\n",
73
+ " plotrange = sk.interval.Closed((\n",
74
+ " plotrange.midpoint - 0.55 * plotrange.diameter,\n",
75
+ " plotrange.midpoint + 0.55 * plotrange.diameter\n",
76
+ " ))\n",
77
+ " s0.plot(\n",
78
+ " subplot,\n",
79
+ " plotrange = plotrange,\n",
80
+ " plotpoints = 200 + 1,\n",
81
+ " curve_fmt = \"-C0\",\n",
82
+ "# curve_markerfmt = \"\",\n",
83
+ " curvestem_linefmt = \"None\",\n",
84
+ " knot_marker = \"\",\n",
85
+ "# periodbound_markerfmt = \"\",\n",
86
+ " periodboundstem_linefmt = \"None\"\n",
87
+ " )\n",
88
+ " for k in range(s0.period):\n",
89
+ " sk.PeriodicSpline1D.from_spline_coeff(weights[k], degree = degree).plot(\n",
90
+ " subplot,\n",
91
+ "# plotrange = plotrange,\n",
92
+ " plotpoints = 200 + 1,\n",
93
+ " curve_fmt = \"-C\" + str(1 + k % 9),\n",
94
+ " curve_lw = 0.25,\n",
95
+ " curve_markerfmt = \"\",\n",
96
+ " curvestem_linefmt = \"None\",\n",
97
+ " knot_marker = \"\",\n",
98
+ " periodbound_markerfmt = \"\",\n",
99
+ " periodboundstem_linefmt = \"None\"\n",
100
+ " )\n",
101
+ " elif 1 == basis: # CARDINAL\n",
102
+ " pass\n",
103
+ " elif 2 == basis: # DUAL\n",
104
+ " pass\n",
105
+ " elif 3 == basis: # ORTHONORMAL\n",
106
+ " pass\n",
107
+ " plt.show()\n",
108
+ "\n",
109
+ "widgets.interactive(\n",
110
+ " update_plot,\n",
111
+ " degree = (0, max_degree),\n",
112
+ " samples = (1, max_samples),\n",
113
+ " basis = widgets.RadioButtons(\n",
114
+ " options = [\n",
115
+ " (\"BASIC\", 0),\n",
116
+ " (\"CARDINAL\", 1),\n",
117
+ " (\"DUAL\", 2),\n",
118
+ " (\"ORTHONORMAL\", 3)\n",
119
+ " ],\n",
120
+ " value = 0,\n",
121
+ " description = \"Basis:\",\n",
122
+ " disabled = False\n",
123
+ " )\n",
124
+ ")\n"
125
+ ]
126
+ },
127
+ {
128
+ "cell_type": "code",
129
+ "execution_count": null,
130
+ "id": "c719d9b2-273a-431b-9812-11db4edcb69c",
131
+ "metadata": {},
132
+ "outputs": [],
133
+ "source": [
134
+ "\n",
135
+ "\n",
136
+ "\n",
137
+ "\n",
138
+ "\n",
139
+ "\n",
140
+ "\n",
141
+ "\n",
142
+ "\n",
143
+ "\n",
144
+ "\n",
145
+ "\n",
146
+ "\n",
147
+ "\n",
148
+ "\n",
149
+ "\n",
150
+ "\n",
151
+ "\n",
152
+ "\n",
153
+ "\n"
154
+ ]
155
+ },
156
+ {
157
+ "cell_type": "code",
158
+ "execution_count": null,
159
+ "id": "9f4a8be2-2daf-434d-b890-44dba41caadd",
160
+ "metadata": {},
161
+ "outputs": [],
162
+ "source": []
163
+ }
164
+ ],
165
+ "metadata": {
166
+ "kernelspec": {
167
+ "display_name": "Python 3 (ipykernel)",
168
+ "language": "python",
169
+ "name": "python3"
170
+ },
171
+ "language_info": {
172
+ "codemirror_mode": {
173
+ "name": "ipython",
174
+ "version": 3
175
+ },
176
+ "file_extension": ".py",
177
+ "mimetype": "text/x-python",
178
+ "name": "python",
179
+ "nbconvert_exporter": "python",
180
+ "pygments_lexer": "ipython3",
181
+ "version": "3.12.6"
182
+ },
183
+ "widgets": {
184
+ "application/vnd.jupyter.widget-state+json": {
185
+ "state": {
186
+ "290f6db0175c4515ab17582f0ece0b76": {
187
+ "model_module": "@jupyter-widgets/base",
188
+ "model_module_version": "2.0.0",
189
+ "model_name": "LayoutModel",
190
+ "state": {}
191
+ },
192
+ "2bb8535562e54118900f09f11c288ee0": {
193
+ "model_module": "@jupyter-widgets/controls",
194
+ "model_module_version": "2.0.0",
195
+ "model_name": "SliderStyleModel",
196
+ "state": {
197
+ "description_width": ""
198
+ }
199
+ },
200
+ "3b3caea94c024ea286c6934c5c50c991": {
201
+ "model_module": "@jupyter-widgets/controls",
202
+ "model_module_version": "2.0.0",
203
+ "model_name": "DescriptionStyleModel",
204
+ "state": {
205
+ "description_width": ""
206
+ }
207
+ },
208
+ "5b5e9326ceea4e8bacbfbf7c303a6675": {
209
+ "model_module": "@jupyter-widgets/controls",
210
+ "model_module_version": "2.0.0",
211
+ "model_name": "IntSliderModel",
212
+ "state": {
213
+ "behavior": "drag-tap",
214
+ "description": "samples",
215
+ "layout": "IPY_MODEL_6882f5a10bd84a19a66c66147f5b4ee8",
216
+ "max": 12,
217
+ "min": 1,
218
+ "style": "IPY_MODEL_c48d7a20765e488a9e94f025180e3097",
219
+ "value": 6
220
+ }
221
+ },
222
+ "6882f5a10bd84a19a66c66147f5b4ee8": {
223
+ "model_module": "@jupyter-widgets/base",
224
+ "model_module_version": "2.0.0",
225
+ "model_name": "LayoutModel",
226
+ "state": {}
227
+ },
228
+ "6fdf071ac0a3454b910f7807befd995e": {
229
+ "model_module": "@jupyter-widgets/output",
230
+ "model_module_version": "1.0.0",
231
+ "model_name": "OutputModel",
232
+ "state": {
233
+ "layout": "IPY_MODEL_8519500f36604ab69c94224abe14d597",
234
+ "outputs": [
235
+ {
236
+ "ename": "ValueError",
237
+ "evalue": "Internal error (signum pieces out of sequence)",
238
+ "output_type": "error",
239
+ "traceback": [
240
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
241
+ "\u001b[31mValueError\u001b[39m Traceback (most recent call last)",
242
+ "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/Programmation/Python/splinekit/splinekit-env/lib/python3.12/site-packages/ipywidgets/widgets/interaction.py:243\u001b[39m, in \u001b[36minteractive.update\u001b[39m\u001b[34m(self, *args)\u001b[39m\n\u001b[32m 241\u001b[39m value = widget.get_interact_value()\n\u001b[32m 242\u001b[39m \u001b[38;5;28mself\u001b[39m.kwargs[widget._kwarg] = value\n\u001b[32m--> \u001b[39m\u001b[32m243\u001b[39m \u001b[38;5;28mself\u001b[39m.result = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 244\u001b[39m show_inline_matplotlib_plots()\n\u001b[32m 245\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.auto_display \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m.result \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
243
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 36\u001b[39m, in \u001b[36mupdate_plot\u001b[39m\u001b[34m(degree, samples, basis)\u001b[39m\n\u001b[32m 34\u001b[39m weights = np.diag(s0.spline_coeff)\n\u001b[32m 35\u001b[39m bases = [sk.PeriodicSpline1D.from_spline_coeff(w, degree = degree) \u001b[38;5;28;01mfor\u001b[39;00m w \u001b[38;5;129;01min\u001b[39;00m weights]\n\u001b[32m---> \u001b[39m\u001b[32m36\u001b[39m image = {\u001b[43mb\u001b[49m\u001b[43m.\u001b[49m\u001b[43mimage\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m bases}\n\u001b[32m 37\u001b[39m image.add(s0.image())\n\u001b[32m 38\u001b[39m plotrange = sk.interval.Interval.enclosure(image)\n",
244
+ "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/Programmation/Python/splinekit/splinekit-env/lib/python3.12/site-packages/splinekit/periodic_spline_1d.py:3084\u001b[39m, in \u001b[36mPeriodicSpline1D.image\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 3049\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mimage\u001b[39m (\n\u001b[32m 3050\u001b[39m \u001b[38;5;28mself\u001b[39m\n\u001b[32m 3051\u001b[39m ) -> Interval:\n\u001b[32m 3053\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33mr\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 3054\u001b[39m \u001b[33;03m .. _periodic_spline_1d-image:\u001b[39;00m\n\u001b[32m 3055\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 3081\u001b[39m \n\u001b[32m 3082\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m3084\u001b[39m (minima, maxima) = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mextrema\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 3085\u001b[39m minimum = \u001b[38;5;28mself\u001b[39m.at(\u001b[32m0.0\u001b[39m)\n\u001b[32m 3086\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m ex \u001b[38;5;129;01min\u001b[39;00m minima:\n",
245
+ "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/Programmation/Python/splinekit/splinekit-env/lib/python3.12/site-packages/splinekit/periodic_spline_1d.py:3836\u001b[39m, in \u001b[36mPeriodicSpline1D.extrema\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 3784\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33mr\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 3785\u001b[39m \u001b[33;03m.. _periodic_spline_1d-extrema:\u001b[39;00m\n\u001b[32m 3786\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 3832\u001b[39m \n\u001b[32m 3833\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 3835\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[32m0\u001b[39m < \u001b[38;5;28mself\u001b[39m._degree:\n\u001b[32m-> \u001b[39m\u001b[32m3836\u001b[39m zc = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mgradient\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mzero_crossings\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 3837\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m [\n\u001b[32m 3838\u001b[39m [\n\u001b[32m 3839\u001b[39m PeriodicSpline1D.Extremum(\n\u001b[32m (...)\u001b[39m\u001b[32m 3851\u001b[39m ]\n\u001b[32m 3852\u001b[39m ]\n\u001b[32m 3853\u001b[39m zc = PeriodicSpline1D.from_spline_coeff(\n\u001b[32m 3854\u001b[39m cast(\n\u001b[32m 3855\u001b[39m np.ndarray[\u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mint\u001b[39m], np.dtype[np.float64]],\n\u001b[32m (...)\u001b[39m\u001b[32m 3866\u001b[39m delay = \u001b[38;5;28mself\u001b[39m._delay - \u001b[32m0.5\u001b[39m\n\u001b[32m 3867\u001b[39m ).zero_crossings()\n",
246
+ "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/Programmation/Python/splinekit/splinekit-env/lib/python3.12/site-packages/splinekit/periodic_spline_1d.py:3479\u001b[39m, in \u001b[36mPeriodicSpline1D.zero_crossings\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 3423\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33mr\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 3424\u001b[39m \u001b[33;03m.. _periodic_spline_1d-zero_crossings:\u001b[39;00m\n\u001b[32m 3425\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 3475\u001b[39m \n\u001b[32m 3476\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 3478\u001b[39m zc: List[List[Interval]] = [[], []]\n\u001b[32m-> \u001b[39m\u001b[32m3479\u001b[39m pieces = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mpiecewise_sgn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m.pieces\n\u001b[32m 3480\u001b[39m p0 = \u001b[38;5;28mlen\u001b[39m(pieces)\n\u001b[32m 3481\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[32m1\u001b[39m == p0:\n",
247
+ "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/Programmation/Python/splinekit/splinekit-env/lib/python3.12/site-packages/splinekit/periodic_spline_1d.py:5145\u001b[39m, in \u001b[36mPeriodicSpline1D.piecewise_sgn\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 5141\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(ps[k + \u001b[32m1\u001b[39m].domain, Singleton):\n\u001b[32m 5142\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m (cast(Singleton, ps[k].domain).value !=\n\u001b[32m 5143\u001b[39m cast(Singleton, ps[k + \u001b[32m1\u001b[39m].domain).value\n\u001b[32m 5144\u001b[39m ):\n\u001b[32m-> \u001b[39m\u001b[32m5145\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 5146\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mInternal error (signum pieces out of sequence)\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 5147\u001b[39m )\n\u001b[32m 5148\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m ps[k].item != ps[k + \u001b[32m1\u001b[39m].item:\n\u001b[32m 5149\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 5150\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mInternal error (inconsistent signum pieces)\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 5151\u001b[39m )\n",
248
+ "\u001b[31mValueError\u001b[39m: Internal error (signum pieces out of sequence)"
249
+ ]
250
+ }
251
+ ]
252
+ }
253
+ },
254
+ "7ba55e1b03db4b89a1cde51c90aaae39": {
255
+ "model_module": "@jupyter-widgets/base",
256
+ "model_module_version": "2.0.0",
257
+ "model_name": "LayoutModel",
258
+ "state": {}
259
+ },
260
+ "8519500f36604ab69c94224abe14d597": {
261
+ "model_module": "@jupyter-widgets/base",
262
+ "model_module_version": "2.0.0",
263
+ "model_name": "LayoutModel",
264
+ "state": {}
265
+ },
266
+ "8e70752be84440da833d2747a6324ee2": {
267
+ "model_module": "@jupyter-widgets/base",
268
+ "model_module_version": "2.0.0",
269
+ "model_name": "LayoutModel",
270
+ "state": {}
271
+ },
272
+ "9049773b238948f1b9b1057e21a9087b": {
273
+ "model_module": "@jupyter-widgets/controls",
274
+ "model_module_version": "2.0.0",
275
+ "model_name": "VBoxModel",
276
+ "state": {
277
+ "_dom_classes": [
278
+ "widget-interact"
279
+ ],
280
+ "children": [
281
+ "IPY_MODEL_9ea84a760b584c848df4d702b9ec310d",
282
+ "IPY_MODEL_5b5e9326ceea4e8bacbfbf7c303a6675",
283
+ "IPY_MODEL_ad5e0df428f64a12b638042d8deb165b",
284
+ "IPY_MODEL_6fdf071ac0a3454b910f7807befd995e"
285
+ ],
286
+ "layout": "IPY_MODEL_290f6db0175c4515ab17582f0ece0b76"
287
+ }
288
+ },
289
+ "9ea84a760b584c848df4d702b9ec310d": {
290
+ "model_module": "@jupyter-widgets/controls",
291
+ "model_module_version": "2.0.0",
292
+ "model_name": "IntSliderModel",
293
+ "state": {
294
+ "behavior": "drag-tap",
295
+ "description": "degree",
296
+ "layout": "IPY_MODEL_7ba55e1b03db4b89a1cde51c90aaae39",
297
+ "max": 9,
298
+ "style": "IPY_MODEL_2bb8535562e54118900f09f11c288ee0",
299
+ "value": 7
300
+ }
301
+ },
302
+ "ad5e0df428f64a12b638042d8deb165b": {
303
+ "model_module": "@jupyter-widgets/controls",
304
+ "model_module_version": "2.0.0",
305
+ "model_name": "RadioButtonsModel",
306
+ "state": {
307
+ "_options_labels": [
308
+ "BASIC",
309
+ "CARDINAL",
310
+ "DUAL",
311
+ "ORTHONORMAL"
312
+ ],
313
+ "description": "Basis:",
314
+ "index": 0,
315
+ "layout": "IPY_MODEL_8e70752be84440da833d2747a6324ee2",
316
+ "style": "IPY_MODEL_3b3caea94c024ea286c6934c5c50c991"
317
+ }
318
+ },
319
+ "c48d7a20765e488a9e94f025180e3097": {
320
+ "model_module": "@jupyter-widgets/controls",
321
+ "model_module_version": "2.0.0",
322
+ "model_name": "SliderStyleModel",
323
+ "state": {
324
+ "description_width": ""
325
+ }
326
+ }
327
+ },
328
+ "version_major": 2,
329
+ "version_minor": 0
330
+ }
331
+ }
332
+ },
333
+ "nbformat": 4,
334
+ "nbformat_minor": 5
335
+ }