TagRemover
Extends:
is a compiler engine which removes temporary command tags (see the tag classes such as LoopTag in loop
).
Removing tags is important (after having handled them if necessary) in order to enable optimizations across meta-function boundaries (compute/ action/uncompute or loops after unrolling)
Constructor Summary
Public Constructor | ||
public |
constructor(tags: Array<function>) |
Member Summary
Private Members | ||
private |
_tags: * |
Method Summary
Public Methods | ||
public |
Receive a list of commands from the previous engine, remove all tags which are an instance of at least one of the meta tags provided in the constructor, and then send them on to the next compiler engine. |
Private Methods | ||
private |
|
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
Private Members
private _tags: * source
Public Methods
public receive(commandList: Command[]) source
Receive a list of commands from the previous engine, remove all tags which are an instance of at least one of the meta tags provided in the constructor, and then send them on to the next compiler engine.
Override:
BasicEngine#receiveParams:
Name | Type | Attribute | Description |
commandList | Command[] | List of commands to receive and then (after removing tags) send on. |