Skip to content

bloqade.qasm2.passes.noise.NoisePass

← Module overview

classNoisePasssource

bloqade.qasm2.passes.noise.NoisePass

Bases: Pass

Apply a noise model to a quantum circuit.

Signature
class NoisePass(noise_model: noise.MoveNoiseModelABC = noise.TwoRowZoneModel())

NOTE: This pass is not guaranteed to be supported long-term in bloqade. We will be moving towards a more general approach to noise modeling in the future.

from bloqade import qasm2
from bloqade.qasm2.passes import NoisePass
@qasm2.extended
def main():
q = qasm2.qreg(2)
qasm2.h(q[0])
qasm2.cx(q[0], q[1])
return q
# simple IR without any nosie
main.print()
noise_pass = NoisePass(noise_main)
# rewrite stuff in-place
noise_pass.unsafe_run(main)
# now, we do have noise channels in the IR
main.print()

Parameters

NameTypeDefaultDescription
noise_modelnoise.MoveNoiseModelABCnoise.TwoRowZoneModel()

Attributes

NameTypeDefaultDescription
noise_modelnoise.MoveNoiseModelABCfield(default_factory=(noise.TwoRowZoneModel))
address_analysisaddress.AddressAnalysisfield(init=False)

methodget_qubit_valuessource

bloqade.qasm2.passes.noise.NoisePass.get_qubit_values

def get_qubit_values(mt: ir.Method)

Parameters

NameTypeDescription
mtir.Method
source

methodunsafe_runsource

bloqade.qasm2.passes.noise.NoisePass.unsafe_run

def unsafe_run(mt: ir.Method)

Parameters

NameTypeDescription
mtir.Method
source