mimiqcircuits.decomposition.basis.rule_basis¶
RuleBasis: Wrapper to use a RewriteRule as a DecompositionBasis.
Classes
|
A decomposition basis that recursively applies a single rewrite rule. |
- class mimiqcircuits.decomposition.basis.rule_basis.RuleBasis(rule)[source]¶
Bases:
DecompositionBasisA decomposition basis that recursively applies a single rewrite rule.
This allows any
RewriteRuleto be used directly as a decomposition basis. The rule is applied recursively until no more operations match.An operation is terminal if the rule does not match it.
- Parameters:
rule (RewriteRule) – The rewrite rule to apply.
Example
>>> from mimiqcircuits import Circuit, GateH >>> from mimiqcircuits.decomposition import decompose, RuleBasis, ZYZRewrite >>> c = Circuit() >>> c.push(GateH(), 0) 1-qubit circuit with 1 instruction: └── H @ q[0] >>> # Decompose using ZYZ rewrite rule >>> decomposed = decompose(c, RuleBasis(ZYZRewrite()))
- rule: RewriteRule¶
- decompose(op, qubits, bits, zvars)[source]¶
Apply the rewrite rule to decompose the operation.
- Parameters:
- Returns:
A Circuit containing the decomposed instructions.
- Return type:
- __init__(rule)¶