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.
- splinekit-0.2.2/.github/workflows/release.yml +140 -0
- splinekit-0.2.2/CMakeLists.txt +36 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/PKG-INFO +43 -34
- {splinekit-0.1.0 → splinekit-0.2.2}/README.md +11 -0
- splinekit-0.2.2/ansi_c/spline_padding/src/spline_padding.c +275 -0
- splinekit-0.2.2/ansi_c/spline_padding/src/spline_padding.h +57 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_cmake/CMakeLists.txt +15 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_cmake/spline_padding.c +275 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_cmake/spline_padding.h +56 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/libspline_padding.dylib +0 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.c +275 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.h +56 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.pbxproj +295 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/project.xcworkspace/xcuserdata/pthevena.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- splinekit-0.2.2/dev/ANSI-C/spline_padding_xcode/spline_padding.xcodeproj/xcuserdata/pthevena.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- splinekit-0.2.2/dev/Jupyter/bspline_annihilate.ipynb +133 -0
- splinekit-0.2.2/dev/Jupyter/bspline_cardinal.ipynb +108 -0
- splinekit-0.2.2/dev/Jupyter/bspline_convolve_mono.ipynb +106 -0
- splinekit-0.2.2/dev/Jupyter/bspline_dual.ipynb +110 -0
- splinekit-0.2.2/dev/Jupyter/bspline_dual_property.ipynb +137 -0
- splinekit-0.2.2/dev/Jupyter/bspline_gauss_exo.ipynb +147 -0
- splinekit-0.2.2/dev/Jupyter/bspline_hello.ipynb +112 -0
- splinekit-0.2.2/dev/Jupyter/bspline_hello_grad.ipynb +113 -0
- splinekit-0.2.2/dev/Jupyter/bspline_hello_integral.ipynb +117 -0
- splinekit-0.2.2/dev/Jupyter/bspline_inv.ipynb +111 -0
- splinekit-0.2.2/dev/Jupyter/bspline_m_scale.ipynb +125 -0
- splinekit-0.2.2/dev/Jupyter/bspline_member.ipynb +109 -0
- splinekit-0.2.2/dev/Jupyter/bspline_member_diff.ipynb +140 -0
- splinekit-0.2.2/dev/Jupyter/bspline_member_integral.ipynb +114 -0
- splinekit-0.2.2/dev/Jupyter/bspline_numeric_stability.ipynb +513 -0
- splinekit-0.2.2/dev/Jupyter/bspline_ortho.ipynb +108 -0
- splinekit-0.2.2/dev/Jupyter/bspline_ortho_property.ipynb +133 -0
- splinekit-0.2.2/dev/Jupyter/bspline_partition_mono.ipynb +104 -0
- splinekit-0.2.2/dev/Jupyter/bspline_periodic_inv.ipynb +131 -0
- splinekit-0.2.2/dev/Jupyter/bspline_poles.ipynb +115 -0
- splinekit-0.2.2/dev/Jupyter/bspline_sinc.ipynb +137 -0
- splinekit-0.2.2/dev/Jupyter/bspline_spline_poly.ipynb +103 -0
- splinekit-0.2.2/dev/Jupyter/bspline_trigo_exo.ipynb +227 -0
- splinekit-0.2.2/dev/Jupyter/bspline_vs_cos.ipynb +141 -0
- splinekit-0.2.2/dev/Jupyter/bspline_vs_erf.ipynb +130 -0
- splinekit-0.2.2/dev/Jupyter/bspline_vs_exp.ipynb +154 -0
- splinekit-0.2.2/dev/Jupyter/bspline_vs_pi_as_sum.ipynb +118 -0
- splinekit-0.2.2/dev/Jupyter/bspline_vs_pi_at0.ipynb +121 -0
- splinekit-0.2.2/dev/Jupyter/bspline_vs_sin.ipynb +150 -0
- splinekit-0.2.2/dev/Jupyter/padding_data.ipynb +254 -0
- splinekit-0.2.2/dev/Jupyter/padding_speed.ipynb +219 -0
- splinekit-0.2.2/dev/Jupyter/spline_approximation.ipynb +162 -0
- splinekit-0.2.2/dev/Jupyter/spline_at_array.ipynb +365 -0
- splinekit-0.2.2/dev/Jupyter/spline_at_scalar.ipynb +1107 -0
- splinekit-0.2.2/dev/Jupyter/spline_bounds.ipynb +138 -0
- splinekit-0.2.2/dev/Jupyter/spline_evaluation_speed.ipynb +158 -0
- splinekit-0.2.2/dev/Jupyter/spline_interpolation.ipynb +159 -0
- splinekit-0.2.2/dev/Jupyter/spline_polynomials.ipynb +153 -0
- splinekit-0.2.2/dev/Jupyter/spline_random_1d.ipynb +170 -0
- splinekit-0.2.2/dev/Jupyter/spline_random_2d.ipynb +376 -0
- splinekit-0.2.2/dev/Wolfram/Bspline Poles.nb +2047 -0
- splinekit-0.2.2/dev/Wolfram/IntervalChecks.nb +2610 -0
- splinekit-0.2.2/dev/Wolfram/PeriodicSplinesChecks.nb +11404 -0
- splinekit-0.2.2/dev/Wolfram/SplinePaddingChecks.nb +7539 -0
- splinekit-0.2.2/dev/Wolfram/Test BSplines.nb +3205 -0
- splinekit-0.2.2/dev/Wolfram/Test PeriodicNonuniformPiecewise.nb +453 -0
- splinekit-0.2.2/dev/Wolfram/Test PeriodicSpline1D.nb +14686 -0
- splinekit-0.2.2/dev/Wolfram/Test SplinePadding.nb +3861 -0
- splinekit-0.2.2/dev/Wolfram/Test SplineUtilities.nb +2571 -0
- splinekit-0.2.2/dev/Wolfram/Verify doc.nb +3658 -0
- splinekit-0.2.2/dev/Wolfram/rescued Test SplinePadding.nb +3935 -0
- splinekit-0.2.2/dev/cpJupyter.sh +6 -0
- splinekit-0.2.2/dev/gzJupyter.sh +10 -0
- splinekit-0.2.2/dev/sk.numbers +0 -0
- splinekit-0.2.2/dev/zipJupyter.sh +11 -0
- splinekit-0.2.2/docs/bases/01_bases.rst +12 -0
- splinekit-0.2.2/docs/bases/index.rst +14 -0
- splinekit-0.2.2/docs/bsplines/01_bsplines.rst +12 -0
- splinekit-0.2.2/docs/bsplines/index.rst +14 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_bases.rst +219 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_inverse.rst +59 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_m_scale.rst +23 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_members.rst +38 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_numeric_stability.ipynb.gz +0 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_poles.rst +115 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_stability.rst +264 -0
- splinekit-0.2.2/docs/demos/bspline/bspline_vs_pi.rst +36 -0
- splinekit-0.2.2/docs/demos/bspline/hello_bspline.rst +38 -0
- splinekit-0.2.2/docs/demos/bspline/index.rst +31 -0
- splinekit-0.2.2/docs/demos/bspline/spline_engineer_func.rst +103 -0
- splinekit-0.2.2/docs/demos/bspline/spline_vs_poly.rst +108 -0
- splinekit-0.2.2/docs/demos/index.rst +24 -0
- splinekit-0.2.2/docs/demos/padding/index.rst +22 -0
- splinekit-0.2.2/docs/demos/padding/padding.rst +341 -0
- splinekit-0.2.2/docs/demos/padding/padding_speed.ipynb.gz +0 -0
- splinekit-0.2.2/docs/demos/spline1d/bounds.rst +112 -0
- splinekit-0.2.2/docs/demos/spline1d/constructors.rst +68 -0
- splinekit-0.2.2/docs/demos/spline1d/evaluation.rst +222 -0
- splinekit-0.2.2/docs/demos/spline1d/index.rst +27 -0
- splinekit-0.2.2/docs/demos/spline1d/polynomials.rst +138 -0
- splinekit-0.2.2/docs/demos/spline1d/random1d.rst +28 -0
- splinekit-0.2.2/docs/demos/spline1d/random2d.rst +43 -0
- splinekit-0.2.2/docs/demos/spline1d/spline_evaluation_speed.ipynb.gz +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-numbers.rst +8 -8
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-polynomials.rst +9 -9
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-splines.rst +10 -10
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/glossary/glossary-terminology.rst +10 -10
- splinekit-0.2.2/docs/glossary/index.rst +13 -0
- splinekit-0.2.2/docs/index.rst +46 -0
- splinekit-0.2.2/docs/installation/index.rst +5 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/01_bounded.rst +7 -7
- splinekit-0.2.2/docs/interval/bounded/02_open.rst +12 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/03_open_closed.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/04_closed.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/05_closed_open.rst +7 -7
- splinekit-0.2.2/docs/interval/bounded/index.rst +18 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/degenerate/01_degenerate.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/degenerate/02_singleton.rst +7 -7
- splinekit-0.2.2/docs/interval/degenerate/index.rst +15 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/01_half_bounded.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/02_above.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/03_not_below.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/04_not_above.rst +7 -7
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/05_below.rst +7 -7
- splinekit-0.2.2/docs/interval/half_bounded/index.rst +18 -0
- splinekit-0.2.2/docs/interval/index.rst +14 -0
- splinekit-0.2.2/docs/interval/interval/01_interval.rst +12 -0
- splinekit-0.2.2/docs/interval/interval/index.rst +15 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/universal/01_universal.rst +7 -7
- splinekit-0.2.2/docs/interval/universal/02_empty.rst +12 -0
- splinekit-0.2.2/docs/interval/universal/03_rr.rst +12 -0
- splinekit-0.2.2/docs/interval/universal/index.rst +16 -0
- splinekit-0.2.2/docs/periodic_nonuniform_piecewise/01_periodic_nonuniform_piecewise.rst +12 -0
- splinekit-0.2.2/docs/periodic_nonuniform_piecewise/index.rst +14 -0
- splinekit-0.2.2/docs/periodic_spline_1d/01_periodic_spline_1d.rst +12 -0
- splinekit-0.2.2/docs/periodic_spline_1d/index.rst +17 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/matplotlib-color.rst +3 -2
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/matplotlib-linestyle.rst +3 -2
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/matplotlib-marker.rst +28 -27
- splinekit-0.2.2/docs/spline_padding/01_spline_padding.rst +12 -0
- splinekit-0.2.2/docs/spline_padding/index.rst +16 -0
- splinekit-0.2.2/docs/spline_utilities/01_spline_utilities.rst +12 -0
- splinekit-0.2.2/docs/spline_utilities/index.rst +16 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/pyproject.toml +11 -11
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/spline_padding.py +75 -75
- splinekit-0.2.2/temp/bspline_stability.py +143 -0
- splinekit-0.1.0/.github/workflows/release.yml +0 -140
- splinekit-0.1.0/docs/bases/01_bases.rst +0 -12
- splinekit-0.1.0/docs/bases/index.rst +0 -14
- splinekit-0.1.0/docs/bsplines/01_bsplines.rst +0 -12
- splinekit-0.1.0/docs/bsplines/index.rst +0 -14
- splinekit-0.1.0/docs/glossary/index.rst +0 -13
- splinekit-0.1.0/docs/index.rst +0 -45
- splinekit-0.1.0/docs/installation/index.rst +0 -5
- splinekit-0.1.0/docs/interval/bounded/02_open.rst +0 -12
- splinekit-0.1.0/docs/interval/bounded/index.rst +0 -18
- splinekit-0.1.0/docs/interval/degenerate/index.rst +0 -15
- splinekit-0.1.0/docs/interval/half_bounded/index.rst +0 -18
- splinekit-0.1.0/docs/interval/index.rst +0 -14
- splinekit-0.1.0/docs/interval/interval/01_interval.rst +0 -12
- splinekit-0.1.0/docs/interval/interval/index.rst +0 -15
- splinekit-0.1.0/docs/interval/universal/02_empty.rst +0 -12
- splinekit-0.1.0/docs/interval/universal/03_rr.rst +0 -12
- splinekit-0.1.0/docs/interval/universal/index.rst +0 -16
- splinekit-0.1.0/docs/jupyter_labs/bspline_bases.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_interactive_shape.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_inverse_sequence.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_m_scale.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_numeric_stability.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_poles.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_random1d.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_random2d.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_static_shape.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_vs_exponentials.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_vs_pi.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_vs_polynomials.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/bspline_vs_trigonometry.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/index.rst +0 -84
- splinekit-0.1.0/docs/jupyter_labs/padding.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_bounds.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_creator.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_evaluate.ipynb.gz +0 -0
- splinekit-0.1.0/docs/jupyter_labs/periodicspline1d_polynomials.ipynb.gz +0 -0
- splinekit-0.1.0/docs/periodic_nonuniform_piecewise/01_periodic_nonuniform_piecewise.rst +0 -12
- splinekit-0.1.0/docs/periodic_nonuniform_piecewise/index.rst +0 -14
- splinekit-0.1.0/docs/periodic_spline_1d/01_periodic_spline_1d.rst +0 -12
- splinekit-0.1.0/docs/periodic_spline_1d/index.rst +0 -15
- splinekit-0.1.0/docs/spline_padding/01_spline_padding.rst +0 -12
- splinekit-0.1.0/docs/spline_padding/index.rst +0 -14
- splinekit-0.1.0/docs/spline_utilities/01_spline_utilities.rst +0 -12
- splinekit-0.1.0/docs/spline_utilities/index.rst +0 -14
- splinekit-0.1.0/docs/spline_utilities/noxfile.py +0 -18
- {splinekit-0.1.0 → splinekit-0.2.2}/.github/workflows/deploy-docs.yml +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/.github/workflows/test.yml +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/.gitignore +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/.jupyterlite.doit.db +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/.virtual_documents/docs/tutorial/dummy.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/LICENSE +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/api/translations/all.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/api/translations/en.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/api/workspaces/all.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/bootstrap.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/config-utils.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/favicon.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/consoles/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/doc/tree/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/doc/workspaces/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/favicon.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/edit/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/install.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/package.json.orig +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/schemas/jupyterlab-jupytext/plugin.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/48.0570848d2b31a5354b7d.js.LICENSE.txt +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/509.d51a8122d1920ac82323.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/720.094c38d70b1dec0ceea7.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/remoteEntry.94495aac41d2fef6ad41.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/style.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab-jupytext/static/third-party-licenses.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/install.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/568.1e2faa2ba0bbe59c4780.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/747.67662283a5707eeb4d4c.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/remoteEntry.5cbb9d2323598fbda535.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/style.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/extensions/jupyterlab_pygments/static/third-party-licenses.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/icon-120x120.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/icon-512x512.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/jupyterlite.schema.v0.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/favicon.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/tree/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/lab/workspaces/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/manifest.webmanifest +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/favicon.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/notebooks/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/repl/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/service-worker.js +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-busy-1.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-busy-2.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-busy-3.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-file.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-notebook.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon-terminal.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/static/favicons/favicon.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/favicon.ico +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/index.html +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/jupyter-lite.ipynb +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/jupyter-lite.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/_output/tree/package.json +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/.jupyterlite.doit.db +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/_static/custom.css +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/bases/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/bsplines/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/conf.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/environment.yml +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/bounded/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/degenerate/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/half_bounded/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/interval/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/interval/universal/noxfile.py +0 -0
- {splinekit-0.1.0/docs/jupyter_labs → splinekit-0.2.2/docs}/noxfile.py +0 -0
- {splinekit-0.1.0/docs → splinekit-0.2.2/docs/periodic_nonuniform_piecewise}/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m00.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m01.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m02.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m03.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m04.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m05.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m06.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m07.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m08.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m09.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m10.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m11.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m12.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m13.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m14.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m15.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m16.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m17.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m18.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m19.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m20.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m21.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m22.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m23.png +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/docs/periodic_spline_1d/m24.png +0 -0
- {splinekit-0.1.0/docs/periodic_nonuniform_piecewise → splinekit-0.2.2/docs/periodic_spline_1d}/noxfile.py +0 -0
- {splinekit-0.1.0/docs/periodic_spline_1d → splinekit-0.2.2/docs/spline_padding}/noxfile.py +0 -0
- {splinekit-0.1.0/docs/spline_padding → splinekit-0.2.2/docs/spline_utilities}/noxfile.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/__init__.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/bases.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/bsplines.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/__init__.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/_known_intervals.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/above.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/below.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/bounded.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/closed.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/closed_open.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/degenerate.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/empty.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/half_bounded.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/interval.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/mypy.ini +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/not_above.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/not_below.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/open.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/open_closed.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/rr.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/singleton.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/interval/universal.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/mypy.ini +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/periodic_nonuniform_piecewise.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/periodic_spline_1d.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/src/splinekit/spline_utilities.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_bsplines.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_periodic_nonuniform_piecewise.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_periodic_spline_1d.py +0 -0
- {splinekit-0.1.0 → splinekit-0.2.2}/tests/test_spline_padding.py +0 -0
- {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.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: A set of functions and classes to handle periodic 1D polynomial splines
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
Requires-Dist:
|
|
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:
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
40
|
-
Requires-Dist: sphinx-
|
|
41
|
-
Requires-Dist: sphinx-
|
|
42
|
-
Requires-Dist: sphinx-
|
|
43
|
-
Requires-Dist: sphinx-
|
|
44
|
-
Requires-Dist: sphinx-
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist:
|
|
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:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Provides-Extra:
|
|
51
|
-
Requires-Dist:
|
|
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 */
|