SubstitutePass

class SubstitutePass(collection_filter, gate, success_threshold=1e-08, cost=<bqskit.ir.opt.cost.functions.residuals.hilbertschmidt.HilbertSchmidtResidualsGenerator object>, instantiate_options={})[source]

Bases: BasePass

The SubstitutePass class.

The substitute pass will attempt to use instantiation to replace gates with other gates.

__init__(collection_filter, gate, success_threshold=1e-08, cost=<bqskit.ir.opt.cost.functions.residuals.hilbertschmidt.HilbertSchmidtResidualsGenerator object>, instantiate_options={})[source]

Construct a SubstitutePass.

Parameters:
  • collection_filter (Callable[[Operation], bool]) – A predicate that determines which operations should have substitution attempted on them.

  • gate (Gate) – The gate to try substitute in.

  • success_threshold (float) – The distance threshold that determines successful termintation. Measured in cost described by the hilbert schmidt cost function. (Default: 1e-8)

  • cost (CostFunction | None) – The cost function that determines successful removal of a gate. (Default: HilbertSchmidtResidualsGenerator())

  • (dict[str (instantiate_options) – Any]): Options passed directly to circuit.instantiate when instantiating circuit templates. (Default: {})

Attributes

name

The name of the pass.

Methods

execute(*args, **kwargs)

Map a function over iterable arguments in parallel.

get_connectivity(_, data)

Retrieve the current connectivity of the circuit.

get_model(_, data)

Retrieve the machine model from the data dictionary.

get_placement(_, data)

Retrieve the logical to physical qubit map from the data dictionary.

get_target(_, data)

Retrieve the target from the data dictionary.

in_parallel(data)

Return true if pass is being executed in a parallel.

run(circuit, data)

Perform the pass's operation, see BasePass for more.