https://github.com/emmt/conjugategradient.jl
The conjugate gradient algorithm for Julia.
https://github.com/emmt/conjugategradient.jl
Last synced: 3 months ago
JSON representation
The conjugate gradient algorithm for Julia.
- Host: GitHub
- URL: https://github.com/emmt/conjugategradient.jl
- Owner: emmt
- License: other
- Created: 2020-12-06T11:34:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-02T16:47:34.000Z (about 2 years ago)
- Last Synced: 2025-01-29T05:41:39.671Z (over 1 year ago)
- Language: Julia
- Size: 29.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Linear conjugate gradient algorithm for Julia
[](https://github.com/emmt/ConjugateGradient.jl/actions/workflows/CI.yml?query=branch%3Amaster)
[](https://ci.appveyor.com/project/emmt/ConjugateGradient-jl)
[](https://codecov.io/gh/emmt/ConjugateGradient.jl)
This [Julia](https://julialang.org/) package provides an implementation of the
(linear) conjugate gradient algorithm, possibly with a pre-conditioner.
`ConjugateGradient` exploits
[`NumOptBase`](https://github.com/emmt/NumOptBase.jl)to be as general as
possible without sacrificing performances.
One of the requirements is to avoid allocating resources on every call so that
the method can be used for real-time applications without the risk of being
interrupted by the garbage collector. To achieve this, the implemented
algorithm has all workspace arrays stored in a context provided by the caller.
This context can be created once and used as many times as wanted (for solving
problems of the same size and type).
The implemented algorithm is very flexible in the type of variables and
operators of the problem and implements a number of possible criteria for
stopping the iterations.
## Installation
The easiest way to install `ConjugateGradient.jl` is via Julia registry
[`EmmtRegistry`](https://github.com/emmt/EmmtRegistry):
```julia
using Pkg
pkg"registry add https://github.com/emmt/EmmtRegistry"
pkg"add ConjugateGradient"
```