Closed raynelfss closed 1 month ago
Changes Missing Coverage | Covered Lines | Changed/Added Lines | % | ||
---|---|---|---|---|---|
crates/circuit/src/interner.rs | 16 | 17 | 94.12% | ||
crates/circuit/src/circuit_data.rs | 21 | 23 | 91.3% | ||
crates/circuit/src/circuit_instruction.rs | 3 | 9 | 33.33% | ||
crates/circuit/src/operations.rs | 10 | 17 | 58.82% | ||
crates/circuit/src/packed_instruction.rs | 65 | 72 | 90.28% | ||
qiskit/visualization/dag_visualization.py | 5 | 20 | 25.0% | ||
crates/circuit/src/dag_node.rs | 167 | 193 | 86.53% | ||
crates/circuit/src/dot_utils.rs | 0 | 68 | 0.0% | ||
crates/circuit/src/rustworkx_core_vnext.rs | 598 | 917 | 65.21% | ||
crates/circuit/src/dag_circuit.rs | 4064 | 4614 | 88.08% | ||
<!-- | Total: | 5057 | 6058 | 83.48% | --> |
Files with Coverage Reduction | New Missed Lines | % | ||
---|---|---|---|---|
crates/circuit/src/interner.rs | 1 | 78.79% | ||
qiskit/circuit/instruction.py | 1 | 95.27% | ||
qiskit/transpiler/passes/routing/stochastic_swap.py | 1 | 95.39% | ||
qiskit/dagcircuit/dagnode.py | 1 | 85.37% | ||
crates/circuit/src/circuit_instruction.rs | 4 | 88.5% | ||
qiskit/dagcircuit/dagdependency_v2.py | 5 | 67.62% | ||
crates/qasm2/src/lex.rs | 5 | 92.48% | ||
crates/circuit/src/dag_node.rs | 7 | 83.61% | ||
crates/qasm2/src/parse.rs | 12 | 96.23% | ||
crates/circuit/src/operations.rs | 14 | 88.19% | ||
<!-- | Total: | 51 | --> |
Totals | |
---|---|
Change from base Build 10525107270: | -0.5% |
Covered Lines: | 71614 |
Relevant Lines: | 80403 |
Solves #13003
Summary
Tracked by #13001 and preceeded by #12975 The following commits aim to add a
DAGCircuit::add_from_iter()
to add a chain ofDAGOpNodes
to the DAGCircuit based on a sequence ofPackedInstruction
.Details and comments
These commits add the following two methods:
DAGCircuit::add_from_iter()
to add a sequence ofPackedInstruction
continously avoiding having to re-add each bit/var's output node each time an instruction is added. The addition of the output node is only performed once all instructions have been added correctly to the DAGCircuit.Known issues:
PyObject
which are not hashable.One possible solution would be to use a.PyDict
however the structures that are being stored within this mapping are rust-native (NodeIndex
,Wire
)Another solution would be to somehow internalize these structures, which I'm still thinking on how to do.Blockers