{"id":28452684,"url":"https://github.com/juliasmoothoptimizers/jsosolvers.jl","last_synced_at":"2026-01-16T11:59:01.773Z","repository":{"id":38424527,"uuid":"171767253","full_name":"JuliaSmoothOptimizers/JSOSolvers.jl","owner":"JuliaSmoothOptimizers","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-03T12:05:29.000Z","size":3333,"stargazers_count":75,"open_issues_count":14,"forks_count":15,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-03T12:27:07.426Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","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/JuliaSmoothOptimizers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json"}},"created_at":"2019-02-20T23:49:53.000Z","updated_at":"2025-06-03T12:02:40.000Z","dependencies_parsed_at":"2024-03-08T21:31:14.379Z","dependency_job_id":"90833cdf-9710-47ac-82fb-75012a339b46","html_url":"https://github.com/JuliaSmoothOptimizers/JSOSolvers.jl","commit_stats":{"total_commits":176,"total_committers":15,"mean_commits":"11.733333333333333","dds":0.6193181818181819,"last_synced_commit":"f5489cd970bdb50c153cf202a8316418c0403bee"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/JuliaSmoothOptimizers/JSOSolvers.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FJSOSolvers.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FJSOSolvers.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FJSOSolvers.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FJSOSolvers.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaSmoothOptimizers","download_url":"https://codeload.github.com/JuliaSmoothOptimizers/JSOSolvers.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FJSOSolvers.jl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262351530,"owners_count":23297633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-06-06T18:12:23.405Z","updated_at":"2026-01-16T11:59:01.760Z","avatar_url":"https://github.com/JuliaSmoothOptimizers.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSOSolvers.jl\n\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.09467/status.svg)](https://doi.org/10.21105/joss.09467)\n[![GitHub release](https://img.shields.io/github/release/JuliaSmoothOptimizers/JSOSolvers.jl.svg)](https://github.com/JuliaSmoothOptimizers/JSOSolvers.jl/releases/latest)\n[![](https://img.shields.io/badge/docs-stable-3f51b5.svg)](https://jso.dev/JSOSolvers.jl/stable)\n[![](https://img.shields.io/badge/docs-latest-3f51b5.svg)](https://jso.dev/JSOSolvers.jl/latest)\n[![codecov](https://codecov.io/gh/JuliaSmoothOptimizers/JSOSolvers.jl/branch/main/graph/badge.svg?token=eyiGsilbZx)](https://codecov.io/gh/JuliaSmoothOptimizers/JSOSolvers.jl)\n[![CI](https://github.com/JuliaSmoothOptimizers/JSOSolvers.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/JuliaSmoothOptimizers/JSOSolvers.jl/actions/workflows/ci.yml)\n[![Cirrus CI - Base Branch Build Status](https://img.shields.io/cirrus/github/JuliaSmoothOptimizers/JSOSolvers.jl?logo=Cirrus%20CI)](https://cirrus-ci.com/github/JuliaSmoothOptimizers/JSOSolvers.jl)\n\nThis package provides optimization solvers curated by the JuliaSmoothOptimizers\norganization for unconstrained optimization\n\n    min f(x)\n\nand bound-constrained optimization\n\n    min f(x)     s.t.  ℓ ≤ x ≤ u\n\nThis package provides an implementation of four classic algorithms for unconstrained/bound-constrained nonlinear optimization:\n\n- `lbfgs`: an implementation of a limited-memory BFGS line-search method for unconstrained minimization;\n\n    \u003e D. C. Liu, J. Nocedal. (1989). On the limited memory BFGS method for\n    \u003e large scale optimization. *Mathematical Programming*, 45(1), 503-528.\n    \u003e DOI: [10.1007/BF01589116](https://doi.org/10.1007/BF01589116)\n\n    \n- `R2`: a first-order quadratic regularization method for unconstrained optimization;\n\n    \u003e E. G. Birgin, J. L. Gardenghi, J. M. Martínez, S. A. Santos, Ph. L. Toint. (2017).\n    \u003e Worst-case evaluation complexity for unconstrained nonlinear optimization using\n    \u003e high-order regularized models. *Mathematical Programming*, 163(1), 359-368.\n    \u003e DOI: [10.1007/s10107-016-1065-8](https://doi.org/10.1007/s10107-016-1065-8)\n\n- `fomo`: a first-order method with momentum for unconstrained optimization;\n\n- `tron`: a pure Julia implementation of TRON, a trust-region solver for bound-constrained optimization described in\n\n    \u003e  Chih-Jen Lin and Jorge J. Moré, *Newton's Method for Large Bound-Constrained\n    \u003e  Optimization Problems*, SIAM J. Optim., 9(4), 1100–1127, 1999.\n    \u003e  DOI: [10.1137/S1052623498345075](https://www.doi.org/10.1137/S1052623498345075)\n\n    as well as a variant for nonlinear least-squares;\n- `trunk`: a trust-region solver for unconstrained optimization using exact second derivatives. Our implementation follows the description given in\n\n    \u003e  A. R. Conn, N. I. M. Gould, and Ph. L. Toint,\n    \u003e  Trust-Region Methods, volume 1 of MPS/SIAM Series on Optimization.\n    \u003e  SIAM, Philadelphia, USA, 2000.\n    \u003e  DOI: [10.1137/1.9780898719857](https://www.doi.org/10.1137/1.9780898719857)\n\n    The package also contains a variant for nonlinear least-squares.\n\n## Installation\n\n`pkg\u003e add JSOSolvers`\n\nYou can run the package’s unit tests with:\n\n```julia\npkg\u003e test JSOSolvers\n```\n\n## Example\n\n```julia\nusing JSOSolvers, ADNLPModels\n\n# Rosenbrock\nnlp = ADNLPModel(x -\u003e 100 * (x[2] - x[1]^2)^2 + (x[1] - 1)^2, [-1.2; 1.0])\nstats = lbfgs(nlp) # or trunk, tron, R2\n```\n\n## Documentation\n\nClick on the badge [![](https://img.shields.io/badge/docs-stable-3f51b5.svg)](https://jso.dev/JSOSolvers.jl/stable) to access the documentation.\n\n## How to cite\n\nIf you use JSOSolvers.jl in your work, please cite using the format given in [CITATION.cff](CITATION.cff).\n\n# Bug reports and discussions\n\nIf you think you found a bug, feel free to open an [issue](https://github.com/JuliaSmoothOptimizers/JSOSolvers.jl/issues).\nFocused suggestions and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.\n\nIf you want to ask a question not suited for a bug report, feel free to start a discussion [here](https://github.com/JuliaSmoothOptimizers/Organization/discussions). This forum is for general discussion about this repository and the [JuliaSmoothOptimizers](https://github.com/JuliaSmoothOptimizers), so questions about any of our packages are welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliasmoothoptimizers%2Fjsosolvers.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliasmoothoptimizers%2Fjsosolvers.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliasmoothoptimizers%2Fjsosolvers.jl/lists"}