Skip to content

Commit 4439639

Browse files
authored
Update README.md
1 parent 2c5fcaf commit 4439639

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ julia> Pkg.add("https://github.com/mcovalt/ConjugateGradients.jl.git")
1414

1515
## Why use ConjugateGradients.jl?
1616

17-
You probably shouldn't (thus the unregistered status of the module). There are a few great iterative solver packages available for Julia: [IterativeSolvers.jl](https://github.com/JuliaMath/IterativeSolvers.jl), [KrylovMethods.jl](https://github.com/lruthotto/KrylovMethods.jl), and [Krylov.jl](https://github.com/JuliaSmoothOptimizers/Krylov.jl).
17+
There are a few great iterative solver packages available for Julia: [IterativeSolvers.jl](https://github.com/JuliaMath/IterativeSolvers.jl), [KrylovMethods.jl](https://github.com/lruthotto/KrylovMethods.jl), and [Krylov.jl](https://github.com/JuliaSmoothOptimizers/Krylov.jl). These are all very well rounded and complete packages.
1818

19-
In those packages, calls to BLAS functions are preferred for obvious reasons. This module uses Julia's multiple dispatch functionality to decide whether to use BLAS or native Julia code to make calculations based on the type associated with the arrays. This gives greater flexibility with types not represented by floating point numbers.
19+
This package, `ConjugateGradients.jl`, is built around reducing allocations as much as possible for a particular type of problem. As far as I know, if your program will be using an iterative solver *within* another iterative process, this module will result in less allocations compared to the previously mentioned packages. Hint: take a look at [ILUZero.jl](https://github.com/mcovalt/ILUZero.jl) if this type of solver would be beneficial to your project. Combined, these packages can help reduce allocations in those hot paths.
2020

21-
In addition, `ConjugateGradients.jl` is built around reducing allocations as much as possible. As far as I know, if your program will be using an iterative solver *within* another iterative process, this module will result in less allocations compared to the previously mentioned packages.
21+
Also, in other iterative solvers, calls to BLAS functions are preferred for obvious reasons. This package uses Julia's multiple dispatch functionality to decide whether to use BLAS or native Julia code to make calculations based on the type associated with the arrays. This gives greater flexibility with types not represented by floating point numbers.
2222

2323
## How to use
2424

0 commit comments

Comments
 (0)