Closed
Description
With the goal of #539 there are now two built-in ways of counting gates: one where you have to provide which gates to count and another, more-opinionated one that makes some assumptions about the relevant counts for a surface code / lattice surgery / qec execution model. This latter one is QECGatesCost
and is similar to the t_complexity
protocol. These two protocols should be unified.
- Reduce the amount of dynamacism and magic in existing t_complexity while verifying no regression in t count. This is mostly done, see Unify t-complexity protocol #678 Use
build_call_graph
instead ofdecompose_bloq
to computeTComplexity
for bloqs #740 Remove sneaky fredkin decomposition #803 Remove_t_complexity_
onMultiAnd
and support symboliccvs
#1015 Replace_t_complexity_
withbuild_call_graph
in comparison gates #1012 Remove t_complexity from comparison bloqs #996 Remove _t_complexity_ of CSwapApprox #994 - Split the cirq t-complexity from pure-bloqs t-complexity Introduce types to
t_complexity
#835 - Remove remaining
_t_complexity_
overrides and move logic either tofrom_directly_countable_bloqs
(probably most of them) or duplicate to themy_static_costs
generic method otherwise - make the
t_complexity
function and method be a wrapper aroundQECGateCost
computation; verify identical resource counts