{"id":13438742,"url":"https://github.com/argmin-rs/argmin","last_synced_at":"2025-03-20T06:31:14.955Z","repository":{"id":40456313,"uuid":"141885030","full_name":"argmin-rs/argmin","owner":"argmin-rs","description":"Numerical optimization in pure Rust","archived":false,"fork":false,"pushed_at":"2025-03-04T13:08:52.000Z","size":47786,"stargazers_count":1067,"open_issues_count":58,"forks_count":85,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-03-04T13:40:44.653Z","etag":null,"topics":["numerical-optimization","optimization","optimization-algorithms","optimization-methods","optimizer","rust"],"latest_commit_sha":null,"homepage":"http://argmin-rs.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/argmin-rs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":["stefan-k"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2018-07-22T10:09:33.000Z","updated_at":"2025-03-04T13:08:20.000Z","dependencies_parsed_at":"2023-12-26T16:33:54.350Z","dependency_job_id":"51e644e0-e811-4673-aab5-fd190b402468","html_url":"https://github.com/argmin-rs/argmin","commit_stats":{"total_commits":1064,"total_committers":30,"mean_commits":35.46666666666667,"dds":"0.12124060150375937","last_synced_commit":"0bcc00c45596dd35ed3b92d587fb85bc7a09e89a"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argmin-rs%2Fargmin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argmin-rs%2Fargmin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argmin-rs%2Fargmin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argmin-rs%2Fargmin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/argmin-rs","download_url":"https://codeload.github.com/argmin-rs/argmin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244565331,"owners_count":20473251,"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":["numerical-optimization","optimization","optimization-algorithms","optimization-methods","optimizer","rust"],"created_at":"2024-07-31T03:01:08.053Z","updated_at":"2025-03-20T06:31:09.947Z","avatar_url":"https://github.com/argmin-rs.png","language":"Rust","funding_links":["https://github.com/sponsors/stefan-k"],"categories":["Libraries","库 Libraries","Rust","库","Optimization"],"sub_categories":["Computation","计算 Computation","计算"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg\n    width=\"400\"\n    src=\"https://raw.githubusercontent.com/argmin-rs/argmin/main/media/logo.png\"\n  /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    Mathematical optimization in pure Rust\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://argmin-rs.org\"\u003eWebsite\u003c/a\u003e\n  |\n  \u003ca href=\"https://argmin-rs.org/book/\"\u003eBook\u003c/a\u003e\n  |\n  \u003ca href=\"https://docs.rs/argmin\"\u003eDocs (latest release)\u003c/a\u003e\n  |\n  \u003ca href=\"https://argmin-rs.github.io/argmin/argmin/\"\u003eDocs (main branch)\u003c/a\u003e\n  |\n  \u003ca href=\"https://github.com/argmin-rs/argmin/tree/argmin-v0.10.0/examples\"\u003eExamples (latest release)\u003c/a\u003e\n  |\n  \u003ca href=\"https://github.com/argmin-rs/argmin/tree/main/examples\"\u003eExamples (main branch)\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003c!--\n  \u003ca href=\"https://argmin-rs.org\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/website?down_message=offline\u0026style=flat-square\u0026up_message=argmin-rs.org\u0026url=http%3A%2F%2Fargmin-rs.org\"\n      alt=\"Website\"\n  /\u003e\u003c/a\u003e\n  \u003ca href=\"https://argmin-rs.org/book/\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/website?label=book\u0026style=flat-square\u0026url=http%3A%2F%2Fargmin-rs.org%2Fbook%2F\"\n      alt=\"Website\"\n  /\u003e\u003c/a\u003e\n--!\u003e\n  \u003ca href=\"https://crates.io/crates/argmin\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/crates/v/argmin?style=flat-square\"\n      alt=\"Crates.io version\"\n  /\u003e\u003c/a\u003e\n\u003c!--\n  \u003ca href=\"https://docs.rs/argmin\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/docsrs/argmin?style=flat-square\u0026label=docs.rs\"\n      alt=\"Documentation of latest release\"\n  /\u003e\u003c/a\u003e\n  \u003ca href=\"https://argmin-rs.github.io/argmin/argmin/\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/docsrs/argmin?style=flat-square\u0026label=docs main branch\"\n      alt=\"Documentation of main branch\"\n  /\u003e\u003c/a\u003e\n--!\u003e\n  \u003ca href=\"https://crates.io/crates/argmin\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/crates/d/argmin?style=flat-square\"\n      alt=\"Crates.io downloads\"\n  /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/argmin-rs/argmin/actions\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/github/actions/workflow/status/argmin-rs/argmin/ci.yml?branch=main\u0026label=argmin CI\u0026style=flat-square\"\n      alt=\"GitHub Actions workflow status\"\n  /\u003e\u003c/a\u003e\n  \u003cimg\n    src=\"https://img.shields.io/crates/l/argmin?style=flat-square\"\n    alt=\"License\"\n  /\u003e\n  \u003ca href=\"https://discord.gg/fYB8AwxxMW\"\n    \u003e\u003cimg\n      src=\"https://img.shields.io/discord/1189119565335109683?style=flat-square\u0026label=argmin%20Discord\"\n      alt=\"argmin Discord\"\n  /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\nargmin is a numerical optimization library written entirely in Rust.\n\nargmins goal is to offer a wide range of optimization algorithms with a consistent interface.\nIt is type-agnostic by design, meaning that any type and/or math backend, such as `nalgebra` or `ndarray` can be used -- even your own.\n\nObservers allow one to track the progress of iterations, either by using one of the provided ones for logging to screen or disk or by implementing your own.\n\nAn optional checkpointing mechanism helps to mitigate the negative effects of crashes in unstable computing environments.\n\nDue to Rusts powerful generics and traits, most features can be exchanged by your own tailored implementations.\n\nargmin is designed to simplify the implementation of optimization algorithms and as such can also be used as a toolbox for the development of new algorithms. One can focus on the algorithm itself, while the handling of termination, parameter vectors, populations, gradients, Jacobians and Hessians is taken care of by the library.\n\n\n## Algorithms\n\n- Line searches\n  - Backtracking line search\n  - More-Thuente line search\n  - Hager-Zhang line search\n- Trust region method\n  - Cauchy point method\n  - Dogleg method\n  - Steihaug method\n- Steepest descent\n- Conjugate gradient method\n- Nonlinear conjugate gradient method\n- Newton methods\n  - Newton’s method\n  - Newton-CG\n- Quasi-Newton methods\n  - BFGS\n  - L-BFGS\n  - DFP\n  - SR1\n  - SR1-TrustRegion\n- Gauss-Newton method\n- Gauss-Newton method with linesearch\n- Golden-section search\n- Landweber iteration\n- Brent’s method\n- Nelder-Mead method\n- Simulated Annealing\n- Particle Swarm Optimization\n\n### External solvers compatible with argmin\n\nExternal solvers which implement the `Solver` trait are compatible with argmins `Executor`, \nand as such can leverage features like checkpointing and observers. \n\n- [egobox](https://crates.io/crates/egobox-ego)\n- [cobyla](https://crates.io/crates/cobyla)\n\n\n## License\n\nLicensed under either of\n\n - Apache License, Version 2.0, ([LICENSE-APACHE](https://github.com/argmin-rs/argmin/blob/main/LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n - MIT License ([LICENSE-MIT](https://github.com/argmin-rs/argmin/blob/main/LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fargmin-rs%2Fargmin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fargmin-rs%2Fargmin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fargmin-rs%2Fargmin/lists"}