Add a C interface for Krylov.jl with shared libraries
@dpo
Since the JuliaCon 2021, PackageCompiler.jl is able to generate shared libraries for Julia packages.
I tested it with three Krylov methods (CG, LSMR and CRAIG).
It's a basic interface but it works fine and could be a nice feature if we do an article about Krylov.jl before the end of the thesis.
Codecov Report
Merging #403 (6316e3f) into main (f4c83b1) will decrease coverage by
0.02%. The diff coverage isn/a.
@@ Coverage Diff @@
## main #403 +/- ##
==========================================
- Coverage 97.52% 97.50% -0.03%
==========================================
Files 32 32
Lines 4370 4448 +78
==========================================
+ Hits 4262 4337 +75
- Misses 108 111 +3
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/lsqr.jl | 98.26% <0.00%> (-1.74%) |
:arrow_down: |
| src/cgls.jl | 100.00% <0.00%> (ø) |
|
| src/cgne.jl | 100.00% <0.00%> (ø) |
|
| src/crls.jl | 100.00% <0.00%> (ø) |
|
| src/crmr.jl | 100.00% <0.00%> (ø) |
|
| src/dqgmres.jl | 100.00% <0.00%> (ø) |
|
| src/minres_qlp.jl | 100.00% <0.00%> (ø) |
|
| src/krylov_solvers.jl | 100.00% <0.00%> (ø) |
|
| src/diom.jl | 94.39% <0.00%> (+0.45%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update f4c83b1...6316e3f. Read the comment docs.
That's really interesting. It looks like a significant amount of new code...
The inevitable question is going to be: how does the performance compare to that of a pure C implementation?
That's really interesting. It looks like a significant amount of new code... The inevitable question is going to be: how does the performance compare to that of a pure C implementation?
If it's well precompiled, It should be competitive with a pure C implementation. We need an intern :)
It will be a lot of work to support a C interface... I close this pull request.