quantrs2_sim/
lib.rs

1//! Quantum circuit simulators for the QuantRS2 framework.
2//!
3//! This crate provides various simulation backends for quantum circuits,
4//! including state vector simulation on CPU and optionally GPU.
5//!
6//! It includes both standard and optimized implementations, with the optimized
7//! versions leveraging SIMD, memory-efficient algorithms, and parallel processing
8//! to enable simulation of larger qubit counts (30+).
9//!
10//! ## Recent Updates (v0.1.0-beta.2)
11//!
12//! - Refined SciRS2 v0.1.0-beta.3 integration for enhanced performance
13//! - All simulators use `scirs2_core::parallel_ops` for automatic parallelization
14//! - SIMD-accelerated quantum operations via SciRS2 abstractions
15//! - Advanced linear algebra leveraging SciRS2's optimized BLAS/LAPACK bindings
16
17pub mod adaptive_gate_fusion;
18pub mod adaptive_ml_error_correction;
19pub mod adiabatic_quantum_computing;
20pub mod advanced_ml_error_mitigation;
21pub mod advanced_variational_algorithms;
22pub mod autodiff_vqe;
23pub mod automatic_parallelization;
24pub mod cache_optimized_layouts;
25pub mod circuit_interfaces;
26pub mod concatenated_error_correction;
27// CUDA-specific modules (not available on macOS)
28#[cfg(all(feature = "gpu", not(target_os = "macos")))]
29pub mod cuda;
30#[cfg(all(feature = "gpu", not(target_os = "macos")))]
31pub mod cuda_kernels;
32pub mod debugger;
33pub mod decision_diagram;
34pub mod device_noise_models;
35// Distributed GPU simulation (CUDA-based, not available on macOS)
36#[cfg(all(feature = "gpu", not(target_os = "macos")))]
37pub mod distributed_gpu;
38pub mod distributed_simulator;
39pub mod dynamic;
40pub mod enhanced_statevector;
41pub mod enhanced_tensor_networks;
42pub mod error;
43pub mod fault_tolerant_synthesis;
44pub mod fermionic_simulation;
45pub mod fpga_acceleration;
46pub mod fusion;
47pub mod hardware_aware_qml;
48pub mod holographic_quantum_error_correction;
49pub mod jit_compilation;
50pub mod large_scale_simulator;
51pub mod linalg_ops;
52pub mod memory_bandwidth_optimization;
53pub mod memory_optimization;
54pub mod memory_prefetching_optimization;
55pub mod mixed_precision;
56pub mod mixed_precision_impl;
57pub mod mps_basic;
58#[cfg(feature = "mps")]
59pub mod mps_enhanced;
60pub mod mps_simulator;
61pub mod noise_extrapolation;
62pub mod open_quantum_systems;
63pub mod opencl_amd_backend;
64pub mod operation_cache;
65pub mod parallel_tensor_optimization;
66pub mod path_integral;
67pub mod pauli;
68pub mod photonic;
69pub mod precision;
70pub mod qaoa_optimization;
71pub mod qmc;
72pub mod qml;
73pub mod qml_integration;
74pub mod quantum_advantage_demonstration;
75pub mod quantum_algorithms;
76pub mod quantum_annealing;
77pub mod quantum_cellular_automata;
78pub mod quantum_chemistry;
79pub mod quantum_chemistry_dmrg;
80pub mod quantum_cloud_integration;
81pub mod quantum_field_theory;
82pub mod quantum_gravity_simulation;
83pub mod quantum_inspired_classical;
84pub mod quantum_ldpc_codes;
85pub mod quantum_machine_learning_layers;
86pub mod quantum_ml_algorithms;
87pub mod quantum_reservoir_computing;
88pub mod quantum_reservoir_computing_enhanced;
89pub mod quantum_supremacy;
90pub mod quantum_volume;
91pub mod scirs2_complex_simd;
92pub mod scirs2_eigensolvers;
93pub mod scirs2_integration;
94pub mod scirs2_qft;
95pub mod scirs2_sparse;
96pub mod shot_sampling;
97pub mod simulator;
98pub mod sparse;
99pub mod specialized_gates;
100pub mod specialized_simulator;
101pub mod stabilizer;
102pub mod statevector;
103pub mod telemetry;
104pub mod tensor;
105pub mod topological_quantum_simulation;
106pub mod tpu_acceleration;
107pub mod trotter;
108pub mod visualization_hooks;
109
110#[cfg(feature = "advanced_math")]
111pub mod tensor_network;
112pub mod utils;
113// pub mod optimized;  // Temporarily disabled due to implementation issues
114// pub mod optimized_simulator;  // Temporarily disabled due to implementation issues
115pub mod auto_optimizer;
116pub mod benchmark;
117pub mod circuit_optimization;
118pub mod clifford_sparse;
119pub mod performance_prediction;
120
121/// New organized API for QuantRS2 Simulation 1.0
122///
123/// This module provides a hierarchical organization of the simulation API
124/// with clear naming conventions and logical grouping.
125pub mod api;
126pub mod compilation_optimization;
127pub mod diagnostics;
128pub mod memory_verification_simple;
129pub mod optimized_chunked;
130pub mod optimized_simd;
131pub mod optimized_simple;
132pub mod optimized_simulator;
133pub mod optimized_simulator_chunked;
134pub mod optimized_simulator_simple;
135pub mod performance_benchmark;
136#[cfg(test)]
137pub mod tests;
138#[cfg(test)]
139pub mod tests_optimized;
140#[cfg(test)]
141pub mod tests_quantum_inspired_classical;
142#[cfg(test)]
143pub mod tests_quantum_ml_layers;
144#[cfg(test)]
145pub mod tests_simple;
146#[cfg(test)]
147pub mod tests_tensor_network;
148#[cfg(test)]
149pub mod tests_ultrathink_implementations;
150
151/// Noise models for quantum simulation
152pub mod noise;
153
154/// Advanced noise models for realistic device simulation
155pub mod noise_advanced;
156
157/// Quantum error correction codes and utilities
158pub mod error_correction;
159
160/// Prelude module that re-exports common types and traits
161pub mod prelude {
162    pub use crate::adaptive_ml_error_correction::{
163        benchmark_adaptive_ml_error_correction, AdaptiveCorrectionResult, AdaptiveMLConfig,
164        AdaptiveMLErrorCorrection, CorrectionMetrics, ErrorCorrectionAgent,
165        FeatureExtractionMethod, FeatureExtractor, LearningStrategy, MLModelType,
166        SyndromeClassificationNetwork, TrainingExample as MLTrainingExample,
167    };
168    pub use crate::adiabatic_quantum_computing::{
169        AdiabaticBenchmarkResults, AdiabaticConfig, AdiabaticQuantumComputer, AdiabaticResult,
170        AdiabaticSnapshot, AdiabaticStats, AdiabaticUtils, GapMeasurement, GapTrackingConfig,
171        ScheduleType,
172    };
173    pub use crate::advanced_variational_algorithms::{
174        benchmark_advanced_vqa, AcquisitionFunction, AdvancedOptimizerType, AdvancedVQATrainer,
175        BayesianModel, CompressionMethod, CostFunction, FiniteDifferenceGradient,
176        GradientCalculator, GrowthCriterion, HamiltonianTerm as VQAHamiltonianTerm,
177        IsingCostFunction, MixerHamiltonian, MixerType, NetworkConnectivity,
178        OptimizationProblemType, OptimizerState as VQAOptimizerState, ParameterShiftGradient,
179        ProblemHamiltonian, QuantumActivation, TensorTopology, VQAConfig, VQAResult,
180        VQATrainerState, VQATrainingStats, VariationalAnsatz, WarmRestartConfig,
181    };
182    pub use crate::auto_optimizer::{
183        execute_with_auto_optimization, recommend_backend_for_circuit, AnalysisDepth,
184        AutoOptimizer, AutoOptimizerConfig, BackendRecommendation, BackendType,
185        CircuitCharacteristics, ConnectivityProperties, FallbackStrategy,
186        OptimizationLevel as AutoOptimizationLevel, PerformanceHistory,
187        PerformanceMetrics as AutoOptimizerPerformanceMetrics,
188    };
189    pub use crate::autodiff_vqe::{
190        ansatze, AutoDiffContext, ConvergenceCriteria, GradientMethod, ParametricCircuit,
191        ParametricGate, ParametricRX, ParametricRY, ParametricRZ, VQEIteration, VQEResult,
192        VQEWithAutodiff,
193    };
194    pub use crate::automatic_parallelization::{
195        benchmark_automatic_parallelization, AutoParallelBenchmarkResults, AutoParallelConfig,
196        AutoParallelEngine, CircuitParallelResult, DependencyGraph, GateNode,
197        LoadBalancingConfig as AutoLoadBalancingConfig, OptimizationLevel,
198        OptimizationRecommendation as ParallelOptimizationRecommendation, ParallelPerformanceStats,
199        ParallelTask, ParallelizationAnalysis, ParallelizationStrategy, RecommendationComplexity,
200        RecommendationType, ResourceConstraints, ResourceSnapshot, ResourceUtilization,
201        TaskCompletionStats, TaskPriority, WorkStealingStrategy,
202    };
203    pub use crate::cache_optimized_layouts::{
204        CacheHierarchyConfig, CacheLayoutAdaptationResult, CacheOperationStats,
205        CacheOptimizedGateManager, CacheOptimizedLayout, CacheOptimizedStateVector,
206        CachePerformanceStats, CacheReplacementPolicy,
207    };
208    pub use crate::circuit_interfaces::{
209        BackendCompiledData, CircuitExecutionResult, CircuitInterface, CircuitInterfaceConfig,
210        CircuitInterfaceStats, CircuitInterfaceUtils, CircuitMetadata, CircuitOptimizationResult,
211        CompilationMetadata, CompiledCircuit, InterfaceBenchmarkResults, InterfaceCircuit,
212        InterfaceGate, InterfaceGateType, OptimizationStats, SimulationBackend, StabilizerOp,
213    };
214    pub use crate::circuit_optimization::{
215        optimize_circuit, optimize_circuit_with_config, CircuitOptimizer, OptimizationConfig,
216        OptimizationResult, OptimizationStatistics,
217    };
218    pub use crate::clifford_sparse::{CliffordGate, SparseCliffordSimulator};
219    pub use crate::compilation_optimization::{
220        CompilationAnalysis, CompilationOptimizer, CompilationOptimizerConfig,
221        OptimizationRecommendation, OptimizationType, RecommendationPriority,
222    };
223    pub use crate::concatenated_error_correction::{
224        benchmark_concatenated_error_correction, create_standard_concatenated_code, CodeParameters,
225        ConcatenatedCodeConfig, ConcatenatedCorrectionResult, ConcatenatedErrorCorrection,
226        ConcatenationLevel, ConcatenationStats, DecodingResult, ErrorCorrectionCode, ErrorType,
227        HierarchicalDecodingMethod, LevelDecodingResult,
228    };
229    #[cfg(all(feature = "advanced_math", not(target_os = "macos")))]
230    pub use crate::cuda_kernels::{CudaContext, CudaDeviceProperties, CudaKernel};
231    #[cfg(all(feature = "gpu", not(target_os = "macos")))]
232    pub use crate::cuda_kernels::{
233        CudaKernelConfig, CudaKernelStats, CudaQuantumKernels, GateType as CudaGateType,
234        OptimizationLevel as CudaOptimizationLevel,
235    };
236    pub use crate::debugger::{
237        BreakCondition, DebugConfig, DebugReport, PerformanceMetrics, QuantumDebugger, StepResult,
238        WatchFrequency, WatchProperty, Watchpoint,
239    };
240    pub use crate::decision_diagram::{
241        benchmark_dd_simulator, DDNode, DDOptimizer, DDSimulator, DDStats, DecisionDiagram, Edge,
242    };
243    pub use crate::device_noise_models::{
244        CalibrationData, CoherenceParameters, DeviceNoiseConfig, DeviceNoiseModel,
245        DeviceNoiseSimulator, DeviceNoiseUtils, DeviceTopology, DeviceType, FrequencyDrift,
246        GateErrorRates, GateTimes, NoiseBenchmarkResults, NoiseSimulationStats,
247        SuperconductingNoiseModel,
248    };
249    pub use crate::distributed_simulator::{
250        benchmark_distributed_simulation, ChunkMetadata, CommunicationConfig, CommunicationManager,
251        CommunicationPattern, CommunicationRequirements, DistributedGateOperation,
252        DistributedPerformanceStats, DistributedQuantumSimulator, DistributedSimulatorConfig,
253        DistributionStrategy, FaultToleranceConfig, FaultToleranceMessage, FaultToleranceStats,
254        LoadBalancer, LoadBalancingCommand, LoadBalancingConfig,
255        LoadBalancingStrategy as DistributedLoadBalancingStrategy, NetworkConfig, NetworkMessage,
256        NetworkStats, NodeCapabilities, NodeInfo, NodePerformanceStats, NodeStatus,
257        OperationPriority, RebalancingStats, SimulationState, StateChunk, SynchronizationLevel,
258        WorkDistribution,
259    };
260    pub use crate::dynamic::*;
261    pub use crate::enhanced_statevector::EnhancedStateVectorSimulator;
262    pub use crate::error::{Result, SimulatorError};
263    #[allow(unused_imports)]
264    pub use crate::error_correction::*;
265    pub use crate::fermionic_simulation::{
266        benchmark_fermionic_simulation, FermionicHamiltonian, FermionicOperator,
267        FermionicSimulator, FermionicStats, FermionicString, JordanWignerTransform,
268    };
269    pub use crate::fusion::{
270        benchmark_fusion_strategies, FusedGate, FusionStats, FusionStrategy, GateFusion, GateGroup,
271        OptimizedCircuit, OptimizedGate,
272    };
273    pub use crate::holographic_quantum_error_correction::{
274        benchmark_holographic_qec, BulkReconstructionMethod, BulkReconstructionResult,
275        HolographicCodeType, HolographicQECBenchmarkResults, HolographicQECConfig,
276        HolographicQECResult, HolographicQECSimulator, HolographicQECStats, HolographicQECUtils,
277    };
278    pub use crate::jit_compilation::{
279        benchmark_jit_compilation, CompilationPriority, CompilationStatus, CompiledFunction,
280        CompiledGateSequence, GateSequencePattern, JITBenchmarkResults, JITCompiler, JITConfig,
281        JITOptimization, JITOptimizationLevel, JITPerformanceStats, JITQuantumSimulator,
282        JITSimulatorStats, OptimizationSuggestion, PatternAnalysisResult, PatternComplexity,
283        RuntimeProfiler, RuntimeProfilerStats,
284    };
285    pub use crate::large_scale_simulator::{
286        CompressedQuantumState, CompressionAlgorithm, CompressionMetadata,
287        LargeScaleQuantumSimulator, LargeScaleSimulatorConfig, MemoryMappedQuantumState,
288        MemoryStatistics as LargeScaleMemoryStatistics, QuantumStateRepresentation,
289        SparseQuantumState,
290    };
291    pub use crate::memory_bandwidth_optimization::{
292        BandwidthMonitor, MemoryBandwidthOptimizer, MemoryLayout, MemoryOptimizationConfig,
293        MemoryOptimizationReport, MemoryStats, OptimizedStateVector,
294    };
295    pub use crate::memory_optimization::{
296        AdvancedMemoryPool, MemoryStats as AdvancedMemoryStats, NumaAwareAllocator,
297    };
298    pub use crate::memory_prefetching_optimization::{
299        AccessPatternPredictor, AccessPatternType, DataLocalityOptimizer,
300        LocalityOptimizationResult, LocalityStrategy, LoopPattern, MemoryPrefetcher, NUMATopology,
301        PerformanceFeedback, PrefetchConfig, PrefetchHint, PrefetchStats, PrefetchStrategy,
302    };
303    pub use crate::mps_basic::{BasicMPS, BasicMPSConfig, BasicMPSSimulator};
304    #[cfg(feature = "mps")]
305    pub use crate::mps_enhanced::{utils::*, EnhancedMPS, EnhancedMPSSimulator, MPSConfig};
306    pub use crate::mps_simulator::{MPSSimulator, MPS};
307    pub use crate::noise::*;
308    pub use crate::noise::{NoiseChannel, NoiseModel};
309    pub use crate::noise_advanced::*;
310    pub use crate::noise_advanced::{AdvancedNoiseModel, RealisticNoiseModelBuilder};
311    pub use crate::noise_extrapolation::{
312        benchmark_noise_extrapolation, DistillationProtocol, ExtrapolationMethod, FitStatistics,
313        NoiseScalingMethod, SymmetryOperation, SymmetryVerification, SymmetryVerificationResult,
314        VirtualDistillation, VirtualDistillationResult, ZNEResult, ZeroNoiseExtrapolator,
315    };
316    pub use crate::open_quantum_systems::{
317        quantum_fidelity, CompositeNoiseModel, EvolutionResult, IntegrationMethod, LindladOperator,
318        LindladSimulator, NoiseModelBuilder, ProcessTomography, QuantumChannel,
319    };
320    pub use crate::opencl_amd_backend::{
321        benchmark_amd_opencl_backend, AMDOpenCLSimulator, KernelArg, MemoryFlags, OpenCLBuffer,
322        OpenCLConfig, OpenCLDevice, OpenCLDeviceType, OpenCLKernel, OpenCLPlatform, OpenCLStats,
323        OptimizationLevel as OpenCLOptimizationLevel,
324    };
325    pub use crate::operation_cache::{
326        CacheConfig, CacheStats, CachedData, CachedOperation, EvictionPolicy, GateMatrixCache,
327        OperationKey, QuantumOperationCache,
328    };
329    pub use crate::parallel_tensor_optimization::{
330        ContractionPair, LoadBalancingStrategy, NumaTopology, ParallelTensorConfig,
331        ParallelTensorEngine, ParallelTensorStats, TensorWorkQueue, TensorWorkUnit,
332        ThreadAffinityConfig,
333    };
334    pub use crate::path_integral::{
335        benchmark_path_integral_methods, ConvergenceStats, PathIntegralConfig, PathIntegralMethod,
336        PathIntegralResult, PathIntegralSimulator, PathIntegralStats, PathIntegralUtils,
337        QuantumPath,
338    };
339    pub use crate::pauli::{PauliOperator, PauliOperatorSum, PauliString, PauliUtils};
340    pub use crate::performance_benchmark::{
341        run_comprehensive_benchmark, run_quick_benchmark, BenchmarkComparison, BenchmarkConfig,
342        BenchmarkResult, MemoryStats as BenchmarkMemoryStats, QuantumBenchmarkSuite,
343        ScalabilityAnalysis, ThroughputStats, TimingStats,
344    };
345    pub use crate::performance_prediction::{
346        create_performance_predictor, predict_circuit_execution_time, ComplexityMetrics,
347        ExecutionDataPoint, ModelType, PerformanceHardwareSpecs, PerformancePredictionConfig,
348        PerformancePredictionEngine, PerformanceTimingStatistics, PredictionMetadata,
349        PredictionResult, PredictionStatistics, PredictionStrategy, ResourceMetrics, TrainedModel,
350        TrainingStatistics,
351    };
352    pub use crate::photonic::{
353        benchmark_photonic_methods, FockState, PhotonicConfig, PhotonicMethod, PhotonicOperator,
354        PhotonicResult, PhotonicSimulator, PhotonicState, PhotonicStats, PhotonicUtils,
355    };
356    pub use crate::precision::{
357        benchmark_precisions, AdaptivePrecisionConfig, AdaptiveStateVector, ComplexAmplitude,
358        ComplexF16, Precision, PrecisionStats, PrecisionTracker,
359    };
360    pub use crate::qaoa_optimization::{
361        benchmark_qaoa, LevelTransitionCriteria, MultiLevelQAOAConfig, QAOAConfig, QAOAConstraint,
362        QAOAGraph, QAOAInitializationStrategy, QAOALevel, QAOAMixerType, QAOAOptimizationStrategy,
363        QAOAOptimizer, QAOAProblemType, QAOAResult, QAOAStats,
364        QuantumAdvantageMetrics as QAOAQuantumAdvantageMetrics, SolutionQuality,
365    };
366    pub use crate::qmc::{DMCResult, PIMCResult, VMCResult, Walker, WaveFunction, DMC, PIMC, VMC};
367    pub use crate::qml_integration::{
368        AdamOptimizer, LossFunction, OptimizerType, QMLBenchmarkResults, QMLFramework,
369        QMLIntegration, QMLIntegrationConfig, QMLLayer, QMLLayerType, QMLOptimizer,
370        QMLTrainingStats, QMLUtils, QuantumNeuralNetwork, SGDOptimizer, TrainingConfig,
371        TrainingExample, TrainingResult,
372    };
373    pub use crate::quantum_advantage_demonstration::{
374        benchmark_quantum_advantage, ClassicalAlgorithm, ClassicalAlgorithmType,
375        ClassicalHardwareSpecs, ClassicalResources, CostAnalysis, DetailedResult,
376        FutureProjections, HardwareSpecs, MarketImpact, OperationalCosts, ProblemDomain,
377        ProblemInstance, QuantumAdvantageConfig, QuantumAdvantageDemonstrator,
378        QuantumAdvantageMetrics, QuantumAdvantageResult, QuantumAdvantageType, QuantumAlgorithm,
379        QuantumHardwareSpecs, QuantumResources, ScalingAnalysis, StatisticalAnalysis,
380        TechnologyProjection, TimelineProjection, VerificationResult,
381    };
382    pub use crate::quantum_algorithms::{
383        benchmark_quantum_algorithms, AlgorithmResourceStats, EnhancedPhaseEstimation,
384        GroverResult, OptimizationLevel as AlgorithmOptimizationLevel, OptimizedGroverAlgorithm,
385        OptimizedShorAlgorithm, PhaseEstimationResult, QuantumAlgorithmConfig, ShorResult,
386    };
387    pub use crate::quantum_annealing::{
388        AnnealingBenchmarkResults, AnnealingResult, AnnealingScheduleType, AnnealingSolution,
389        AnnealingStats, AnnealingTopology, IsingProblem, ProblemType, QUBOProblem,
390        QuantumAnnealingConfig, QuantumAnnealingSimulator, QuantumAnnealingUtils,
391    };
392    pub use crate::quantum_cellular_automata::{
393        BoundaryConditions, MeasurementStrategy, NeighborhoodType, QCABenchmarkResults, QCAConfig,
394        QCAEvolutionResult, QCARule, QCARuleType, QCASnapshot, QCAStats, QCAUtils,
395        QuantumCellularAutomaton,
396    };
397    pub use crate::quantum_chemistry_dmrg::{
398        benchmark_quantum_chemistry_dmrg, AccuracyLevel, AccuracyMetrics, ActiveSpaceAnalysis,
399        ActiveSpaceConfig, AtomicCenter, BasisFunction, BasisSetType, BenchmarkPerformanceMetrics,
400        ComputationalCostEstimate, ConvergenceInfo, DMRGResult, DMRGSimulationStats, DMRGState,
401        ElectronicStructureMethod, ExchangeCorrelationFunctional, MemoryStatistics,
402        MolecularHamiltonian, MoleculeBenchmarkResult, OrbitalSelectionStrategy,
403        PointGroupSymmetry, QuantumChemistryBenchmarkResults, QuantumChemistryDMRGConfig,
404        QuantumChemistryDMRGSimulator, QuantumChemistryDMRGUtils, QuantumNumberSector,
405        ScalingBehavior, SpectroscopicProperties, TestMolecule, TimingStatistics, ValidationResult,
406    };
407    pub use crate::quantum_field_theory::{
408        ActionEvaluator, ActionType, CorrelationFunction, FieldOperator, FieldOperatorType,
409        FieldTheoryType, FixedPoint, FixedPointType, GaugeFieldConfig, GaugeFixing, GaugeGroup,
410        LatticeParameters, MonteCarloAlgorithm, MonteCarloState, ParticleState,
411        PathIntegralConfig as QFTPathIntegralConfig, PathIntegralSampler, QFTBoundaryConditions,
412        QFTConfig as QuantumFieldTheoryConfig, QFTStats as QuantumFieldTheoryStats,
413        QuantumFieldTheorySimulator, RGFlow, RenormalizationScheme, ScatteringProcess,
414        TimeOrdering, WilsonLoop,
415    };
416    pub use crate::quantum_gravity_simulation::{
417        benchmark_quantum_gravity_simulation, AdSCFTConfig, AsymptoticSafetyConfig,
418        BackgroundMetric, BoundaryRegion, BoundaryTheory, BulkGeometry, CDTConfig,
419        ConvergenceInfo as GravityConvergenceInfo, EntanglementStructure,
420        FixedPoint as GravityFixedPoint, FixedPointStability, GeometryMeasurements,
421        GravityApproach, GravityBenchmarkResults, GravitySimulationResult, GravitySimulationStats,
422        HolographicDuality, Intertwiner, LQGConfig, QuantumGravityConfig, QuantumGravitySimulator,
423        QuantumGravityUtils, RGTrajectory, RTSurface, SU2Element, Simplex, SimplexType,
424        SimplicialComplex, SpacetimeState, SpacetimeVertex, SpinNetwork, SpinNetworkEdge,
425        SpinNetworkNode, TimeSlice, TopologyMeasurements,
426    };
427    pub use crate::quantum_inspired_classical::{
428        benchmark_quantum_inspired_algorithms, ActivationFunction, AlgorithmCategory,
429        AlgorithmConfig, BenchmarkingConfig, BenchmarkingResults, CommunityDetectionParams,
430        ComparisonStats, ConstraintMethod, ContractionMethod, ConvergenceAnalysis, ExecutionStats,
431        GraphAlgorithm, GraphConfig, GraphMetrics, GraphResult, LinalgAlgorithm, LinalgConfig,
432        LinalgResult, MLAlgorithm, MLConfig, MLTrainingResult, NetworkArchitecture,
433        ObjectiveFunction, OptimizationAlgorithm, OptimizationConfig as QIOptimizationConfig,
434        OptimizationResult as QIOptimizationResult, OptimizerType as QIOptimizerType,
435        PerformanceAnalysisConfig, ProposalDistribution,
436        QuantumAdvantageMetrics as QIQuantumAdvantageMetrics, QuantumInspiredConfig,
437        QuantumInspiredFramework, QuantumInspiredStats, QuantumInspiredUtils, QuantumParameters,
438        QuantumWalkParams, RuntimeStats, SampleStatistics, SamplingAlgorithm, SamplingConfig,
439        SamplingResult, StatisticalAnalysis as QIStatisticalAnalysis, TemperatureSchedule,
440        TensorNetworkConfig, TensorTopology as QITensorTopology,
441        TrainingConfig as QITrainingConfig, WalkStatistics, WaveFunctionConfig, WaveFunctionType,
442    };
443    pub use crate::quantum_ldpc_codes::{
444        benchmark_quantum_ldpc_codes, BPDecodingResult, BeliefPropagationAlgorithm, CheckNode,
445        LDPCConfig, LDPCConstructionMethod, LDPCStats, QuantumLDPCCode, TannerGraph, VariableNode,
446    };
447    pub use crate::quantum_machine_learning_layers::{
448        benchmark_quantum_ml_layers, AdversarialAttackMethod, AdversarialDefenseMethod,
449        AdversarialTrainingConfig, AlternatingSchedule, AnsatzType, AttentionHead,
450        BenchmarkingProtocols, CachingConfig, CalibrationFrequency, ClassicalArchitecture,
451        ClassicalPreprocessingConfig, ComputationOptimizationConfig, ConnectivityConstraints,
452        ConvolutionalFilter, DataEncodingMethod, DenseConnection,
453        DistillationProtocol as QMLDistillationProtocol, EarlyStoppingConfig, EnsembleMethod,
454        EnsembleMethodsConfig, EntanglementPattern, ErrorMitigationConfig, FeatureSelectionConfig,
455        FeatureSelectionMethod, GradientFlowConfig, GradientMethod as QMLGradientMethod,
456        HardwareOptimizationConfig, HardwareOptimizationLevel, HybridTrainingConfig, LSTMGate,
457        LSTMGateType, LearningRateSchedule,
458        MemoryOptimizationConfig as QMLMemoryOptimizationConfig, NoiseAwareTrainingConfig,
459        NoiseCharacterizationConfig, NoiseCharacterizationMethod, NoiseInjectionConfig,
460        NoiseParameters, NoiseType, OptimizerType as QMLOptimizerType, PQCGate, PQCGateType,
461        ParallelizationConfig, ParameterizedQuantumCircuitLayer, PerformanceOptimizationConfig,
462        QMLArchitectureType, QMLBenchmarkResults as QMLLayersQMLBenchmarkResults, QMLConfig,
463        QMLEpochMetrics, QMLLayer as QMLLayersQMLLayer, QMLLayerConfig,
464        QMLLayerType as QMLLayersQMLLayerType, QMLStats, QMLTrainingAlgorithm, QMLTrainingConfig,
465        QMLTrainingResult, QMLTrainingState, QMLUtils as QMLLayersQMLUtils,
466        QuantumAdvantageMetrics as QMLQuantumAdvantageMetrics, QuantumAttentionLayer,
467        QuantumClassicalInterface, QuantumConvolutionalLayer, QuantumDenseLayer,
468        QuantumHardwareTarget, QuantumLSTMLayer, QuantumMLFramework, RegularizationConfig,
469        RobustTrainingConfig, RotationGate, ScalingMethod, TwoQubitGate, VirtualDistillationConfig,
470        VotingStrategy,
471    };
472    pub use crate::quantum_ml_algorithms::{
473        benchmark_quantum_ml_algorithms, GradientMethod as QMLAlgorithmsGradientMethod,
474        HardwareArchitecture, HardwareAwareCompiler, HardwareMetrics, HardwareOptimizations,
475        OptimizerState, OptimizerType as QMLAlgorithmsOptimizerType, ParameterizedQuantumCircuit,
476        QMLAlgorithmType, QMLConfig as QMLAlgorithmsConfig, QuantumMLTrainer, TrainingHistory,
477        TrainingResult as QMLAlgorithmsTrainingResult,
478    };
479    pub use crate::quantum_reservoir_computing::{
480        benchmark_quantum_reservoir_computing, InputEncoding, OutputMeasurement,
481        QuantumReservoirArchitecture, QuantumReservoirComputer, QuantumReservoirConfig,
482        QuantumReservoirState, ReservoirDynamics, ReservoirMetrics, ReservoirTrainingData,
483        TrainingResult as ReservoirTrainingResult,
484    };
485    pub use crate::quantum_reservoir_computing_enhanced::{
486        benchmark_enhanced_quantum_reservoir_computing, ARIMAParams,
487        ActivationFunction as ReservoirActivationFunction, AdvancedLearningConfig, IPCFunction,
488        LearningAlgorithm, MemoryAnalysisConfig, MemoryAnalyzer, MemoryKernel, MemoryMetrics,
489        MemoryTask, NARState, QuantumReservoirComputerEnhanced,
490        ReservoirTrainingData as EnhancedReservoirTrainingData, TimeSeriesConfig,
491        TimeSeriesPredictor, TrainingExample as ReservoirTrainingExample,
492        TrainingResult as EnhancedTrainingResult, TrendModel,
493    };
494    pub use crate::quantum_supremacy::{
495        benchmark_quantum_supremacy, verify_supremacy_claim, CircuitLayer, CostComparison,
496        CrossEntropyResult, GateSet, HOGAnalysis, PorterThomasResult, QuantumGate,
497        QuantumSupremacyVerifier, RandomCircuit, VerificationParams,
498    };
499    pub use crate::quantum_volume::{
500        benchmark_quantum_volume, calculate_quantum_volume_with_params, QVCircuit, QVGate,
501        QVParams, QVStats, QuantumVolumeCalculator, QuantumVolumeResult,
502    };
503    pub use crate::scirs2_complex_simd::{
504        apply_cnot_complex_simd, apply_hadamard_gate_complex_simd,
505        apply_single_qubit_gate_complex_simd, benchmark_complex_simd_operations, ComplexSimdOps,
506        ComplexSimdVector,
507    };
508    pub use crate::scirs2_eigensolvers::{
509        benchmark_spectral_analysis, BandStructureResult, EntanglementSpectrumResult,
510        PhaseTransitionResult, QuantumHamiltonianLibrary, SciRS2SpectralAnalyzer,
511        SpectralAnalysisResult, SpectralConfig, SpectralDensityResult, SpectralStatistics,
512    };
513    pub use crate::scirs2_integration::{
514        BackendStats as SciRS2BackendStats, SciRS2Backend, SciRS2Matrix, SciRS2MemoryAllocator,
515        SciRS2ParallelContext, SciRS2SimdConfig, SciRS2SimdContext, SciRS2Vector,
516        SciRS2VectorizedFFT,
517    };
518    // SciRS2Backend already exported above with scirs2_integration module
519    pub use crate::scirs2_qft::{
520        benchmark_qft_methods, compare_qft_accuracy, QFTConfig, QFTMethod, QFTStats, QFTUtils,
521        SciRS2QFT,
522    };
523    pub use crate::scirs2_sparse::{
524        benchmark_sparse_solvers, compare_sparse_solver_accuracy, Preconditioner,
525        SciRS2SparseSolver, SparseEigenResult, SparseFormat, SparseMatrix, SparseMatrixUtils,
526        SparseSolverConfig, SparseSolverMethod, SparseSolverStats,
527    };
528    pub use crate::shot_sampling::{
529        analysis, BitString, ComparisonResult, ConvergenceResult, ExpectationResult,
530        MeasurementStatistics, NoiseModel as SamplingNoiseModel, QuantumSampler,
531        SamplingConfig as ShotSamplingConfig, ShotResult, SimpleReadoutNoise,
532    };
533    #[allow(unused_imports)]
534    pub use crate::simulator::*;
535    pub use crate::simulator::{Simulator, SimulatorResult};
536    pub use crate::sparse::{apply_sparse_gate, CSRMatrix, SparseGates, SparseMatrixBuilder};
537    pub use crate::specialized_gates::{
538        specialize_gate, CNOTSpecialized, CPhaseSpecialized, CZSpecialized, FredkinSpecialized,
539        HadamardSpecialized, PauliXSpecialized, PauliYSpecialized, PauliZSpecialized,
540        PhaseSpecialized, RXSpecialized, RYSpecialized, RZSpecialized, SGateSpecialized,
541        SWAPSpecialized, SpecializedGate, TGateSpecialized, ToffoliSpecialized,
542    };
543    pub use crate::specialized_simulator::{
544        benchmark_specialization, SpecializationStats, SpecializedSimulatorConfig,
545        SpecializedStateVectorSimulator,
546    };
547    pub use crate::stabilizer::{is_clifford_circuit, StabilizerGate, StabilizerSimulator};
548    pub use crate::statevector::StateVectorSimulator;
549    pub use crate::telemetry::{
550        benchmark_telemetry, Alert, AlertLevel, AlertThresholds, DiskIOStats, MetricsSummary,
551        NetworkIOStats, PerformanceSnapshot, QuantumMetrics, TelemetryCollector, TelemetryConfig,
552        TelemetryExportFormat, TelemetryMetric,
553    };
554    pub use crate::topological_quantum_simulation::{
555        AnyonModel, AnyonType, LatticeType, TopologicalBoundaryConditions, TopologicalConfig,
556        TopologicalErrorCode, TopologicalQuantumSimulator,
557    };
558    pub use crate::tpu_acceleration::{
559        benchmark_tpu_acceleration, CommunicationBackend, DistributedContext, MemoryOptimization,
560        TPUConfig, TPUDataType, TPUDeviceInfo, TPUDeviceType, TPUMemoryManager,
561        TPUQuantumSimulator, TPUStats, TPUTensorBuffer, TPUTopology, XLAComputation,
562    };
563    pub use crate::trotter::{
564        Hamiltonian, HamiltonianLibrary, HamiltonianTerm, TrotterDecomposer, TrotterMethod,
565    };
566    pub use crate::visualization_hooks::{
567        benchmark_visualization, ASCIIVisualizationHook, ColorScheme, GateVisualizationData,
568        JSONVisualizationHook, VisualizationConfig, VisualizationData, VisualizationFramework,
569        VisualizationHook, VisualizationManager,
570    };
571
572    #[cfg(all(feature = "gpu", not(target_os = "macos")))]
573    pub use crate::gpu_linalg::{benchmark_gpu_linalg, GpuLinearAlgebra};
574    #[allow(unused_imports)]
575    pub use crate::statevector::*;
576    pub use crate::tensor::*;
577    pub use crate::utils::*;
578    pub use scirs2_core::Complex64;
579}
580
581/// A placeholder for future error correction code implementations
582#[derive(Debug, Clone)]
583pub struct ErrorCorrection;
584
585// For backward compatibility, also re-export the prelude at the top level
586#[deprecated(since = "1.0.0", note = "Use api::prelude modules for new code")]
587pub use prelude::*;
588
589/// Convenient access to the new organized simulation API
590///
591/// # Examples
592///
593/// ```rust
594/// // For basic simulation
595/// use quantrs2_sim::v1::essentials::*;
596///
597/// // For GPU simulation
598/// use quantrs2_sim::v1::gpu::*;
599///
600/// // For distributed simulation
601/// use quantrs2_sim::v1::distributed::*;
602/// ```
603pub mod v1 {
604    pub use crate::api::prelude::*;
605}
606
607// CUDA-based GPU implementation (Linux/Windows with NVIDIA GPU)
608#[cfg(all(feature = "gpu", not(target_os = "macos")))]
609pub mod gpu;
610
611#[cfg(all(feature = "gpu", not(target_os = "macos")))]
612pub mod gpu_linalg;
613
614// Metal-based GPU implementation for macOS (future implementation)
615#[cfg(all(feature = "gpu", target_os = "macos"))]
616pub mod gpu_metal;
617
618#[cfg(all(feature = "gpu", target_os = "macos"))]
619pub mod gpu_linalg_metal;
620
621#[cfg(feature = "advanced_math")]
622pub use crate::tensor_network::*;
623
624// Temporarily disabled features
625// pub use crate::optimized::*;
626// pub use crate::optimized_simulator::*;