{"id":18847759,"url":"https://github.com/jacobwilliams/lbfgsb","last_synced_at":"2026-01-27T06:35:54.934Z","repository":{"id":170058699,"uuid":"625305986","full_name":"jacobwilliams/lbfgsb","owner":"jacobwilliams","description":"Modern Fortran Refactoring of L-BFGS-B Nonlinear Optimization Code","archived":false,"fork":false,"pushed_at":"2025-03-19T18:10:21.000Z","size":1393,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-31T17:32:36.308Z","etag":null,"topics":["bfgs","bfgs-algorithm","constrained-optimization","fortran","fortran-package-manager","lbfgsb","lbfgsb-solver","numerical-optimization"],"latest_commit_sha":null,"homepage":"","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/jacobwilliams.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,"zenodo":null}},"created_at":"2023-04-08T17:47:48.000Z","updated_at":"2025-03-19T18:08:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"90ed341e-beb4-44cb-98cf-576608e79776","html_url":"https://github.com/jacobwilliams/lbfgsb","commit_stats":{"total_commits":39,"total_committers":1,"mean_commits":39.0,"dds":0.0,"last_synced_commit":"f0392ed765c53012fa8a54b9c68e550c9cdbf417"},"previous_names":["jacobwilliams/lbfgsb"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jacobwilliams/lbfgsb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobwilliams%2Flbfgsb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobwilliams%2Flbfgsb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobwilliams%2Flbfgsb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobwilliams%2Flbfgsb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacobwilliams","download_url":"https://codeload.github.com/jacobwilliams/lbfgsb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacobwilliams%2Flbfgsb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28806499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T06:25:51.065Z","status":"ssl_error","status_checked_at":"2026-01-27T06:25:50.640Z","response_time":168,"last_error":"SSL_read: 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":["bfgs","bfgs-algorithm","constrained-optimization","fortran","fortran-package-manager","lbfgsb","lbfgsb-solver","numerical-optimization"],"created_at":"2024-11-08T03:09:33.303Z","updated_at":"2026-01-27T06:35:54.919Z","avatar_url":"https://github.com/jacobwilliams.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"![LBFGSB](media/logo.png)\n============\n\nThis is a modern Fortran refactoring of the [L-BFGS-B](http://users.iems.northwestern.edu/~nocedal/lbfgsb.html) limited memory code for solving bound constrained optimization problems [L-BFGS-B version 3.0, march, 2011].\n\n**This is a work in progress.**\n\n[![Language](https://img.shields.io/badge/-Fortran-734f96?logo=fortran\u0026logoColor=white)](https://github.com/topics/fortran)\n[![GitHub release](https://img.shields.io/github/release/jacobwilliams/lbfgsb.svg?style=plastic)](https://github.com/jacobwilliams/lbfgsb/releases/latest)\n[![Build Status](https://github.com/jacobwilliams/lbfgsb/actions/workflows/CI.yml/badge.svg)](https://github.com/jacobwilliams/lbfgsb/actions)\n[![codecov](https://codecov.io/gh/jacobwilliams/lbfgsb/branch/master/graph/badge.svg?token=BHtd51oUTE)](https://codecov.io/gh/jacobwilliams/lbfgsb)\n\n### Compiling\n\nThe library can be compiled with recent versions the Intel Fortran Compiler and GFortran (and presumably any other Fortran compiler that supports modern standards).\n\nA `fpm.toml` file is provided for compiling `LBFGSB` with the [Fortran Package Manager](https://github.com/fortran-lang/fpm). For example, to build:\n\n```\nfpm build --profile release\n```\n\nBy default, the library is built with double precision (`real64`) real values. Explicitly specifying the real kind can be done using the following processor flags:\n\nPreprocessor flag | Kind  | Number of bytes\n----------------- | ----- | ---------------\n`REAL32`  | `real(kind=real32)`  | 4\n`REAL64`  | `real(kind=real64)`  | 8\n`REAL128` | `real(kind=real128)` | 16\n\nFor example, to build a single precision version of the library, use:\n\n```\nfpm build --profile release --flag \"-DREAL32\"\n```\n\nTo run the unit tests:\n\n```\nfpm test --profile release\n```\n\n### Documentation\n\n  * The latest API documentation can be found [here](https://jacobwilliams.github.io/lbfgsb/). This was generated from the source code using [FORD](https://github.com/Fortran-FOSS-Programmers/ford) (i.e. by running `ford ford.md`).\n\n  * The following four articles were also included in the original package:\n\n     1. `algorithm.pdf`     -  describes the algorithm\n     2. `compact.pdf`       -  presents the compact form of matrices\n     3. `code.pdf`          -  describes the code\n     4. `acm-remark.pdf`    -  describes the modification/correction\n\n   The most useful articles for those who only wish to use the code\n   are [3,4]. Users interested in understanding the algorithm should\n   read [1] and possibly also [2].\n\n### How to use L-BFGS-B\n\nThe simplest way to use the code is to modify one of the\ndrivers provided in the package.  Most users will only need to make\na few changes to the drivers to run their applications.\n\nThe user is required to calculate the function value `f` and its gradient `g`.\nIn order to allow the user complete control over these computations,\nreverse communication is used.  The routine `setulb` must be called\nrepeatedly under the control of the variable task.\n\n### License\n\nL-BFGS-B is released under the \"New BSD License\" (aka \"Modified BSD License\" or\n\"3-clause license\")\nPlease read attached file License.txt\n\n### References\n\n* R. H. Byrd, P. Lu and J. Nocedal. [A Limited Memory Algorithm for Bound Constrained Optimization](http://www.ece.northwestern.edu/~nocedal/PSfiles/limited.ps.gz), (1995), SIAM Journal on Scientific and Statistical Computing , 16, 5, pp. 1190-1208.\n* C. Zhu, R. H. Byrd and J. Nocedal. [L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization](http://www.ece.northwestern.edu/~nocedal/PSfiles/lbfgsb.ps.gz) (1997), ACM Transactions on Mathematical Software, Vol 23, Num. 4, pp. 550 - 560.\n* J.L. Morales and J. Nocedal. [L-BFGS-B: Remark on Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization](http://www.ece.northwestern.edu/~morales/PSfiles/acm-remark.pdf) (2011), ACM Transactions on Mathematical Software, Volume 38, Issue 1, No. 7, pp 1 - 4.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobwilliams%2Flbfgsb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobwilliams%2Flbfgsb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobwilliams%2Flbfgsb/lists"}