quantrs2_core/
lib.rs

1//! Core types and traits for the QuantRS2 quantum computing framework.
2//!
3//! This crate provides the foundational types and traits used throughout
4//! the QuantRS2 ecosystem, including qubit identifiers, quantum gates,
5//! and register representations.
6
7pub mod complex_ext;
8pub mod decomposition;
9pub mod error;
10pub mod gate;
11pub mod hhl;
12pub mod memory_efficient;
13pub mod parametric;
14pub mod qaoa;
15pub mod qpca;
16pub mod quantum_counting;
17pub mod quantum_walk;
18pub mod qubit;
19pub mod register;
20pub mod simd_ops;
21pub mod testing;
22
23/// Re-exports of commonly used types and traits
24pub mod prelude {
25    // Import specific items from each module to avoid ambiguous glob re-exports
26    pub use crate::complex_ext::{quantum_states, QuantumComplexExt};
27    pub use crate::decomposition::decompose_u_gate;
28    pub use crate::decomposition::utils::{
29        clone_gate, decompose_circuit, optimize_gate_sequence, GateSequence,
30    };
31    pub use crate::error::*;
32    pub use crate::gate::*;
33    pub use crate::hhl::{hhl_example, HHLAlgorithm, HHLParams};
34    pub use crate::memory_efficient::{EfficientStateVector, StateMemoryStats};
35    pub use crate::parametric::{Parameter, ParametricGate, SymbolicParameter};
36    pub use crate::qaoa::{
37        CostHamiltonian, MixerHamiltonian, QAOACircuit, QAOAOptimizer, QAOAParams,
38    };
39    pub use crate::qpca::{DensityMatrixPCA, QPCAParams, QuantumPCA};
40    pub use crate::quantum_counting::{
41        amplitude_estimation_example, quantum_counting_example, QuantumAmplitudeEstimation,
42        QuantumCounting, QuantumPhaseEstimation,
43    };
44    pub use crate::quantum_walk::{
45        CoinOperator, ContinuousQuantumWalk, DiscreteQuantumWalk, Graph, GraphType,
46        QuantumWalkSearch, SearchOracle,
47    };
48    pub use crate::qubit::*;
49    pub use crate::register::*;
50    pub use crate::simd_ops::{
51        apply_phase_simd, controlled_phase_simd, expectation_z_simd, inner_product, normalize_simd,
52    };
53    pub use crate::testing::{
54        QuantumAssert, QuantumTest, QuantumTestSuite, TestResult, TestSuiteResult,
55        DEFAULT_TOLERANCE,
56    };
57}