splinekit 0.2.3__tar.gz → 0.2.4__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.
- {splinekit-0.2.3 → splinekit-0.2.4}/PKG-INFO +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/README.md +1 -1
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_bases.rst +8 -8
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_inverse.rst +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_poles.rst +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/spline_vs_poly.rst +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/bounds.rst +4 -4
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/evaluation.rst +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/polynomials.rst +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/pyproject.toml +1 -1
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/bases.py +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/bsplines.py +2 -2
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/periodic_spline_1d.py +12 -12
- {splinekit-0.2.3 → splinekit-0.2.4}/.github/workflows/deploy-docs.yml +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/.github/workflows/release.yml +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/.github/workflows/test.yml +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/.gitignore +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/.jupyterlite.doit.db +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/.virtual_documents/docs/tutorial/dummy.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/CMakeLists.txt +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/LICENSE +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/api/translations/all.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/api/translations/en.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/api/workspaces/all.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/bootstrap.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/config-utils.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/consoles/favicon.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/consoles/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/consoles/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/consoles/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/consoles/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/doc/tree/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/doc/workspaces/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/edit/favicon.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/edit/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/edit/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/edit/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/edit/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/install.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/package.json.orig +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/plugin.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js.LICENSE.txt +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/509.d51a8122d1920ac82323.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/720.094c38d70b1dec0ceea7.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/remoteEntry.94495aac41d2fef6ad41.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/style.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab-jupytext/static/third-party-licenses.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/install.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/static/568.1e2faa2ba0bbe59c4780.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/static/747.67662283a5707eeb4d4c.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/static/remoteEntry.5cbb9d2323598fbda535.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/static/style.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/extensions/jupyterlab_pygments/static/third-party-licenses.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/icon-120x120.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/icon-512x512.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/jupyterlite.schema.v0.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/favicon.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/tree/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/lab/workspaces/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/manifest.webmanifest +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/notebooks/favicon.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/notebooks/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/notebooks/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/notebooks/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/notebooks/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/repl/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/repl/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/repl/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/repl/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/service-worker.js +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon-busy-1.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon-busy-2.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon-busy-3.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon-file.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon-notebook.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon-terminal.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/static/favicons/favicon.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/tree/favicon.ico +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/tree/index.html +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/tree/jupyter-lite.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/tree/jupyter-lite.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/_output/tree/package.json +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/ansi_c/spline_padding/src/spline_padding.c +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/ansi_c/spline_padding/src/spline_padding.h +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_cmake/CMakeLists.txt +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_cmake/spline_padding.c +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_cmake/spline_padding.h +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/libspline_padding.dylib +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/spline_padding.c +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/spline_padding.h +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.pbxproj +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/xcuserdata/pthevena.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/xcuserdata/pthevena.xcuserdatad/xcschemes/xcschememanagement.plist +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_annihilate.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_cardinal.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_convolve_mono.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_dual.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_dual_property.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_gauss_exo.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_hello.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_hello_grad.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_hello_integral.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_inv.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_m_scale.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_member.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_member_diff.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_member_integral.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_numeric_stability.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_ortho.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_ortho_property.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_partition_mono.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_periodic_inv.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_poles.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_sinc.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_spline_poly.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_trigo_exo.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_vs_cos.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_vs_erf.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_vs_exp.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_vs_pi_as_sum.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_vs_pi_at0.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/bspline_vs_sin.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/padding_data.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/padding_speed.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_approximation.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_at_array.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_at_scalar.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_bounds.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_evaluation_speed.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_interpolation.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_polynomials.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_random_1d.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Jupyter/spline_random_2d.ipynb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Bspline Poles.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/IntervalChecks.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/PeriodicSplinesChecks.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/SplinePaddingChecks.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Test BSplines.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Test PeriodicNonuniformPiecewise.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Test PeriodicSpline1D.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Test SplinePadding.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Test SplineUtilities.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/Verify doc.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/Wolfram/rescued Test SplinePadding.nb +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/cpJupyter.sh +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/gzJupyter.sh +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/sk.numbers +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/dev/zipJupyter.sh +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/.jupyterlite.doit.db +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/_static/custom.css +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/bases/01_bases.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/bases/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/bases/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/bsplines/01_bsplines.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/bsplines/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/bsplines/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/conf.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_m_scale.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_members.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_numeric_stability.ipynb.gz +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_stability.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/bspline_vs_pi.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/hello_bspline.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/bspline/spline_engineer_func.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/padding/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/padding/padding.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/padding/padding_speed.ipynb.gz +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/constructors.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/random1d.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/random2d.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/demos/spline1d/spline_evaluation_speed.ipynb.gz +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/environment.yml +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/glossary/glossary-numbers.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/glossary/glossary-polynomials.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/glossary/glossary-splines.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/glossary/glossary-terminology.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/glossary/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/installation/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/01_bounded.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/02_open.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/03_open_closed.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/04_closed.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/05_closed_open.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/bounded/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/degenerate/01_degenerate.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/degenerate/02_singleton.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/degenerate/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/degenerate/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/01_half_bounded.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/02_above.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/03_not_below.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/04_not_above.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/05_below.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/half_bounded/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/interval/01_interval.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/interval/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/interval/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/universal/01_universal.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/universal/02_empty.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/universal/03_rr.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/universal/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/interval/universal/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_nonuniform_piecewise/01_periodic_nonuniform_piecewise.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_nonuniform_piecewise/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_nonuniform_piecewise/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/01_periodic_spline_1d.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m00.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m01.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m02.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m03.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m04.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m05.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m06.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m07.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m08.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m09.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m10.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m11.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m12.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m13.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m14.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m15.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m16.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m17.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m18.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m19.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m20.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m21.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m22.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m23.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/m24.png +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/matplotlib-color.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/matplotlib-linestyle.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/matplotlib-marker.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/periodic_spline_1d/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/spline_padding/01_spline_padding.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/spline_padding/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/spline_padding/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/spline_utilities/01_spline_utilities.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/spline_utilities/index.rst +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/docs/spline_utilities/noxfile.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/__init__.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/__init__.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/_known_intervals.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/above.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/below.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/bounded.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/closed.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/closed_open.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/degenerate.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/empty.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/half_bounded.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/interval.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/mypy.ini +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/not_above.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/not_below.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/open.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/open_closed.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/rr.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/singleton.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/interval/universal.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/mypy.ini +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/periodic_nonuniform_piecewise.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/spline_padding.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/src/splinekit/spline_utilities.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/temp/bspline_stability.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/tests/test_bsplines.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/tests/test_periodic_nonuniform_piecewise.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/tests/test_periodic_spline_1d.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/tests/test_spline_padding.py +0 -0
- {splinekit-0.2.3 → splinekit-0.2.4}/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.
|
|
3
|
+
Version: 0.2.4
|
|
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>
|
|
@@ -120,5 +120,5 @@ First stable version. Pure Python.
|
|
|
120
120
|
### 0.2.1
|
|
121
121
|
Same API as 0.1.0. Ansi-C dynamic library.
|
|
122
122
|
|
|
123
|
-
### 0.2.2
|
|
123
|
+
### 0.2.2 — 0.2.4
|
|
124
124
|
Some demos added
|
|
@@ -89,10 +89,10 @@ While a B-spline has many favorable properties, it comes at a price: it is not i
|
|
|
89
89
|
In the sequel, the B-spline basis provides the reference to which all other bases will be compared. We set
|
|
90
90
|
|
|
91
91
|
.. math::
|
|
92
|
-
\begin{
|
|
92
|
+
\begin{array}{rcl}
|
|
93
93
|
f:{\mathbb{R}}\rightarrow{\mathbb{R}},\;x\mapsto f(x)&=&\sum_{k\in{\mathbb{R}}}\,c[k]\,\varphi(x-k)\\
|
|
94
94
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{1}[k]\,\beta^{n}(x-k).
|
|
95
|
-
\end{
|
|
95
|
+
\end{array}
|
|
96
96
|
|
|
97
97
|
Here, we plot a B-spline over its support, indexed by its degree.
|
|
98
98
|
|
|
@@ -113,11 +113,11 @@ There exists a basis :math:`\eta^{n}` that happens to be interpolating. It is ca
|
|
|
113
113
|
It then holds that
|
|
114
114
|
|
|
115
115
|
.. math::
|
|
116
|
-
\begin{
|
|
116
|
+
\begin{array}{rcl}
|
|
117
117
|
f:{\mathbb{R}}\rightarrow{\mathbb{R}},\;x\mapsto f(x)&=&\sum_{k\in{\mathbb{R}}}\,c[k]\,\varphi(x-k)\\
|
|
118
118
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{1}[k]\,\beta^{n}(x-k)\\
|
|
119
119
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{2}[k]\,\eta^{n}(x-k).
|
|
120
|
-
\end{
|
|
120
|
+
\end{array}
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
Here, we plot a cardinal B-spline, indexed by its degree.
|
|
@@ -148,12 +148,12 @@ Dual B-Spline
|
|
|
148
148
|
Let the basis :math:`\mathring{\beta}^{n_{2},n_{1}}` of dual degree :math:`n_{2}\in{\mathbb{N}}` and primal degree :math:`n_{1}\in{\mathbb{N}}` be called a dual B-spline. It is yet another basis that is sometimes used to provide an alternate (equivalent) representation of the spline as
|
|
149
149
|
|
|
150
150
|
.. math::
|
|
151
|
-
\begin{
|
|
151
|
+
\begin{array}{rcl}
|
|
152
152
|
f:{\mathbb{R}}\rightarrow{\mathbb{R}},\;x\mapsto f(x)&=&\sum_{k\in{\mathbb{R}}}\,c[k]\,\varphi(x-k)\\
|
|
153
153
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{1}[k]\,\beta^{n}(x-k)\\
|
|
154
154
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{2}[k]\,\eta^{n}(x-k)\\
|
|
155
155
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{3}[k]\,\mathring{\beta}^{n,n_{1}}(x-k).
|
|
156
|
-
\end{
|
|
156
|
+
\end{array}
|
|
157
157
|
|
|
158
158
|
Here, the equality of the representations of :math:`f` is achieved only if we set :math:`n_{2}=n,` while the primal degree :math:`n_{1}\in{\mathbb{N}}` is free. The defining property of a dual B-spline is that it is the unique spline of degree :math:`n_{2}` which, once convolved with a B-spline of degree :math:`n_{1},` results in a cardinal, interpolating spline. Formally, this is written as
|
|
159
159
|
|
|
@@ -186,13 +186,13 @@ Orthonormal B-Spline
|
|
|
186
186
|
Let the orthonormal B-spline :math:`\phi^{n}` of degree :math:`n` be a final basis of interest that is sometimes used to provide an alternate (equivalent) representation of the spline as
|
|
187
187
|
|
|
188
188
|
.. math::
|
|
189
|
-
\begin{
|
|
189
|
+
\begin{array}{rcl}
|
|
190
190
|
f:{\mathbb{R}}\rightarrow{\mathbb{R}},\;x\mapsto f(x)&=&\sum_{k\in{\mathbb{R}}}\,c[k]\,\varphi(x-k)\\
|
|
191
191
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{1}[k]\,\beta^{n}(x-k)\\
|
|
192
192
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{2}[k]\,\eta^{n}(x-k)\\
|
|
193
193
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{3}[k]\,\mathring{\beta}^{n,n_{1}}(x-k)\\
|
|
194
194
|
&=&\sum_{k\in{\mathbb{R}}}\,c_{4}[k]\,\phi^{n}(x-k).
|
|
195
|
-
\end{
|
|
195
|
+
\end{array}
|
|
196
196
|
|
|
197
197
|
The defining property of the orthonormal B-spline is that it is the unique (up to its sign) spline of degree :math:`n` which, once convolved with itself, results in a cardinal, interpolating spline. Formally, this is written as
|
|
198
198
|
|
|
@@ -24,10 +24,10 @@ B-splines are continuously defined functions :math:`\beta^{n}:{\mathbb{R}}\right
|
|
|
24
24
|
One question that arises now is whether the sequence :math:`b^{n}` possesses a discrete-convolution inverse sequence. Let us notate such inverse sequence as :math:`\left(b^{n}\right)^{-1}.` What we are primarily asking is whether there exists :math:`\left(b^{n}\right)^{-1}` such that
|
|
25
25
|
|
|
26
26
|
.. math::
|
|
27
|
-
\begin{
|
|
27
|
+
\begin{array}{rcl}
|
|
28
28
|
\forall k\in{\mathbb{Z}}:{\mathbf{[\![}}k=0\,{\mathbf{]\!]}}&=&\left(\left(b^{n}\right)^{-1}*b^{n}\right)[k]\\
|
|
29
29
|
&=&\sum_{q\in{\mathbb{Z}}}\,\left(b^{n}\right)^{-1}[q]\,b^{n}[k-q],
|
|
30
|
-
\end{
|
|
30
|
+
\end{array}
|
|
31
31
|
|
|
32
32
|
where the notation :math:`{\mathbf{[\![}}\cdot\,{\mathbf{]\!]}}` is that of the Iverson bracket. (From a mathematical point of view, let us observe that the convolution is always well-defined because of the finite-support property of :math:`b^{n}.`)
|
|
33
33
|
|
|
@@ -41,10 +41,10 @@ Every function :math:`f` built this way is said to be a spline. Remarkably, the
|
|
|
41
41
|
One often deploys splines with the purpose of interpolating data samples. In practice, given a :math:`Q`-dimensional vector :math:`{\mathbf{y}}\in{\mathbb{R}}^{Q}` of samples, it is desired to find a specific sequence of coefficients :math:`c` that results in a spline :math:`f` satisfying the interpolation constraint :math:`\left(f(q)\right)_{q=0}^{Q-1}={\mathbf{y}}.` Unfortunately, the coefficients are not unique. Indeed, suppose that one has found a sequence :math:`c` that satisfies the interpolation constraint. Then, other sequences :math:`c'` can be established as
|
|
42
42
|
|
|
43
43
|
.. math::
|
|
44
|
-
\begin{
|
|
44
|
+
\begin{array}{rcl}
|
|
45
45
|
\forall q\in{\mathbb{Z}}:f(q)&=&\sum_{k\in{\mathbb{Z}}}\,c[k]\,\beta^{n}(q-k)\\
|
|
46
46
|
&=&\sum_{k\in{\mathbb{Z}}}\,\underbrace{\left(c[k]+\sum_{m=1}^{\left\lfloor n/2\right\rfloor}\,\left(\lambda_{m}^{-}\,z_{n,m}^{-k}+\lambda_{m}^{+}\,z_{n,m}^{k}\right)\right)}_{c'[k]}\,\beta^{n}(q-k),
|
|
47
|
-
\end{
|
|
47
|
+
\end{array}
|
|
48
48
|
|
|
49
49
|
where :math:`\lambda_{m}^{-}` and :math:`\lambda_{m}^{+}` are unconstrained real numbers which, altogether, provide :math:`2\,\left\lfloor n/2\right\rfloor` degrees of liberty.
|
|
50
50
|
|
|
@@ -56,10 +56,10 @@ Partition of Monomials
|
|
|
56
56
|
The generic polynomial :math:`\pi_{n}:{\mathbb{R}}\rightarrow{\mathbb{R}},x\mapsto\pi_{n}(x)=a_{0}+\sum_{m=1}^{n}\,a_{m}\,x^{m}` is a weighted linear sum of a constant term :math:`1` and of canonic monomials :math:`x^{m},` with respective weights :math:`a_{0}` and :math:`a_{m}.` If we want to discover the spline coefficients :math:`c` needed to represent :math:`\pi_{n}` as a spline, all we need to know is which are the spline coefficients :math:`c_{m}^{n}` that will represent the monomial of degree :math:`m` as the spline :math:`\sum_{k\in{\mathbb{Z}}}\,c_{m}^{n}[k]\,\beta^{n}(x-k)` for :math:`x\in{\mathbb{R}},` assuming that :math:`0<m\leq n.` Then, the finite-support property of B-splines will alleviate concerns about the convergence of the sums involved and will allow us to write that
|
|
57
57
|
|
|
58
58
|
.. math::
|
|
59
|
-
\begin{
|
|
59
|
+
\begin{array}{rcl}
|
|
60
60
|
\pi_{n}(x)&=&a_{0}\,\left(\sum_{k\in{\mathbb{Z}}}\,\beta^{n}(x-k)\right)+\sum_{m=1}^{n}\,a_{m}\,\left(\sum_{k\in{\mathbb{Z}}}\,c_{m}^{n}[k]\,\beta^{n}(x-k)\right)\\
|
|
61
61
|
&=&\sum_{k\in{\mathbb{Z}}}\,\left(a_{0}+\sum_{m=1}^{n}\,a_{m}\,c_{m}^{n}[k]\right)\,\beta^{n}(x-k).
|
|
62
|
-
\end{
|
|
62
|
+
\end{array}
|
|
63
63
|
|
|
64
64
|
The identification :math:`c[k]=a_{0}+\sum_{m=1}^{n}\,a_{m}\,c_{m}^{n}[k]` for :math:`k\in{\mathbb{Z}}` will finally result in the desired representation :math:`\pi_{n}(x)=\sum_{k\in{\mathbb{Z}}}\,c[k]\,\beta^{n}(x-k)` for :math:`x\in{\mathbb{R}}.`
|
|
65
65
|
|
|
@@ -65,10 +65,10 @@ Assume finally that :math:`n>m>0.` In this case, letting :math:`{\mathbf{e}}_{m+
|
|
|
65
65
|
satisfies our requirements. Indeed, for all :math:`x\in{\mathbb{X}}_{r},` some algebraic manipulations lead to
|
|
66
66
|
|
|
67
67
|
.. math::
|
|
68
|
-
\begin{
|
|
68
|
+
\begin{array}{rcl}
|
|
69
69
|
0&\leq&{\mathbf{u}}_{r}^{{\mathsf{T}}}\,{\mathbf{W}}^{m}\,{\mathbf{v}}^{m}({\mathrm{frac}}(x-\frac{m-1}{2}-\delta y))-{\mathbf{c}}_{r}^{{\mathsf{T}}}\,{\mathbf{W}}^{n}\,{\mathbf{v}}^{n}(\chi)\\
|
|
70
70
|
&=&\chi^{m}\,\sum_{k=m+1}^{n}\,\left\{\begin{array}{ll}-a_{k+1}\,\chi^{k-m},&a_{k+1}<0\\a_{k+1}\,\left(1-\chi^{k-m}\right),&0\leq a_{k+1}.\end{array}\right.
|
|
71
|
-
\end{
|
|
71
|
+
\end{array}
|
|
72
72
|
|
|
73
73
|
Global Bound
|
|
74
74
|
^^^^^^^^^^^^
|
|
@@ -91,10 +91,10 @@ and observe that
|
|
|
91
91
|
The nonnegativity of B-splines allows us to finally establish that
|
|
92
92
|
|
|
93
93
|
.. math::
|
|
94
|
-
\begin{
|
|
94
|
+
\begin{array}{rcl}
|
|
95
95
|
\forall x\in{\mathbb{X}}_{r}:g(x)-{\mathbf{u}}_{r}^{{\mathsf{T}}}\,{\mathbf{W}}^{m}\,{\mathbf{v}}^{m}(\chi)&=&\sum_{k=0}^{m}\,\left(\left(\max_{\rho=0}^{m}\,\left[{\mathbf{u}}_{{\left(\rho-k+r\right)\bmod K}}\right]_{\rho+1}\right)-\left[{\mathbf{u}}_{r}\right]_{k+1}\right)\,\beta^{m}(x-\delta y+r-k)\\
|
|
96
96
|
&\geq&\sum_{k=0}^{m}\,\left(\left[{\mathbf{u}}_{r}\right]_{k+1}-\left[{\mathbf{u}}_{r}\right]_{k+1}\right)\,\beta^{m}(x-\delta y+r-k)=0,
|
|
97
|
-
\end{
|
|
97
|
+
\end{array}
|
|
98
98
|
|
|
99
99
|
from which we conclude that :math:`g` is an upper bound of :math:`f.`
|
|
100
100
|
|
|
@@ -28,10 +28,10 @@ where :math:`K\in{\mathbb{N}}+1` is a positive integer period, :math:`c` is an a
|
|
|
28
28
|
Since the support of a B-spline is finite, the sum is finite at any given argument :math:`x.` Moreover, since B-splines of positive degrees are themselves made of unit-length pieces of polynomials, one can deploy the formalism of linear-algebra to make the expression of the spline recipe take the form
|
|
29
29
|
|
|
30
30
|
.. math::
|
|
31
|
-
\begin{
|
|
31
|
+
\begin{array}{rcl}
|
|
32
32
|
\forall n\in{\mathbb{N}}+1,\forall x\in{\mathbb{R}}:f(x)&=&\left(\begin{array}{c}c[{\left(-r\right)\bmod K}]\\c[{\left(1-r\right)\bmod K}]\\c[{\left(2-r]\right)\bmod K}\\\vdots\\c[{\left(n-r\right)\bmod K}]\end{array}\right)^{{\mathsf{T}}}\,\left(\begin{array}{ccccc}w_{0,0}^{n}&w_{0,1}^{n}&w_{0,2}^{n}&\cdots&w_{0,n}^{n}\\w_{1,0}^{n}&w_{1,1}^{n}&w_{1,2}^{n}&\cdots&w_{1,n}^{n}\\w_{2,0}^{n}&w_{2,1}^{n}&w_{2,2}^{n}&\cdots&w_{2,n}^{n}\\\vdots&\vdots&\vdots&\ddots&\vdots\\w_{n,0}^{n}&w_{n,1}^{n}&w_{n,2}^{n}&\cdots&w_{n,n}^{n}\end{array}\right)\,\left(\begin{array}{c}1\\v\\v^{2}\\\vdots\\v^{n}\end{array}\right)\\
|
|
33
33
|
&=&{\color{blue}{{\mathbf{c}}}}^{{\mathsf{T}}}\,{\color{blue}{{\mathbf{W}}^{n}}}\,{\color{blue}{{\mathbf{v}}^{n}}},
|
|
34
|
-
\end{
|
|
34
|
+
\end{array}
|
|
35
35
|
|
|
36
36
|
where :math:`{\color{blue}{{\mathbf{c}}}}\in{\mathbb{R}}^{n+1}` is a vector whose :math:`n+1` components are extracted from the data-dependent array :math:`c` at some integer :math:`r\in{\mathbb{Z}}` that depends in discrete fashion on :math:`\left(x-\delta x\right),` where :math:`{\color{blue}{{\mathbf{W}}^{n}}}\in{\mathbb{R}}^{\left(n+1\right)\times\left(n+1\right)}` is a matrix that depends on :math:`n` only, and where :math:`{\color{blue}{{\mathbf{v}}^{n}}}\in{\mathbb{R}}^{n+1}` is a Vandermonde vector whose every component belongs to the interval :math:`[0,1]` and is made to depend continuously on :math:`\left(x-\delta x\right).`
|
|
37
37
|
|
|
@@ -48,10 +48,10 @@ This function is made of polynomial pieces because of the term :math:`x^{n}` in
|
|
|
48
48
|
In accord with the definition, the B-spline of degree zero is
|
|
49
49
|
|
|
50
50
|
.. math::
|
|
51
|
-
\begin{
|
|
51
|
+
\begin{array}{rcl}
|
|
52
52
|
\beta^{0}(x)&=&\varsigma^{0}(x+\frac{1}{2})-\varsigma^{0}(x-\frac{1}{2})\\
|
|
53
53
|
&=&\left\{\begin{array}{ll}1,&\left|x\right|<\frac{1}{2}\\\frac{1}{2},&\left|x\right|=\frac{1}{2}\\0,&\frac{1}{2}<\left|x\right|.\end{array}\right.
|
|
54
|
-
\end{
|
|
54
|
+
\end{array}
|
|
55
55
|
|
|
56
56
|
Among many important properties, for all degrees :math:`n\in{\mathbb{N}}` and for all :math:`x\in{\mathbb{R}},` the B-splines thus defined
|
|
57
57
|
|
|
@@ -18,12 +18,12 @@ class Bases:
|
|
|
18
18
|
|
|
19
19
|
.. math::
|
|
20
20
|
|
|
21
|
-
\begin{
|
|
21
|
+
\begin{array}{rcl}
|
|
22
22
|
f(x)&=&\sum_{k\in{\mathbb{Z}}}\,c[k]\,\beta^{n}(x-k)\\
|
|
23
23
|
&=&\sum_{k\in{\mathbb{Z}}}\,f(k)\,\eta^{n}(x-k)\\
|
|
24
24
|
&=&\sum_{k\in{\mathbb{Z}}}\,g[k]\,\mathring{\beta}^{n,n}(x-k)\\
|
|
25
25
|
&=&\sum_{k\in{\mathbb{Z}}}\,a[k]\,\phi^{n}(x-k).
|
|
26
|
-
\end{
|
|
26
|
+
\end{array}
|
|
27
27
|
|
|
28
28
|
In general, while the spline :math:`f` remains the same, the coefficients
|
|
29
29
|
are mutually different, with
|
|
@@ -1195,7 +1195,7 @@ def convolve_b_spline_monomial (
|
|
|
1195
1195
|
|
|
1196
1196
|
.. math::
|
|
1197
1197
|
|
|
1198
|
-
\begin{
|
|
1198
|
+
\begin{array}{rcl}
|
|
1199
1199
|
\left({\mathrm{D}}^{d}\beta^{n}*\left(\cdot\right)^{m}\right)(x)&=&
|
|
1200
1200
|
\int_{{\mathbb{R}}}\,
|
|
1201
1201
|
\frac{{\mathrm{d}}^{d}\beta^{n}(y)}{{\mathrm{d}}y^{d}}\,
|
|
@@ -1205,7 +1205,7 @@ def convolve_b_spline_monomial (
|
|
|
1205
1205
|
\left(x+\frac{n+1}{2}-k\right)^{m+n+1-d}\\
|
|
1206
1206
|
&=&\textcolor{green}{\gamma_{m}^{n}[0]+
|
|
1207
1207
|
\sum_{k=1}^{m+n+1-d}\,\gamma_{m}^{n}[k]\,x^{k}}.
|
|
1208
|
-
\end{
|
|
1208
|
+
\end{array}
|
|
1209
1209
|
|
|
1210
1210
|
Parameters
|
|
1211
1211
|
----------
|
|
@@ -1223,12 +1223,12 @@ class PeriodicSpline1D:
|
|
|
1223
1223
|
|
|
1224
1224
|
.. math::
|
|
1225
1225
|
|
|
1226
|
-
\begin{
|
|
1226
|
+
\begin{array}{rcl}
|
|
1227
1227
|
s_{1}(x)&=&\sum_{k\in{\mathbb{Z}}}\,c_{1}[{k\bmod K}]\,
|
|
1228
1228
|
\beta^{n_{1}}(x-\delta x_{1}-k)\\
|
|
1229
1229
|
s_{2}(x)&=&\sum_{k\in{\mathbb{Z}}}\,c_{2}[{k\bmod K}]\,
|
|
1230
1230
|
\beta^{n_{2}}(x-\delta x_{2}-k),
|
|
1231
|
-
\end{
|
|
1231
|
+
\end{array}
|
|
1232
1232
|
|
|
1233
1233
|
the created sum
|
|
1234
1234
|
|
|
@@ -1321,12 +1321,12 @@ class PeriodicSpline1D:
|
|
|
1321
1321
|
|
|
1322
1322
|
.. math::
|
|
1323
1323
|
|
|
1324
|
-
\begin{
|
|
1324
|
+
\begin{array}{rcl}
|
|
1325
1325
|
s_{1}(x)&=&\sum_{k\in{\mathbb{Z}}}\,c_{1}[{k\bmod K}]\,
|
|
1326
1326
|
\beta^{n_{1}}(x-\delta x_{1}-k)\\
|
|
1327
1327
|
s_{2}(x)&=&\sum_{k\in{\mathbb{Z}}}\,c_{2}[{k\bmod K}]\,
|
|
1328
1328
|
\beta^{n_{2}}(x-\delta x_{2}-k),
|
|
1329
|
-
\end{
|
|
1329
|
+
\end{array}
|
|
1330
1330
|
|
|
1331
1331
|
the created convolution result is
|
|
1332
1332
|
|
|
@@ -1413,12 +1413,12 @@ class PeriodicSpline1D:
|
|
|
1413
1413
|
|
|
1414
1414
|
.. math::
|
|
1415
1415
|
|
|
1416
|
-
\begin{
|
|
1416
|
+
\begin{array}{rcl}
|
|
1417
1417
|
s_{1}(x)&=&\sum_{k\in{\mathbb{Z}}}\,c_{1}[{k\bmod K}]\,
|
|
1418
1418
|
\beta^{n_{1}}(x-\delta x_{1}-k)\\
|
|
1419
1419
|
s_{2}(x)&=&\sum_{k\in{\mathbb{Z}}}\,c_{2}[{k\bmod K}]\,
|
|
1420
1420
|
\beta^{n_{2}}(x-\delta x_{2}-k),
|
|
1421
|
-
\end{
|
|
1421
|
+
\end{array}
|
|
1422
1422
|
|
|
1423
1423
|
the created zero-normalized cross-correlation result
|
|
1424
1424
|
:math:`f(x)\in[-1,1]` is
|
|
@@ -2355,12 +2355,12 @@ class PeriodicSpline1D:
|
|
|
2355
2355
|
|
|
2356
2356
|
.. math::
|
|
2357
2357
|
|
|
2358
|
-
\begin{
|
|
2358
|
+
\begin{array}{rcl}
|
|
2359
2359
|
f(x)&=&\sum_{k\in{\mathbb{Z}}}\,c[{k\bmod K}]\,
|
|
2360
2360
|
\beta^{n}(x-\delta x-k)\\
|
|
2361
2361
|
&=&{\mathbf{c}}^{{\mathsf{T}}}\,{\mathbf{W}}^{n}\,
|
|
2362
2362
|
{\mathbf{v}}^{n}(\chi).
|
|
2363
|
-
\end{
|
|
2363
|
+
\end{array}
|
|
2364
2364
|
|
|
2365
2365
|
There, :math:`c` are the :math:`K` spline coefficients,
|
|
2366
2366
|
:math:`{\mathbf{c}}=\left(c[{\left(k-r\right)\bmod
|
|
@@ -2461,13 +2461,13 @@ class PeriodicSpline1D:
|
|
|
2461
2461
|
|
|
2462
2462
|
.. math::
|
|
2463
2463
|
|
|
2464
|
-
\begin{
|
|
2464
|
+
\begin{array}{rcl}
|
|
2465
2465
|
\left(f(x_{0}+\frac{q}{M})\right)_{q=0}^{L\,M-1}&=&
|
|
2466
2466
|
\left(\sum_{k\in{\mathbb{Z}}}\,c[{k\bmod K}]\,
|
|
2467
2467
|
\beta^{n}(x_{0}+\frac{q}{M}-\delta x-k)\right)_{q=0}^{L\,M-1}\\
|
|
2468
2468
|
&=&\left({\mathbf{c}}_{q}^{{\mathsf{T}}}\,{\mathbf{W}}^{n}\,
|
|
2469
2469
|
{\mathbf{v}}^{n}(\chi_{x_{0}})\right)_{q=0}^{L\,M-1}.
|
|
2470
|
-
\end{
|
|
2470
|
+
\end{array}
|
|
2471
2471
|
|
|
2472
2472
|
There, :math:`L` is ``support_length``, :math:`M` is ``oversampling``,
|
|
2473
2473
|
:math:`x_{0}` is ``starting_at``, and :math:`c` are the :math:`K`
|
|
@@ -4575,12 +4575,12 @@ class PeriodicSpline1D:
|
|
|
4575
4575
|
|
|
4576
4576
|
.. math::
|
|
4577
4577
|
|
|
4578
|
-
\begin{
|
|
4578
|
+
\begin{array}{rcl}
|
|
4579
4579
|
f(x)&=&\sum_{k\in{\mathbb{Z}}}\,c[{k\bmod K}]\,
|
|
4580
4580
|
\beta^{n}(x-\delta x-k)\\
|
|
4581
4581
|
&=&{\mathbf{c}}^{{\mathsf{T}}}\,{\mathbf{W}}^{n}\,
|
|
4582
4582
|
{\mathbf{v}}^{n}(\chi).
|
|
4583
|
-
\end{
|
|
4583
|
+
\end{array}
|
|
4584
4584
|
|
|
4585
4585
|
There, :math:`c` are the :math:`K` spline coefficients,
|
|
4586
4586
|
:math:`{\mathbf{c}}=\left(c[{\left(k-r\right)\bmod
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|