Closed jipolanco closed 3 years ago
Merging #15 (d00c908) into master (34fbbac) will increase coverage by
0.45%
. The diff coverage is97.16%
.
@@ Coverage Diff @@
## master #15 +/- ##
==========================================
+ Coverage 91.81% 92.26% +0.45%
==========================================
Files 18 19 +1
Lines 855 957 +102
==========================================
+ Hits 785 883 +98
- Misses 70 74 +4
Impacted Files | Coverage Δ | |
---|---|---|
src/Collocation/matrix.jl | 97.00% <97.00%> (ø) |
|
src/Collocation/Collocation.jl | 89.28% <100.00%> (+0.82%) |
:arrow_up: |
src/Interpolations/Interpolations.jl | 97.43% <100.00%> (-0.13%) |
:arrow_down: |
src/Splines/spline.jl | 96.84% <0.00%> (-1.06%) |
:arrow_down: |
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 34fbbac...d00c908. Read the comment docs.
This PR adds a port of the LU factorisation by de Boor, which avoids pivoting thanks to the total positivity property of banded collocation matrices used for spline calculations.
This allows to reduce memory usage of the factorisation, since there is no need to allocate extra bands as in the pivoted implementation of BandedMatrices / LAPACK. The factorisation itself seems to be much faster as well.
The implementation is directly based off the Fortran 90 version of de Boor's FORTRAN77 code, made by John Burkardt.
Things to do:
CollocationMatrix
as aBandedMatrix
wrapper.lu_no_pivot!
to justLinearAlgebra.lu!
, making sure thatpivot = Val(false)
.lu
(without the!
).collocation_matrix
should return aCollocationMatrix
, maybe with an optional parameter allowing non-square matrices (which should be regular sparse matrices?).pivot = Val(false)
option is not currently implemented?