{"id":13421132,"url":"https://github.com/YimingYAN/cppipm","last_synced_at":"2025-03-15T07:32:39.690Z","repository":{"id":18159758,"uuid":"21257822","full_name":"YimingYAN/cppipm","owner":"YimingYAN","description":"C++ implementation of the Interior Point Methods (CPPIPM)","archived":false,"fork":false,"pushed_at":"2018-04-20T14:33:07.000Z","size":2377,"stargazers_count":40,"open_issues_count":0,"forks_count":14,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-07-31T22:58:03.716Z","etag":null,"topics":["c-plus-plus","interior-point-method","optimization-algorithm-library"],"latest_commit_sha":null,"homepage":"","language":"C++","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/YimingYAN.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-26T23:14:17.000Z","updated_at":"2024-07-08T16:35:32.000Z","dependencies_parsed_at":"2022-08-28T05:21:30.677Z","dependency_job_id":null,"html_url":"https://github.com/YimingYAN/cppipm","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YimingYAN%2Fcppipm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YimingYAN%2Fcppipm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YimingYAN%2Fcppipm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YimingYAN%2Fcppipm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YimingYAN","download_url":"https://codeload.github.com/YimingYAN/cppipm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243701278,"owners_count":20333615,"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":["c-plus-plus","interior-point-method","optimization-algorithm-library"],"created_at":"2024-07-30T22:01:50.108Z","updated_at":"2025-03-15T07:32:39.226Z","avatar_url":"https://github.com/YimingYAN.png","language":"C++","funding_links":[],"categories":["TODO scan for Android support in followings"],"sub_categories":[],"readme":"cppipm\n=====\nC++ implementation of the Interior Point Method (CPPIPM)\n\n## Requirements\n* [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page), \"*a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms*\". \nEigen forms the linear algebra core of this software.\n\n## Compilation \n1. Compile the project using the qmake and the project file (cppipm) provided in the repo. This will require instllation of the qmake toolchain. The solver itself has NO dependency on Qt libraries. \n2. A simple way to compile and run the exmaple: \n  ```\n      cd examples\n      g++ -std=c++14 -I ../lib/ -I ../include/   ../src/cppipm.cpp ../src/mpsReader.cpp test.cpp -o test\n      ./test\n  ```\n\n## How to use\nQP:\n\n```\n  std::unique_ptr\u003cAlgorithm\u003e test = std::make_unique\u003ccppipm\u003e(Q,A,b,c); test -\u003e solve();\n```\n\nLP:\n\n```\n  std::unique_ptr\u003cAlgorithm\u003e test = std::make_unique\u003ccppipm\u003e(Q,A,b,c);  test -\u003e solve(); \n```\n\nOr:\n\n```\n std::unique_ptr\u003cAlgorithm\u003e test = std::make_unique\u003ccppipm\u003e(otherProblem);  test -\u003e solve();\n```\n\n## Example\nSee test.cpp\n\n## TODO\nThis is a very old piece of work from my PhD time. As you can see my understanding of C++ at that time was not very upto the professional standard. ;) \nWill spend some time in the summer to refactor it. \n - [ ] Replace qmake project file with CMake\n - [ ] Refactor the code to comply with the SOLID principles at least\n - [ ] Setup continuous integration\n - [ ] Use c++11/14 features \n\n\n----\nYiming Yan\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYimingYAN%2Fcppipm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYimingYAN%2Fcppipm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYimingYAN%2Fcppipm/lists"}