You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The number of digits of precision used (i.e. rs.with_dps(digits_of_precision)) affects the result of the synthesis as follows:
122
+
123
+
- very low => A math error will be raised by one of the checks|
124
+
- low => A valid solution may be missed, in other words you get either a solution that has more T gates or None|
125
+
- just right => A correct solution that has a number of T gates on par with the current state of the art|
126
+
- high => same solution as above but in more time|
127
+
128
+
Essentially, the code will either return a valid synthesis or None. If the code returns a result then it may be improved by increasing the number of digits of precision and if the code returns None then we need to increase the number of digits of precisions or `max_n` or both.
129
+
130
+
As a rule of thumb, the number of digits of precision should be close to $10\log_{10}{1/\epsilon}$ (obtained experimentally). This works for large $\epsilon$ and is an upperbound for very small $\epsilon$, for example for $\epsilon=10^{-50}$ we need 400 digits and for $\epsilon=10^{-100}$ we need 800 digits.
0 commit comments