bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule
classNoiseRewriteRule¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule
Bases: rewrite_abc.RewriteRule
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.
Signature
class NoiseRewriteRule(address_analysis: Dict[ir.SSAValue, address.Address], qubit_ssa_value: Dict[int, ir.SSAValue], noise_model: noise.MoveNoiseModelABC = noise.TwoRowZoneModel())Parameters
| Name | Type | Default | Description |
|---|---|---|---|
address_analysis | Dict[ir.SSAValue, address.Address] | required | |
qubit_ssa_value | Dict[int, ir.SSAValue] | required | |
noise_model | noise.MoveNoiseModelABC | noise.TwoRowZoneModel() |
Attributes
| Name | Type | Default | Description |
|---|---|---|---|
address_analysis | Dict[ir.SSAValue, address.Address] | required | |
qubit_ssa_value | Dict[int, ir.SSAValue] | required | |
noise_model | noise.MoveNoiseModelABC | field(default_factory=(noise.TwoRowZoneModel)) |
methodrewrite_Statement¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.rewrite_Statement
def rewrite_Statement(node: ir.Statement) -> rewrite_abc.RewriteResultParameters
| Name | Type | Description |
|---|---|---|
node | ir.Statement |
Returns
rewrite_abc.RewriteResult
methodinsert_single_qubit_noise¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.insert_single_qubit_noise
Signature
def insert_single_qubit_noise(node: ir.Statement, qargs: ir.SSAValue, probs: Tuple[float, float, float, float])Parameters
| Name | Type | Description |
|---|---|---|
node | ir.Statement | |
qargs | ir.SSAValue | |
probs | Tuple[float, float, float, float] |
methodrewrite_single_qubit_gate¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.rewrite_single_qubit_gate
def rewrite_single_qubit_gate(node: uop.SingleQubitGate)Parameters
| Name | Type | Description |
|---|---|---|
node | uop.SingleQubitGate |
methodrewrite_global_single_qubit_gate¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.rewrite_global_single_qubit_gate
def rewrite_global_single_qubit_gate(node: glob.UGate)Parameters
| Name | Type | Description |
|---|---|---|
node | glob.UGate |
methodrewrite_parallel_single_qubit_gate¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.rewrite_parallel_single_qubit_gate
Signature
def rewrite_parallel_single_qubit_gate(node: parallel.RZ | parallel.UGate)Parameters
| Name | Type | Description |
|---|---|---|
node | parallel.RZ | parallel.UGate |
methodmove_noise_stmts¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.move_noise_stmts
Signature
def move_noise_stmts(errors: Dict[Tuple[float, float, float, float], List[int]]) -> list[ir.Statement]Parameters
| Name | Type | Description |
|---|---|---|
errors | Dict[Tuple[float, float, float, float], List[int]] |
Returns
list[ir.Statement]
methodcz_gate_noise¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.cz_gate_noise
Signature
def cz_gate_noise(ctrls: ir.SSAValue, qargs: ir.SSAValue) -> list[ir.Statement]Parameters
| Name | Type | Description |
|---|---|---|
ctrls | ir.SSAValue | |
qargs | ir.SSAValue |
Returns
list[ir.Statement]
methodrewrite_cz_gate¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.rewrite_cz_gate
methodrewrite_parallel_cz_gate¶source
bloqade.qasm2.rewrite.noise.heuristic_noise.NoiseRewriteRule.rewrite_parallel_cz_gate