qat.plugins.CircuitInliner

class qat.plugins.CircuitInliner(inplace=True)

A plugin that inlines all calls to a subroutine in the main body of a circuit.

This plugin should be attached to simulator that do not implement an execution stack management.

Currently, all python based simulators make use the internal iterator of the python QAT_CIRC structure to emulate this inlining on the fly. Some c++ based simulators might not be able to perform this emulation and will thus require the circuit to be inlined beforehand.

Parameters

inplace (optional, bool) – if set to True, circuits are inlined in place. Setting this option to False will result in worst perfomances, but the circuits will be deepcopied before the inlining process. Defaults to True.

compile(batch, _specs)

Compiles a batch