Global nonlinear optimization with automatic differentiation
GADfit is an implementation of global nonlinear curve fitting, based on a modified Levenberg-Marquardt algorithm. Global fitting refers to fitting many datasets simultaneously with some parameters shared among the datasets. The fitting procedure is very fast and accurate thanks to the use of automatic differentiation. The model curves (fitting functions) can be of essentially arbitrary complexity. This includes any nonlinear combination of elementary and special functions, single and/or double integrals, and any control flow statement allowed by the programming language. See the latest user guide.
- Modified Levenberg-Marquardt
- Multi-curve fitting with shared parameters
- Automatic differentiation
- MPI, Scalapack (C++) and Coarray (Fortran) parallelism
- The official versioned releases are available here.
- The latest stable development code is available here.
- For importing the repository, issue
git clone /~https://github.com/raullaasner/gadfit.git
- See INSTALL.md for quick installation instructions.
- See the user guide for detailed instructions (recommended).
- C++ Example driver code
- C++ output
- Fortran example driver code
- Fortran example fitting function
- Fortran output
See the user guide, Section 1.1.
Details about theory, implementation, configuring and compilation of GADfit, and usage are found in the user guide.
A good place to bring up any issues is /~https://github.com/raullaasner/gadfit/issues.
This project is distributed under the terms of Apache License 2.0. See LICENSE in the root directory of the project or go to http://www.apache.org/licenses/LICENSE-2.0.