{"id":28227310,"url":"https://github.com/maloleroy/coto","last_synced_at":"2026-02-14T23:04:23.621Z","repository":{"id":243574953,"uuid":"733053763","full_name":"maloleroy/coto","owner":"maloleroy","description":"🔨 Research \u0026 C++ implementation on abstract additive Quantum Decision Diagrams 📚","archived":false,"fork":false,"pushed_at":"2025-10-18T20:58:51.000Z","size":14657,"stargazers_count":2,"open_issues_count":11,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-28T21:50:14.543Z","etag":null,"topics":["abstract-interpretation","decision-diagram","qasm","quantum-computing"],"latest_commit_sha":null,"homepage":"https://maloleroy.github.io/coto/","language":"TeX","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/maloleroy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-18T13:10:07.000Z","updated_at":"2025-11-08T16:41:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"033dd8c8-659c-42eb-b3c6-4fcfe19df3ee","html_url":"https://github.com/maloleroy/coto","commit_stats":null,"previous_names":["firefnix/coto","maloleroy/coto"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maloleroy/coto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maloleroy%2Fcoto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maloleroy%2Fcoto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maloleroy%2Fcoto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maloleroy%2Fcoto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maloleroy","download_url":"https://codeload.github.com/maloleroy/coto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maloleroy%2Fcoto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29460136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T22:42:09.113Z","status":"ssl_error","status_checked_at":"2026-02-14T22:42:05.053Z","response_time":53,"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":["abstract-interpretation","decision-diagram","qasm","quantum-computing"],"created_at":"2025-05-18T12:10:39.742Z","updated_at":"2026-02-14T23:04:23.616Z","avatar_url":"https://github.com/maloleroy.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Coto - Abstract Additive Quantum Decision Diagrams\n\n[![GitHub](https://img.shields.io/badge/GitHub-%23121011.svg?logo=github\u0026logoColor=white)](https://github.com/maloleroy/coto)\n[![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?logo=github-actions\u0026logoColor=white)](https://github.com/maloleroy/coto/actions)\n[![Build Status (GitHub Actions)](https://github.com/maloleroy/coto/workflows/CMake%20Tests/badge.svg)](https://github.com/maloleroy/coto/actions?query=workflow%3A\"CMake%20Tests\")\n[![C++](https://img.shields.io/badge/C++-%2300599C.svg?logo=c%2B%2B\u0026logoColor=white)](https://en.cppreference.com/w/cpp/23)\n\u003ca href=\"https://gitmoji.dev\"\u003e\n  \u003cimg\n    src=\"https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square\"\n    alt=\"Gitmoji\"\n  /\u003e\n\u003c/a\u003e\n[![PlantUML](https://img.shields.io/badge/PlantUML-FABD14?logo=uml\u0026logoColor=000)](http://www.plantuml.com/)\n\nTheoretical research, experiments and implementation of _abstract additive quantum decision diagrams_, as part of a student research project.\n\n## Building\n\nTo build the project, you must have Clang, CMake and Ninja installed. The code uses some C++23 features, so a recent version of `clang++` is required. *Other versions probably work*, but I personally use the following on my machine:\n* Clang 19.1.7\n* CMake 3.31.6\n* Ninja 1.12.1\n\n1. Configure the project\n```bash\nexport CXX=$(which clang++)\ncmake -S . -B build -GNinja\n```\n2. Build the project\n```bash\ncmake --build build\n```\n3. To run the tests (optional)\n```bash\ncd build\nctest\n```\n\n## QASM interactive interpreter\n\nAfter building the project (steps 1. and 2. above), simply run `./build/prompt`. You can then enter QASM instructions, for example\n```\nqubit a;\nqubit b;\nh a;\np(pi/3) b;\ncx a b;\nh b;\n```\n\nThis prompt utility comes with a few available **run statements** that should be `;`-terminated:\n* `@build`, `@inst`, `@instantiate` - create a new diagram\n* `@list`, `@actions` - list the actions (gate applicaitons) to be performed\n* `@display`, `@evaluate`, `@eval` - display the evaluation of the current diagram\n* `@describe`, `@desc` - display the description of the current diagram\n* `@help`, `@man`, `@manual` - display a help message\n\nApplying gates to qubits is not performed immediately after the statement is entered, and should be triggered by a `@display;`.\n\nThe `prompt` executable can also take a `.qasm` file path as an argument, in this case it quits after executing all statements in the file, without entering interactive mode.\n\n## Repository architecture\n\nPresentation of this repository's main directories:\n-  `.github/workflows` GitHub actions continuous integration (CI) and continous deployment (CD) configuration files\n    - Runs the unit tests that are in the `test` directory and marked as ready for testing in `CMakeLists.txt`\n    - Generate the docs using Doxygen and publish them to [maloleroy.github.io/coto](https://maloleroy.github.io/coto/) using GitHub Pages\n-  `archives` Legacy documents or code, that still should be indexed\n-  `doc` Theory documents (basically, LaTeX)\n-  `include` Code header files (`.h` C++ files)\n-  `ref` References, code or case studies that can be used as examples\n-  `s6` Final report and presentation for semester 6 (in French)\n-  `s7` Final report and presentation for semester 6 (in French)\n-  `src` Source code (`.cpp` C++ files, not headers)\n-  `test` Test code (`.cpp` C++ files)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaloleroy%2Fcoto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaloleroy%2Fcoto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaloleroy%2Fcoto/lists"}