import DecompositionRule from 'projectq/src/cengines/replacer/decompositionrule.js'
DecompositionRule
A rule for breaking down specific gates into sequences of simpler gates.
Constructor Summary
Public Constructor | ||
public |
constructor(gateClass: function, gateDecomposer: function, gateRecognizer: function) |
Member Summary
Public Members | ||
public |
gateClass: * |
|
public |
|
|
public |
|
Public Constructors
public constructor(gateClass: function, gateDecomposer: function, gateRecognizer: function) source
Params:
Name | Type | Attribute | Description |
gateClass | function | The type of gate that this rule decomposes. The gate class is redundant information used to make lookups faster when iterating over a circuit and deciding "which rules apply to this gate?" again and again. Note that this parameter is a gate type, not a gate instance. You supply gate_class=MyGate or gate_class=MyGate().class, not gate_class=MyGate(). |
|
gateDecomposer | function | Function which, given the command to decompose, applies a sequence of gates corresponding to the high-level function of a gate of type gate_class. |
|
gateRecognizer | function | A predicate that determines if the decomposition applies to the given command (on top of the filtering by gate_class). For example, a decomposition rule may only to apply rotation gates that rotate by a specific angle. If no gate_recognizer is given, the decomposition applies to all gates matching the gate_class. |