Skip to content

Commit d040bfe

Browse files
committed
Move unitary matrix circuit simulator to qiskit-synthesis
This isn't the most natural place ever for it, but it wasn't really any better in `qiskit-quantum-info`, and this doesn't produce problematic ordering in the dependency chain.
1 parent ed07923 commit d040bfe

5 files changed

Lines changed: 5 additions & 4 deletions

File tree

crates/pyext/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ fn _accelerate(m: &Bound<PyModule>) -> PyResult<()> {
7474
add_submodule(m, ::qiskit_quantum_info::sparse_observable::sparse_observable, "sparse_observable")?;
7575
add_submodule(m, ::qiskit_quantum_info::sparse_pauli_op::sparse_pauli_op, "sparse_pauli_op")?;
7676
add_submodule(m, ::qiskit_transpiler::passes::scheduling_mod, "scheduling")?;
77-
add_submodule(m, ::qiskit_quantum_info::unitary_sim::unitary_sim, "unitary_sim")?;
77+
add_submodule(m, ::qiskit_synthesis::matrix::sim::unitary_sim, "unitary_sim")?;
7878
add_submodule(m, ::qiskit_transpiler::passes::split_2q_unitaries_mod, "split_2q_unitaries")?;
7979
add_submodule(m, ::qiskit_synthesis::synthesis, "synthesis")?;
8080
add_submodule(m, ::qiskit_transpiler::target::target, "target")?;

crates/quantum_info/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ pub mod pauli_lindblad_map;
1515
pub mod sparse_observable;
1616
pub mod sparse_pauli_op;
1717
pub mod unitary_compose;
18-
pub mod unitary_sim;
1918
pub mod versor_u2;
2019

2120
mod rayon_ext;

crates/synthesis/src/matrix/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010
// copyright notice, and modified files need to carry a notice indicating
1111
// that they have been altered from the originals.
1212

13+
pub mod sim;
1314
pub mod two_qubit;
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ use numpy::IntoPyArray;
1616
use pyo3::prelude::*;
1717
use qiskit_circuit::circuit_data::{CircuitData, PyCircuitData};
1818
use qiskit_circuit::operations::{Operation, OperationRef, Param, StandardInstruction};
19+
use qiskit_quantum_info::unitary_compose;
1920

20-
use crate::{QiskitError, unitary_compose};
21+
use crate::QiskitError;
2122

2223
// The code is based on top of unitary_compose. For circuits with 13 or more qubits, einsum
2324
// throws an "index out of bounds" error.

crates/synthesis/src/multi_controlled/mcx.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -969,8 +969,8 @@ pub fn synth_mcx_noaux_hp24(num_controls: usize) -> PyResult<CircuitData> {
969969

970970
#[cfg(all(test, not(miri)))]
971971
mod test {
972+
use crate::matrix::sim::sim_unitary_circuit;
972973
use approx::abs_diff_eq;
973-
use qiskit_quantum_info::unitary_sim::sim_unitary_circuit;
974974

975975
use super::{increment_n_dirty_large, increment_n_dirty_small};
976976

0 commit comments

Comments
 (0)