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