{"id":18840193,"url":"https://github.com/fortran-lang/minpack","last_synced_at":"2026-01-26T02:31:45.743Z","repository":{"id":39889307,"uuid":"408018126","full_name":"fortran-lang/minpack","owner":"fortran-lang","description":"Modernized Minpack: for solving nonlinear equations and nonlinear least squares problems","archived":false,"fork":false,"pushed_at":"2024-07-12T15:22:54.000Z","size":12164,"stargazers_count":119,"open_issues_count":45,"forks_count":25,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-01-21T13:38:02.716Z","etag":null,"topics":["fortran","fortran-package-manager","least-squares","levenberg-marquardt","minpack","nonlinear-equation-solver"],"latest_commit_sha":null,"homepage":"https://fortran-lang.github.io/minpack/","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fortran-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-19T03:02:30.000Z","updated_at":"2026-01-21T08:57:27.000Z","dependencies_parsed_at":"2023-09-25T00:41:17.179Z","dependency_job_id":"d0ab2102-5a2e-4228-86d5-7adfc46e7ae9","html_url":"https://github.com/fortran-lang/minpack","commit_stats":{"total_commits":146,"total_committers":8,"mean_commits":18.25,"dds":0.3904109589041096,"last_synced_commit":"c0b5aea9fcd2b83865af921a7a7e881904f8d3c2"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fortran-lang/minpack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortran-lang%2Fminpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortran-lang%2Fminpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortran-lang%2Fminpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortran-lang%2Fminpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fortran-lang","download_url":"https://codeload.github.com/fortran-lang/minpack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortran-lang%2Fminpack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28765037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T02:25:41.078Z","status":"ssl_error","status_checked_at":"2026-01-26T02:24:28.809Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fortran","fortran-package-manager","least-squares","levenberg-marquardt","minpack","nonlinear-equation-solver"],"created_at":"2024-11-08T02:45:20.547Z","updated_at":"2026-01-26T02:31:45.722Z","avatar_url":"https://github.com/fortran-lang.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Minpack](media/logo.png)\n============\n\nModernized Minpack\n\n![Build Status](https://github.com/fortran-lang/minpack/actions/workflows/CI.yml/badge.svg)\n\n### Description\n\n*Minpack* includes software for solving nonlinear equations and\nnonlinear least squares problems.  Five algorithmic paths each include\na core subroutine and an easy-to-use driver.  The algorithms proceed\neither from an analytic specification of the Jacobian matrix or\ndirectly from the problem functions.  The paths include facilities for\nsystems of equations with a banded Jacobian matrix, for least squares\nproblems with a large amount of data, and for checking the consistency\nof the Jacobian matrix with the functions.\n\nThis version is a modernization of the original Fortran 77 code.\nModifications include:\n\n* Conversion from fixed (`.f`) to free-form (`.f90`) source.\n* Modified the tests so they can be automatically run in the [CI](https://github.com/fortran-lang/minpack/actions)\n* Implementation of C API for all procedures\n* Python bindings to the *minpack* C API\n\nFurther updates are planned...\n\n\n### Installation\n\nTo build this project from the source code in this repository you need to have\na Fortran compiler supporting Fortran 2008 and one of the supported build systems:\n\n- [fpm](https://fpm.fortran-lang.org) version 0.3.0 or newer\n- [meson](https://mesonbuild.com) version 0.55 or newer, with\n  a build-system backend, *i.e.* [ninja](https://ninja-build.org) version 1.7 or newer\n\nThe project is hosted on GitHub and can be obtained by cloning it with\n\n```\ngit clone https://github.com/fortran-lang/minpack\ncd minpack\n```\n\n\n#### Building with fpm\n\nInvoke fpm in the project root with\n\n```\nfpm build\n```\n\nTo run the testsuite use\n\n```\nfpm test\n```\n\nYou can access the *minpack* program programs using the run subcommand\n\n```\nfpm run --example --list\n```\n\nTo use *minpack* in your project include it as dependency in your package manifest\n\n```toml\n[dependencies]\nminpack.git = \"https://github.com/fortran-lang/minpack\"\n```\n\n\n#### Building with meson\n\nOptional dependencies are\n\n\nSetup a build with\n\n```\nmeson setup _build\n```\n\nThe following build options can be adjusted:\n\n- the Fortran compiler can be selected by setting the ``FC`` environment variable.\n- the installation location can be set with the ``--prefix=/path/to/install`` option\n- with the ``-Dpython=true`` option the Python bindings can be built\n\n  - Python 3.6  or newer is required with the CFFI package installed\n  - the actual Python version can be selected using ``-Dpython_version=/path/to/python``\n\nTo compile and run the projects testsuite use\n\n```\nmeson test -C _build --print-errorlogs\n```\n\nIf the testsuite passes you can install with\n\n```\nmeson install -C _build\n```\n\nThis might require administrator access depending on the chosen install prefix.\n*Minpack* should now be available on your system, you can check by using the *pkg-config* tool\n\n```\npkg-config --modversion minpack\n```\n\nTo include *minpack* in your project add the following wrap file to your *subprojects* directory:\n\n```ini\n[wrap-git]\ndirectory = minpack\nurl = https://github.com/fortran-lang/minpack\nrevision = head\n```\n\nYou can retrieve the dependency from the wrap fallback with\n\n```meson\nminpack_dep = dependency('minpack', fallback: ['minpack', 'minpack_dep'])\n```\n\nand add it as dependency to your targets.\n\n\n#### Supported compilers\n\nThe following compilers are known to work with *minpack*.\n\n| Compiler | Version | Platform | Architecture | Minpack version |\n| --- | --- | --- | --- | --- |\n| GCC | 10.2 | Ubuntu 20.04 | x86\\_64 | latest |\n| GCC | 10.2 | MacOS 11 | x86\\_64 | latest |\n| GCC/MinGW | 10.3 | Windows Server 2022 | x86\\_64 | latest |\n| Intel | 2021.5.0 | Manjaro Linux | x86\\_64 | [fa4bcbd] |\n| Intel LLVM | 2022.0.0 | Manjaro Linux | x86\\_64 | [fa4bcbd] |\n| NAG | 7.1 | RHEL | x86\\_64 | [fa4bcbd] |\n\n[fa4bcbd]: https://github.com/fortran-lang/minpack/tree/fa4bcbdc7a926a3607e8ff5397ca356a74c50d5a\n\nThe combinations annotated with *latest* are tested continuously for this project, for all other results the last commit or tag where this behavior was verified is linked.\nA list of tested compilers which are currently not working or only partially working and the respective issue are listed below.\n\n| Compiler | Version | Platform | Architecture | Status |\n| --- | --- | --- | --- | --- |\n| GCC | 11.1 | MacOS 12 | Arm64 | C-API not supported |\n| Nvidia HPC SDK | 22.3 | Manjaro Linux | x86\\_64 | Unit tests are failing |\n\nPlease share your experience with successful and failing builds for compiler/platform/architecture combinations not covered above.\n\n\n### Usage\n\n*Minpack* provides a series of solves for systems of nonlinear equations and nonlinear least squares problems.\nTo select the approriate solver for your problem checkout the diagrams below.\n\n*Decision tree for systems of nonlinear equations*\n\n```mermaid\nflowchart TB\n\tstart[Is the Jacobian matrix available?]\n\tstart--Yes--\u003emiddle1[Is flexibility required?]\n\tstart--No--\u003emiddle2[Is flexibility required?]\n\tmiddle1--Yes--\u003eb1[\u003ca href='https://fortran-lang.github.io/minpack/proc/hybrj.html'\u003ehybrj\u003c/a\u003e]\n\tmiddle1--No--\u003eb2[\u003ca href='https://fortran-lang.github.io/minpack/proc/hybrj1.html'\u003ehybrj1\u003c/a\u003e]\n\tmiddle2--Yes--\u003eb3[\u003ca href='https://fortran-lang.github.io/minpack/proc/hybrd.html'\u003ehybrd\u003c/a\u003e]\n\tmiddle2--No--\u003eb4[\u003ca href='https://fortran-lang.github.io/minpack/proc/hybrd1.html'\u003ehybrd1\u003c/a\u003e]\n```\n\n*Decision tree for nonlinear least squares problems*\n\n```mermaid\nflowchart TB\n\tstart[Is the Jacobian matrix available?]\n\tstart--Yes--\u003em1[Is storage limited?]\n\tstart--No--\u003em2[Is flexibility required?]\n\tm1--Yes--\u003eml1[Is flexibility required?]\n\tm1--No--\u003eml2[Is flexibility required?]\n\tml1--Yes--\u003eb1[\u003ca href='https://fortran-lang.github.io/minpack/proc/lmstr.html'\u003elmstr\u003c/a/\u003e]\n\tml1--No--\u003eb2[\u003ca href='https://fortran-lang.github.io/minpack/proc/lmstr1.html'\u003elmstr1\u003c/a/\u003e]\n\tml2--Yes--\u003eb3[\u003ca href='https://fortran-lang.github.io/minpack/proc/lmder.html'\u003elmder\u003c/a/\u003e]\n\tml2--No--\u003eb4[\u003ca href='https://fortran-lang.github.io/minpack/proc/lmder1.html'\u003elmder1\u003c/a/\u003e]\n\tm2--Yes--\u003emr1[\u003ca href='https://fortran-lang.github.io/minpack/proc/lmdif.html'\u003elmdif\u003c/a/\u003e]\n\tm2--No--\u003emr2[\u003ca href='https://fortran-lang.github.io/minpack/proc/lmdif1.html'\u003elmdif1\u003c/a/\u003e]\n```\n\nIn Fortran projects the above procedures can be made available by including the ``minpack_module``.\nExamples can be found in the [example](./example) directory.\n\nTo use *minpack* in non-Fortran projects which are compatible with C checkout the [``minpack.h``](./include/minpack.h) header for the available symbols and callback function signatures.\nPython bindings are available and documented in the [``python``](./python) subdirectory of this project.\n\n\n### Documentation\n\n * The API documentation for the latest default branch can be found [here](https://fortran-lang.github.io/minpack/).  This is generated by processing the source files with [FORD](https://github.com/Fortran-FOSS-Programmers/ford).\n\n\n### License\n\nThe Minpack source code and related files and documentation are distributed under a permissive free software [license](https://github.com/fortran-lang/minpack/blob/HEAD/LICENSE.txt) (BSD-style).\n\n\n### History\n\nMinpack has been developed in 1980 by Jorge J. Moré, Burton S. Garbow, Kenneth\nE.  Hillstrom and other contributors as listed on page 8 of the [User Guide for\nMINPACK-1](http://cds.cern.ch/record/126569/files/CM-P00068642.pdf).\n\nSince 2012 Ondřej Čertík has maintained a GitHub repository for minpack with\nmany contributions from Carlos Une and Zuo Zhihua.\n\nIn 2021 Jacob Williams started a new minpack repository at GitHub and\ntranslated all files from fixed form to free form and other modernizations.\n\nWe have discussed at https://github.com/fortran-lang/minpack/issues/8 which\nversion to use as the community maintained fortran-lang version and decided to\nuse the latter repository, which became the fortran-lang version. We have\nbeen porting improvements from the former repository over to the new fortran-lang repository.\n\n\n### Contributors\n\nMany people have contributed to Minpack over the years:\n\n* Jorge J. Moré, Burton S. Garbow, Kenneth E.  Hillstrom and other contributors\n  as listed on page 8 of the [User Guide for MINPACK-1](http://cds.cern.ch/record/126569/files/CM-P00068642.pdf).\n* Ondřej Čertík\n* Carlos Une\n* Zuo Zhihua\n* Jacob Williams\n* Sebastian Ehlert\n\n\n### See also\n\n  * [nlesolver-fortran](https://github.com/jacobwilliams/nlesolver-fortran)\n\n\n### References\n  * Original sourcecode from: [Netlib](https://www.netlib.org/minpack/)\n  * J. J. Moré, B. S. Garbow, and K. E. Hillstrom, [User Guide for MINPACK-1](http://cds.cern.ch/record/126569/files/CM-P00068642.pdf), Argonne National Laboratory Report ANL-80-74, Argonne, Ill., 1980.\n  * J. J. Moré, D. C. Sorensen, K. E. Hillstrom, and B. S. Garbow, The MINPACK Project, in Sources and Development of Mathematical Software, W. J. Cowell, ed., Prentice-Hall, pages 88-111, 1984.\n  * M. J. D. Powell, A Hybrid Method for Nonlinear Equations. Numerical Methods for Nonlinear Algebraic Equations, P. Rabinowitz, editor. Gordon and Breach, 1970.\n  * Jorge J. More, The Levenberg-Marquardt Algorithm, Implementation and Theory. Numerical Analysis, G. A. Watson, editor. Lecture Notes in Mathematics 630, Springer-Verlag, 1977.\n  * [MINPACK-2](https://ftp.mcs.anl.gov/pub/MINPACK-2/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortran-lang%2Fminpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffortran-lang%2Fminpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortran-lang%2Fminpack/lists"}