gridsynth

Crates.iogridsynth
lib.rsgridsynth
version0.1.0
created_at2025-10-22 11:17:26.522093+00
updated_at2025-10-22 11:17:26.522093+00
descriptionRust-based synthesizer that decomposes single-qubit Z-axis rotations into Clifford+T gate sequences
homepagehttps://github.com/qiskit-community/gridsynth
repositoryhttps://github.com/qiskit-community/gridsynth
max_upload_size
id1895496
size176,619
Kento Ueda (to24toro)

documentation

README

gridsynth

gridsynth is a high-precision Rust-based synthesizer that decomposes single-qubit Z-axis rotations into Clifford+T gate sequences, using number-theoretic algorithms and geometry-of-numbers methods.

Build

Make sure you have Rust installed.

cargo build --release

The binary will be at:

target/release/gridsynth

Usage

./target/release/gridsynth <theta> <epsilon> [OPTIONS]
  • <theta>: The rotation angle in radians (e.g. 0.6)
  • <epsilon>: The target approximation error(still do not support precision higher than 1e-8.) (e.g. 1e-8)

Options

Option Description Default
--dps <dps> Decimal precision used in floating-point computations 425
-d, --dtimeout <ms> Timeout for the Diophantine step (in milliseconds) 200
-f, --ftimeout <ms> Timeout for integer factoring (in milliseconds) 50
-v, --verbose Enable verbose output (intermediate steps, diagnostics) false
-t, --time Show elapsed wall-clock time after computation false

Example

./target/release/gridsynth 0.6 1e-8 -v -t

Sample output:

to_upright_set_pair: 0.001 s
time of diophantine_dyadic: 0.036 ms
time of decompose_domega_unitary: 0.089 ms
total time: 1.294 ms
Elapsed time: 1.308ms
HTSHTHTSHTSHTSHTHTSHTHTHTSHTHTSHTHTSHTHTSHTSHTSHTSHTSHTHTSHTHTSHTSHTHTHTSHTHTHTHTSHTSHTSHTSHTSHTSHTHTHTSHTSHTSHTSHTSHTHTSHTHTSHTSHTHTHTSHTSHTSHTHTHTSHTHTSHTSHTSHTSHTHTSHTHTSHTHTHTHTSHTHTSHTSHTSHTHTSHTSHTSHTHTHTHTSHSSSWWWWW

Acknowledgement

This package is a reimplementation of the pygridsynth python package by Shuntaro Yamato and Noboyuki Yoshioka. This, in turn, is based on "Optimal ancilla-free Clifford+T approximation of z-rotations" by Neil J. Ross and Peter Selinger (arXiv:1403.2975) and its implementation, newsynth. Please consider citing these previous works.

Commit count: 0

cargo fmt