Skip to content

Feat/ancilla - #171

Merged
Ferayer merged 61 commits into
developfrom
feat/ancilla
Oct 5, 2026
Merged

Ferayer merged 61 commits into
developfrom
feat/ancilla

Conversation

@Ferayer

@Ferayer Ferayer commented Oct 4, 2026

Copy link
Copy Markdown
Collaborator

Check List

  1. Does your submission pass tests by running make test?
  2. If you have specified a [no ci] tag, does your submission also pass tests by running make test-docker?
  3. Have you linted your code locally with make lint before submission?

Locally: Catch2 unit tests and scripts/RUN_TESTS (74 dofiles) pass on the merged tree. make lint and make test-docker were not run for this update.

Added

  • H-gadgetize + FastTODD T-opt (tableau o unify) and SMT gadget/PR width search (tableau o reorder).
  • Top-level tie-search (and -t-only) to co-optimize T and ancilla from QCir, then convert back.
  • ClassicalControlTableau, measurement/reset/if-else in QCir, and QASM creg / measure export for gadgetized circuits.
  • FastTODD phase-polynomial strategy and related tableau optimizations (ancilla minimize, signature check).

Changed

Fixed

Removed

  • Tableau-object get_filename / add_procedure (duplicates of the manager).
  • Old CLI: gadgetH, ancillaryTopt, minimize_q; FastTMerge.

Known follow-ups

  • convert tableau qcir -s lazy / -s unified still error; only eager is wired through CCT.
  • S* in some .qc inputs is accepted on this branch; develop’s reader still rejects T*/S* on a few TODD files.

陳信佑 and others added 30 commits May 1, 2025 22:17
…ssical_controlled_tableaux and pauli_rotations, mark the degadgetizable tableaux, todo : apply degadgetize funciton.
CMake ≥ 3.29,並說明如何檢查與升級
明確列出 C++20 與編譯器 (g++-11 / clang++-16+)
說明需要 BLAS/LAPACK (OpenBLAS / LAPACK)
Linux:改寫為用預設 gcc/g++,並提到可用環境變數或 .env.local 覆寫編譯器。

macOS:

保留 LLVM 選項,並新增 GCC 選項(遇到 fmt/consteval 錯誤時建議用 GCC)
說明用 .env.local 指定 Homebrew GCC 的路徑與範例
Local overrides (.env.local) 新章節:

說明 .env.local 為選用、僅在檔案存在時被讀取、且被 git 忽略
建議 cp .env.local.example .env.local 再編輯
給出 CC / CXX 的範例
Docker Builds:

強調可直接 docker run ... 使用預建映像
註明 make build-docker 需要映像內 CMake ≥ 3.29
- Add -Wno-error=cast-user-defined for qsyn executable and libqsyn when
  using GNU compiler. GCC 15 treats C-style cast in ordered_hashtable
  (pair<K,V> to pair<const K,V>&) as -Werror=cast-user-defined; this
  keeps the build passing while preserving the warning.

Made-with: Cursor
- Include .env.local when present so CC, CXX (and other vars) can be
  overridden per-developer without touching the repo.
- Only include if .env.local exists (wildcard check).
- Clarify comment for platform default compiler block.

Made-with: Cursor
Ferayer and others added 29 commits May 23, 2026 16:00
apply with tableau o a, follow by tableau m r,
if degadgetize, apply with talbeau m d after T-opt
1. added FastT-Merge and decomposition methods for CCX/CCZ gates
2. optionally choose to do properize/T-merge before H-gadget
3. FastTODD algorithm finalize
added tie-breaker FastTODD for better ancilla-T search
adder classial topological-aware circuit conversion to qcir datatype and export topological-aware circuit as .qasm file.
…age logs

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep unify/reorder/tie-search and restore develop Clifford synthesis, manager APIs, and resyn strategies so the branch builds on current develop.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bring in GridSynth from PR #170 while keeping ancilla GCC 15 flags and local-env gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
Match develop's manager-level filename/procedure API, omit empty measurement counts in QCir print, and refresh goldens that now show parsed creg bits.

Co-authored-by: Cursor <cursoragent@cursor.com>
Docker/CI GCC treats the unknown diagnostic name as -Werror=pragmas.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clang defines __GNUC__ but rejects -Wmaybe-uninitialized under -Werror.

Co-authored-by: Cursor <cursoragent@cursor.com>
GitHub Actions now fails the job on the unknown 'sources' key.

Co-authored-by: Cursor <cursoragent@cursor.com>
4.13.0 fails on newer Clang (static_matrix get/get_elem). Pin macos CI to llvm@18 and install GMP/MPFR.

Co-authored-by: Cursor <cursoragent@cursor.com>
4.13.x still fails under LLVM 18; which clang++ can pick Homebrew llvm@20.

Co-authored-by: Cursor <cursoragent@cursor.com>
…lang++.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@Ferayer
Ferayer merged commit c8d49cb into develop Oct 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants