SwapAndCNOTFlipper
Extends:
Flips CNOTs and translates Swaps to CNOTs where necessary.
Warning: This engine assumes that CNOT and Hadamard gates are supported by the following engines.
Warning: This engine cannot be used as a backend.
Constructor Summary
| Public Constructor | ||
| public |
constructor(connectivity: Set<string>|Set<Array.<number>>) |
|
Member Summary
| Public Members | ||
| public |
connectivity: * |
|
Method Summary
| Public Methods | ||
| public |
isAvailable(cmd: Command): * Check if the IBM backend can perform the Command cmd and return true if so. |
|
| public |
isCNOT(cmd: *): * |
|
| public |
isSwap(cmd: *): * |
|
| public |
needsFlipping(cmd: *): * |
|
| public |
Receives a command list and if the command is a CNOT gate, it flips it using Hadamard gates if necessary; if it is a Swap gate, it decomposes it using 3 CNOTs. |
|
| public |
|
|
Inherited Summary
| From class BasicEngine | ||
| public |
|
|
| public |
allocateQubit(dirty: boolean): Qureg Return a new qubit as a list containing 1 qubit object (quantum register of size 1). |
|
| public |
allocateQureg(n: number): Qureg Allocate n qubits and return them as a quantum register, which is a list of qubit objects. |
|
| public |
deallocateQubit(qubit: BasicQubit) Deallocate a qubit (and sends the deallocation command down the pipeline). |
|
| public |
isAvailable(cmd: Command): boolean Default implementation of isAvailable: Ask the next engine whether a command is available, i.e., whether it can be executed by the next engine(s). |
|
| public |
isMetaTagSupported(metaTag: function): boolean Check if there is a compiler engine handling the meta tag |
|
| public |
receive() |
|
| public |
Forward the list of commands to the next engine in the pipeline. |
|
Public Constructors
public constructor(connectivity: Set<string>|Set<Array.<number>>) source
Override:
BasicEngine#constructorPublic Members
public connectivity: * source
Public Methods
public isAvailable(cmd: Command): * source
Check if the IBM backend can perform the Command cmd and return true if so.
Override:
BasicEngine#isAvailableParams:
| Name | Type | Attribute | Description |
| cmd | Command | The command to check |
Return:
| * |
public receive(commandList: Command[]) source
Receives a command list and if the command is a CNOT gate, it flips it using Hadamard gates if necessary; if it is a Swap gate, it decomposes it using 3 CNOTs. All other gates are simply sent to the next engine.
Override:
BasicEngine#receiveParams:
| Name | Type | Attribute | Description |
| commandList | Command[] | list of commands to receive. |