quantrs2_sim/api/
prelude.rs

1//! Organized prelude modules for simulation functionality
2
3/// Essential types for basic quantum simulation
4pub mod essentials {
5    //! Core types needed for quantum circuit simulation
6
7    // Basic simulators
8    pub use crate::api::simulation::{Result, SimulatorError};
9    pub use crate::api::simulation::{Simulator, SimulatorResult, StateVectorSimulator};
10
11    // Core optimization
12    pub use crate::api::optimization::{optimize_circuit, CircuitOptimizer};
13
14    // Basic noise models
15    pub use crate::api::noise::{NoiseChannel, NoiseModel};
16}
17
18/// Complete toolkit for simulation development
19pub mod simulation {
20    //! Everything needed for advanced quantum simulation
21
22    pub use super::essentials::*;
23
24    // All simulation backends
25    pub use crate::api::simulation::*;
26    pub use crate::api::specialized::*;
27
28    // Performance optimization
29    pub use crate::api::optimization::*;
30    pub use crate::api::profiling::*;
31
32    // Memory management
33    pub use crate::api::memory::*;
34}
35
36/// GPU and high-performance computing
37pub mod gpu {
38    //! GPU and accelerated simulation backends
39
40    pub use super::essentials::*;
41
42    // GPU backends
43    pub use crate::api::gpu::*;
44
45    // SIMD operations
46    pub use crate::api::simd::*;
47
48    // High-performance optimizations
49    pub use crate::api::optimization::*;
50}
51
52/// Large-scale and distributed simulation
53pub mod distributed {
54    //! Tools for large-scale distributed quantum simulation
55
56    pub use super::simulation::*;
57
58    // Distributed simulation
59    pub use crate::api::distributed::*;
60
61    // Tensor networks
62    pub use crate::api::tensor_networks::*;
63}
64
65/// Algorithm development and research
66pub mod algorithms {
67    //! Advanced quantum algorithms and applications
68
69    pub use super::simulation::*;
70
71    // Quantum algorithms
72    pub use crate::api::algorithms::*;
73
74    // Machine learning
75    pub use crate::api::quantum_ml::*;
76
77    // Specialized methods
78    pub use crate::api::specialized::*;
79}
80
81/// Noise modeling and error correction
82pub mod noise_modeling {
83    //! Comprehensive noise modeling and error correction
84
85    pub use super::essentials::*;
86
87    // Noise models
88    pub use crate::api::noise::*;
89
90    // Error correction
91    pub use crate::api::error_correction::*;
92}
93
94/// Developer tools and debugging
95pub mod dev_tools {
96    //! Tools for simulation debugging and development
97
98    pub use super::essentials::*;
99
100    // Debugging tools
101    pub use crate::api::dev_tools::*;
102
103    // Profiling and analysis
104    pub use crate::api::profiling::*;
105
106    // SciRS2 enhanced tools
107    pub use crate::api::scirs2::*;
108}
109
110/// Legacy compatibility - provides the old flat API
111#[deprecated(
112    since = "1.0.0",
113    note = "Use organized modules like `essentials`, `simulation`, etc."
114)]
115pub mod legacy {
116    //! Backward compatibility exports
117
118    pub use crate::api::algorithms::*;
119    pub use crate::api::dev_tools::*;
120    pub use crate::api::distributed::*;
121    pub use crate::api::dynamic::*;
122    pub use crate::api::error_correction::*;
123    pub use crate::api::gates::*;
124    pub use crate::api::gpu::*;
125    pub use crate::api::measurement::*;
126    pub use crate::api::memory::*;
127    pub use crate::api::noise::*;
128    pub use crate::api::optimization::*;
129    pub use crate::api::precision::*;
130    pub use crate::api::profiling::*;
131    pub use crate::api::quantum_ml::*;
132    pub use crate::api::scirs2::*;
133    pub use crate::api::simd::*;
134    pub use crate::api::simulation::*;
135    pub use crate::api::specialized::*;
136    pub use crate::api::tensor_networks::*;
137    pub use crate::api::utils::*;
138}
139
140/// Full API re-export (non-deprecated flat access)
141pub mod full {
142    //! Complete API access with new naming conventions
143
144    pub use crate::api::algorithms::*;
145    pub use crate::api::dev_tools::*;
146    pub use crate::api::distributed::*;
147    pub use crate::api::dynamic::*;
148    pub use crate::api::error_correction::*;
149    pub use crate::api::gates::*;
150    pub use crate::api::gpu::*;
151    pub use crate::api::measurement::*;
152    pub use crate::api::memory::*;
153    pub use crate::api::noise::*;
154    pub use crate::api::optimization::*;
155    pub use crate::api::precision::*;
156    pub use crate::api::profiling::*;
157    pub use crate::api::quantum_ml::*;
158    pub use crate::api::scirs2::*;
159    pub use crate::api::simd::*;
160    pub use crate::api::simulation::*;
161    pub use crate::api::specialized::*;
162    pub use crate::api::tensor_networks::*;
163    pub use crate::api::utils::*;
164}