The following table lists results obtained using LUT-based hierarchical reversible synthesis (LHRS), a synthesis algorithm that has been proposed in [M. Soeken, M. Roetteler, N. Wiebe, G. De Micheli: Hierarchical reversible logic synthesis using LUTs, in: Design Automation Conference 54, 2006]. Shown are 13 floating point components which are available in three different bit-widths: 16-bit (half-precision), 32-bit (single-precision), and 64-bit (double-precision). All designs are IEEE compliant and were optimized using academic and commercial logic synthesis tools before translated into Clifford+T quantum circuits using LHRS. LHRS is implemented in the open source toolkit RevKit as command lhrs.
Use the toolbar to select different bit-widths and to show the statistics of different realizations (best realization in terms of qubits, best realization in terms of T-count, and a specific realization based on the LUT size parameter that is given to LHRS (more details in the paper). By clicking on lhrs plot one can see the results of all synthesized benchmarks ordered by the LUT size parameter. The Pareto plot link opens a plot in which designs are compared against each other based on T-count and qubits.
This section lists the currently best known quantum network realizations of the arithmetic instances taken from the EPFL combinational benchmark suite. We collect all Pareto-optimal solutions with respect to qubits and T-count. The extreme points (best qubits and best T-count) are directly shown in the table. Click on the link in the last column to display a Pareto plot containing all solutions. Clicking on the approach name or on a data point in a Pareto plot allows to download the circuit realization file.
Benchmark | Best Qubits | Best T-count | All Pareto-optimal solutions | ||||||
---|---|---|---|---|---|---|---|---|---|
Name | Inputs | Outputs | Qubits | T gates | Approach | Qubits | T gates | Approach |
If you have a new Pareto-optimal solution for one of the files, please send it to us using the following form. If it passes equivalence check, we'll add it to the table.
The hybrid mapping method in LUT-based hierarchical reversible synthesis (LHRS) is based on replacing reversible single-target gates with up to 4-variable control functions into optimum or optimal Clifford+T networks. It has been shown that two functions which are equivalent up to affine transformations on the inputs and negation at the output have the same number of T gates in their optimum Clifford+T networks. Consequently, it is sufficient to find an optimum network for one function representative of each class. All such classes for 2-, 3-, and 4-variable functions (except the constant function) are listed here, together with the current best known Clifford+T network. A next the number of T gates achieves that the network is provably optimum. Each network can be downloaded as image, real file, QC file, and qcode file.
Function | T gates | Files |
---|---|---|
^{#}1 |
7 | image | real | qc | qcode |
^{#}3 |
0 | image | real | qc | qcode |
^{#}01 |
15 | image | real | qc | qcode |
^{#}03 |
7 | image | real | qc | qcode |
^{#}07 |
16 | image | real | qc | qcode |
^{#}0f |
0 | image | real | qc | qcode |
^{#}17 |
7 | image | real | qc | qcode |
^{#}0001 |
40 | image | real | qc | qcode |
^{#}0003 |
15 | image | real | qc | qcode |
^{#}0007 |
47 | image | real | qc | qcode |
^{#}000f |
7 | image | real | qc | qcode |
^{#}0017 |
23 | image | real | qc | qcode |
^{#}001f |
43 | image | real | qc | qcode |
^{#}003f |
16 | image | real | qc | qcode |
^{#}007f |
40 | image | real | qc | qcode |
^{#}00ff |
0 | image | real | qc | qcode |
^{#}0117 |
79 | image | real | qc | qcode |
^{#}011f |
27 | image | real | qc | qcode |
^{#}013f |
48 | image | real | qc | qcode |
^{#}017f |
140 | image | real | qc | qcode |
^{#}033f |
7 | image | real | qc | qcode |
^{#}0356 |
12 | image | real | qc | qcode |
^{#}0357 |
61 | image | real | qc | qcode |
^{#}035f |
23 | image | real | qc | qcode |
In order to synthesize a reversible network as starting point from one of the functions given in the table, one can use the following command sequence in RevKit (here we used the function ^{#}0356
as an example).
revkit> tt 0x0356 revkit> tt > aig # or alternatively: convert --tt_to_aig revkit> esopbs -ae revkit> print -c revkit> write_real file.real
In order to obtain the current best known Clifford+T network for one of the listed functions, one can use the following command sequence in Revit (again using the same exaple; one needs to adjust the number of lines for smaller functions accordingly).
revkit> read_real -s "s[0356] a b c d e" revkit> stg4 revkit> print -c revkit> write_qc file.qc
If you have an improved solution for one of the files, please send it to us using the following form. If it passes equivalence check, we'll update the table.