{"id":29552935,"url":"https://github.com/evya1/cvx-optimization-to-ml","last_synced_at":"2026-05-21T05:02:48.173Z","repository":{"id":297641785,"uuid":"997387976","full_name":"evya1/cvx-optimization-to-ml","owner":"evya1","description":"Convex Optimization and Polynomial System Solver with Dockerized Symbolic Computation via msolve, Sagemath \u0026 C++","archived":false,"fork":false,"pushed_at":"2025-07-15T22:31:35.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-16T21:32:13.194Z","etag":null,"topics":["convex","convex-optimization","cvx","cvx-pipeline-framework","cvxopt","linear-algebra","msolve","pose-detection","pose-estimation","rigid-transformations"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evya1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-06-06T12:50:30.000Z","updated_at":"2025-07-15T22:37:02.000Z","dependencies_parsed_at":"2025-06-06T15:43:03.458Z","dependency_job_id":"edec5bc6-4eba-4ba9-ad92-c170c3efbbba","html_url":"https://github.com/evya1/cvx-optimization-to-ml","commit_stats":null,"previous_names":["evya1/cvx-optimization-to-ml"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/evya1/cvx-optimization-to-ml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evya1%2Fcvx-optimization-to-ml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evya1%2Fcvx-optimization-to-ml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evya1%2Fcvx-optimization-to-ml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evya1%2Fcvx-optimization-to-ml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evya1","download_url":"https://codeload.github.com/evya1/cvx-optimization-to-ml/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evya1%2Fcvx-optimization-to-ml/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265707772,"owners_count":23814870,"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":["convex","convex-optimization","cvx","cvx-pipeline-framework","cvxopt","linear-algebra","msolve","pose-detection","pose-estimation","rigid-transformations"],"created_at":"2025-07-18T06:00:29.560Z","updated_at":"2026-05-21T05:02:43.134Z","avatar_url":"https://github.com/evya1.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧠 cvx-optimization-to-ml\n\n**C++ Convex Optimization and Polynomial System Solver with Dockerized Symbolic Computation via `msolve`**\n\nThis project is a modular C++ pipeline designed for convex optimization and algebraic computation, integrating symbolic solvers like [`msolve`](https://msolve.lip6.fr/) to compute real roots of polynomial systems within Docker. It uses Eigen for linear algebra operations and supports clean reproducible builds via CMake and Make.\n\n---\n\n## 📦 Features\n\n-   🧮 Symbolic solution of multivariate polynomial systems via msolve (Docker-integrated).\n-   🌀 Modular structure with Eigen-powered vector/matrix manipulation.\n-   🐳 Full Docker environment for reproducible builds and isolated math toolchain (FLINT, GMP, MPFR).\n-   🛠️ Developer-friendly `Makefile` with helper targets for running, testing, and Docker workflows.\n\n---\n\n## 🚀 Quick Start Guide\n\n### ✅ Requirements\n\nMake sure the following tools are installed **on your host machine**:\n\n-   [Docker Desktop](https://www.docker.com/products/docker-desktop/)\n-   [Git](https://git-scm.com/)\n-   Optionally: `make` and `cmake` (if you want to build outside Docker)\n\n---\n\n### 📥 Clone the Repository\n\n```bash\ngit clone https://github.com/evya1/cvx-optimization-to-ml.git\ncd cvx-optimization-to-ml\n```\n\n---\n\n### 🐳 Build and Run via Docker (Recommended)\n\n#### 1. Build the Docker Image\n\n```bash\nmake docker\n```\n\nThis builds a two-stage image:\n\n-   Stage 1 compiles FLINT and msolve from source.\n-   Stage 2 produces a minimal runtime image with your binary and tools installed.\n\n#### 2. Run the Main Program (Binary)\n\n```bash\nmake docker-run\n```\n\nThis runs `/cvx-optimization-to-ml` inside the container.\n\n#### 3. Run msolve on an Example\n\n```bash\nmake msolve-test-real-roots-sec4p1\nmake show-msolve-output-sec4p1\n```\n\nThis will:\n\n-   Run `msolve` on `ms_test_inputs/real_roots_sec4p1.ms`\n-   Output the result to `ms_outputs/real_roots_sec4p1.out`\n-   Print the content to your terminal\n\n---\n\n## 🛠️ Developer Workflow (Local Build)\n\n### 1. Build Locally\n\n```bash\nmake build\n```\n\n### 2. Run the Program\n\n```bash\nmake run\n```\n\n### 3. Run Tests (optional)\n\n```bash\nmake test\n```\n\n\u003e ⚠️ Currently a placeholder – you'll need to implement test cases under `/tests`.\n\n---\n\n## 🧪 Directory Structure\n\n```text\n.\n├── CMakeLists.txt                # CMake project definition\n├── Dockerfile                    # Multi-stage Dockerfile\n├── Makefile                      # All build + docker logic\n├── include/                      # Header files (rotate.hpp)\n├── src/                          # Main source code\n│   ├── main.cpp\n│   └── rotate.cpp\n├── ms\\_test\\_inputs/              # Sample .ms file for msolve\n│   └── real\\_roots\\_sec4p1.ms\n├── ms\\_outputs/                  # Output of msolve runs\n│   └── real\\_roots\\_sec4p1.out\n├── build/ (or cmake-build-debug/) # Local CMake build artifacts\n└── tests/                       # (Placeholder) test files\n```\n\n---\n\n## 📚 Technologies Used\n\n-   **C++17**, **Eigen** – Linear Algebra\n-   **FLINT**, **GMP**, **MPFR** – Number theory / multiprecision\n-   **msolve** – Real root solver (symbolic polynomial systems)\n-   **CMake** – Build configuration\n-   **Docker** – Isolated build + runtime\n-   **Makefile** – Workflow automation\n\n---\n\n## 🧠 Example Problem Solved\n\nThe provided `real_roots_sec4p1.ms` solves the following polynomial system:\n\n```text\nx + 2y + 2z = 1\nx^2 + 2y^2 + 2z^2 = x\n2xy + 2yz = y\n```\n\nRun `make msolve-test-real-roots-sec4p1` to compute its real solutions.\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change or add.\n\n---\n\n## 🙌 Acknowledgments\n\n-   [msolve authors](https://msolve.lip6.fr/)\n-   [Eigen](https://eigen.tuxfamily.org/)\n-   [FLINT](http://flintlib.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevya1%2Fcvx-optimization-to-ml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevya1%2Fcvx-optimization-to-ml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevya1%2Fcvx-optimization-to-ml/lists"}