jipolanco / BSplineKit.jl

A collection of B-spline tools in Julia
https://jipolanco.github.io/BSplineKit.jl/dev/
MIT License
50 stars 9 forks source link

Much faster evaluation of basis functions #28

Closed jipolanco closed 2 years ago

jipolanco commented 3 years ago

UPDATE: this PR is replaced by #35. The performance is the same, but the implementation in #35 is more complete (derivatives are also included) while also being more readable.


Optimise evaluation of B-splines and recombined basis functions, following de Boor's algorithms.

Note that this doesn't affect evaluation of splines, which are already very fast (also using de Boor's algorithm).

This affects other operations such as the computation of Galerkin matrices and projections via quadratures, which are much faster now.

To do:

codecov-commenter commented 3 years ago

Codecov Report

Merging #28 (f7a86e2) into master (229ccb5) will decrease coverage by 0.05%. The diff coverage is 95.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #28      +/-   ##
==========================================
- Coverage   94.99%   94.94%   -0.06%     
==========================================
  Files          27       27              
  Lines        1179     1246      +67     
==========================================
+ Hits         1120     1183      +63     
- Misses         59       63       +4     
Impacted Files Coverage Δ
src/Splines/Splines.jl 100.00% <ø> (ø)
src/Splines/spline.jl 97.89% <ø> (-0.21%) :arrow_down:
src/BSplines/basis_function.jl 80.41% <84.00%> (+1.24%) :arrow_up:
src/BSplines/knots.jl 100.00% <100.00%> (ø)
src/Galerkin/quadratures.jl 100.00% <100.00%> (ø)
src/Recombinations/bases.jl 96.87% <100.00%> (+1.75%) :arrow_up:
src/Recombinations/matrices.jl 95.02% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 229ccb5...f7a86e2. Read the comment docs.