quantrs2_core/api/
mod.rs

1//! Organized public API for QuantRS2 Core
2//!
3//! This module provides a hierarchical organization of the core crate's public API,
4//! designed for the 1.0 release with clear naming conventions and logical grouping.
5
6pub mod prelude;
7
8/// Core quantum computing primitives and fundamental types
9pub mod quantum {
10    pub use crate::gate::*;
11    /// Basic quantum types
12    pub use crate::qubit::*;
13    pub use crate::register::*;
14
15    /// Quantum operations and measurements
16    pub use crate::operations::{
17        apply_and_sample, sample_outcome, MeasurementOutcome, OperationResult, POVMMeasurement,
18        ProjectiveMeasurement, QuantumOperation, Reset,
19    };
20
21    /// Error handling
22    pub use crate::error::*;
23}
24
25/// Circuit decomposition and synthesis tools
26pub mod synthesis {
27    pub use crate::cartan::{
28        cartan_decompose, CartanCoefficients, CartanDecomposer, CartanDecomposition,
29        OptimizedCartanDecomposer,
30    };
31    pub use crate::decomposition::clifford_t::{
32        count_t_gates_in_sequence, optimize_gate_sequence as optimize_clifford_t_sequence,
33        CliffordGate, CliffordTDecomposer, CliffordTGate, CliffordTSequence,
34    };
35    pub use crate::decomposition::decompose_u_gate;
36    pub use crate::decomposition::solovay_kitaev::{
37        count_t_gates, BaseGateSet, SolovayKitaev, SolovayKitaevConfig,
38    };
39    pub use crate::decomposition::utils::{
40        clone_gate, decompose_circuit, optimize_gate_sequence, GateSequence,
41    };
42    pub use crate::kak_multiqubit::{
43        kak_decompose_multiqubit, DecompositionMethod, DecompositionStats, DecompositionTree,
44        KAKTreeAnalyzer, MultiQubitKAK, MultiQubitKAKDecomposer,
45    };
46    pub use crate::shannon::{shannon_decompose, OptimizedShannonDecomposer, ShannonDecomposer};
47    pub use crate::synthesis::{
48        decompose_single_qubit_xyx, decompose_single_qubit_zyz, decompose_two_qubit_kak,
49        identify_gate, synthesize_unitary, KAKDecomposition, SingleQubitDecomposition,
50    };
51}
52
53/// Mathematical operations and linear algebra
54pub mod math {
55    pub use crate::complex_ext::{quantum_states, QuantumComplexExt};
56    pub use crate::matrix_ops::{
57        matrices_approx_equal, partial_trace, tensor_product_many, DenseMatrix, QuantumMatrix,
58        SparseMatrix,
59    };
60    pub use crate::simd_ops::{
61        apply_phase_simd, controlled_phase_simd, expectation_z_simd, inner_product, normalize_simd,
62    };
63}
64
65/// Performance computing backends
66pub mod backends {
67    pub use crate::gpu::{
68        cpu_backend::CpuBackend, initialize_adaptive_simd, GpuBackend, GpuBackendFactory,
69        GpuBuffer, GpuConfig, GpuKernel, GpuStateVector, OptimizationConfig, SpecializedGpuKernels,
70    };
71    pub use crate::platform::*;
72}
73
74/// Optimization and compilation tools
75pub mod optimization {
76    pub use crate::compilation_cache::{
77        get_compilation_cache, initialize_compilation_cache, CacheConfig, CacheStatistics,
78        CompilationCache, CompiledGate,
79    };
80    pub use crate::optimization::compression::{
81        CompressedGate, CompressionConfig, CompressionStats, CompressionType, GateMetadata,
82        GateSequenceCompressor,
83    };
84    pub use crate::optimization::fusion::{CliffordFusion, GateFusion};
85    pub use crate::optimization::lazy_evaluation::{
86        LazyEvaluationConfig, LazyEvaluationStats, LazyGateContext, LazyOptimizationPipeline,
87        OptimizationResult as LazyOptimizationResult, OptimizationStats,
88    };
89    pub use crate::optimization::peephole::{PeepholeOptimizer, TCountOptimizer};
90    pub use crate::optimization::zx_optimizer::ZXOptimizationPass;
91    pub use crate::optimization::{
92        gates_are_disjoint, gates_can_commute, OptimizationChain, OptimizationPass,
93    };
94    pub use crate::real_time_compilation::{
95        CompilationContext, HardwareTarget, OptimizationPipeline, PerformanceMonitor,
96        RealTimeQuantumCompiler,
97    };
98}
99
100/// Developer tools and utilities
101pub mod dev_tools {
102    pub use crate::quantum_debugger::*;
103    pub use crate::quantum_debugging_profiling::{
104        CircuitAnalysisReport, ProfilingReport, QuantumCircuitAnalyzer, QuantumDebugProfiling,
105        QuantumDebugProfilingReport, QuantumDebugger, QuantumErrorTracker,
106        QuantumPerformanceProfiler, QuantumStateInspector, StateInspectionReport,
107    };
108    pub use crate::testing::{
109        QuantumAssert, QuantumTest, QuantumTestSuite, TestResult, TestSuiteResult,
110        DEFAULT_TOLERANCE,
111    };
112}
113
114/// Error correction and noise models
115pub mod error_correction {
116    pub use crate::error_correction::{
117        ColorCode, LookupDecoder, MWPMDecoder, Pauli, PauliString, StabilizerCode, SurfaceCode,
118        SyndromeDecoder,
119    };
120}
121
122/// Quantum machine learning primitives
123pub mod quantum_ml {
124    pub use crate::qml::encoding::{DataEncoder, DataReuploader, FeatureMap, FeatureMapType};
125    pub use crate::qml::generative_adversarial::{
126        NoiseType, QGANConfig, QGANIterationMetrics, QGANTrainingStats, QuantumDiscriminator,
127        QuantumGenerator, QGAN,
128    };
129    pub use crate::qml::layers::{
130        EntanglingLayer, HardwareEfficientLayer, PoolingStrategy, QuantumPoolingLayer,
131        RotationLayer, StronglyEntanglingLayer,
132    };
133    pub use crate::qml::reinforcement_learning::{
134        Experience, QLearningStats, QuantumActorCritic, QuantumDQN, QuantumPolicyNetwork,
135        QuantumRLConfig, QuantumValueNetwork, ReplayBuffer, TrainingMetrics as RLTrainingMetrics,
136    };
137    pub use crate::qml::training::{
138        HPOStrategy, HyperparameterOptimizer, LossFunction, Optimizer, QMLTrainer, TrainingConfig,
139        TrainingMetrics,
140    };
141    pub use crate::qml::{
142        create_entangling_gates, natural_gradient, quantum_fisher_information, EncodingStrategy,
143        EntanglementPattern, QMLCircuit, QMLConfig, QMLLayer,
144    };
145    pub use crate::quantum_ml_accelerators::{
146        HardwareEfficientMLLayer, ParameterShiftOptimizer, QuantumFeatureMap,
147        QuantumKernelOptimizer, QuantumNaturalGradient, TensorNetworkMLAccelerator,
148    };
149}
150
151/// Variational quantum algorithms
152pub mod variational {
153    pub use crate::qaoa::{
154        CostHamiltonian, MixerHamiltonian, QAOACircuit, QAOAOptimizer, QAOAParams,
155    };
156    pub use crate::qpca::{DensityMatrixPCA, QPCAParams, QuantumPCA};
157    pub use crate::variational::{
158        ComputationGraph, DiffMode, Dual, Node, Operation, VariationalCircuit, VariationalGate,
159        VariationalOptimizer,
160    };
161    pub use crate::variational_optimization::{
162        create_natural_gradient_optimizer, create_qaoa_optimizer, create_spsa_optimizer,
163        create_vqe_optimizer, ConstrainedVariationalOptimizer,
164        HyperparameterOptimizer as VariationalHyperparameterOptimizer,
165        OptimizationConfig as VariationalOptimizationConfig, OptimizationHistory,
166        OptimizationMethod, OptimizationResult as VariationalOptimizationResult,
167        VariationalQuantumOptimizer,
168    };
169}
170
171/// Hardware and device interfaces
172pub mod hardware {
173    pub use crate::neutral_atom::{
174        AtomSpecies, AtomState, LaserSystem, NeutralAtom, NeutralAtomErrorModel, NeutralAtomGates,
175        NeutralAtomQC, OpticalTweezer, Position3D,
176    };
177    pub use crate::photonic::{
178        OpticalMode, PhotonicCircuit, PhotonicEncoding, PhotonicErrorCorrection, PhotonicGate,
179        PhotonicGateType, PhotonicSystem,
180    };
181    pub use crate::pulse::{
182        CouplingParams, HardwareCalibration, Pulse, PulseCompiler, PulseEnvelope, PulseNoiseModel,
183        PulseSequence, QubitControlParams, TimingConstraints,
184    };
185    pub use crate::quantum_hardware_abstraction::{
186        AdaptiveMiddleware, CalibrationEngine, ErrorMitigationLayer, ExecutionRequirements,
187        HardwareCapabilities, HardwareResourceManager, HardwareType, QuantumHardwareAbstraction,
188        QuantumHardwareBackend,
189    };
190    pub use crate::silicon_quantum_dots::{
191        DeviceParams, QuantumDotParams, QuantumDotType, SiliconQuantumDot, SiliconQuantumDotGates,
192        SiliconQuantumDotSystem,
193    };
194    pub use crate::trapped_ion::{
195        IonLevel, IonSpecies, LaserPulse, MotionalMode, MotionalModeType, TrappedIon,
196        TrappedIonGates, TrappedIonSystem,
197    };
198}
199
200/// Advanced quantum algorithms
201pub mod algorithms {
202    pub use crate::adiabatic::{
203        AdiabaticQuantumComputer, AnnealingSchedule, IsingProblem, ProblemGenerator, ProblemType,
204        QUBOProblem, QuantumAnnealer, QuantumAnnealingSnapshot,
205    };
206    pub use crate::hhl::{hhl_example, HHLAlgorithm, HHLParams};
207    pub use crate::quantum_counting::{
208        amplitude_estimation_example, quantum_counting_example, QuantumAmplitudeEstimation,
209        QuantumCounting, QuantumPhaseEstimation,
210    };
211    pub use crate::quantum_walk::{
212        CoinOperator, ContinuousQuantumWalk, DecoherentQuantumWalk, DiscreteQuantumWalk, Graph,
213        GraphType, MultiWalkerQuantumWalk, QuantumWalkSearch, SearchOracle, SzegedyQuantumWalk,
214    };
215}
216
217/// Tensor networks and simulation methods
218pub mod tensor_networks {
219    pub use crate::memory_efficient::{EfficientStateVector, StateMemoryStats};
220    pub use crate::tensor_network::{
221        contraction_optimization::DynamicProgrammingOptimizer, Tensor, TensorEdge, TensorNetwork,
222        TensorNetworkBuilder, TensorNetworkSimulator,
223    };
224}
225
226/// Symbolic computation and mathematical modeling
227pub mod symbolic {
228    pub use crate::parametric::{Parameter, ParametricGate, SymbolicParameter};
229    #[cfg(feature = "symbolic")]
230    pub use crate::symbolic::calculus::{diff, expand, integrate, limit, simplify};
231    pub use crate::symbolic::{matrix::SymbolicMatrix, SymbolicExpression};
232    pub use crate::symbolic_hamiltonian::{
233        hamiltonians::{
234            heisenberg, maxcut, molecular_h2, number_partitioning, transverse_field_ising,
235        },
236        PauliOperator as SymbolicPauliOperator, PauliString as SymbolicPauliString,
237        SymbolicHamiltonian, SymbolicHamiltonianTerm,
238    };
239    pub use crate::symbolic_optimization::{
240        circuit_optimization::{extract_circuit_parameters, optimize_parametric_circuit},
241        HamiltonianExpectation, OptimizationResult, QAOACostFunction, SymbolicObjective,
242        SymbolicOptimizationConfig, SymbolicOptimizer,
243    };
244}
245
246/// ZX-calculus and graphical reasoning
247pub mod zx_calculus {
248    pub use crate::zx_calculus::{
249        CircuitToZX, Edge, EdgeType, Spider, SpiderType, ZXDiagram, ZXOptimizer,
250    };
251    pub use crate::zx_extraction::{ZXExtractor, ZXPipeline};
252}
253
254/// Topological quantum computing
255pub mod topological {
256    pub use crate::holonomic::{
257        // GeometricErrorCorrection, HolonomicGate, HolonomicGateSynthesis, HolonomicPath,
258        // HolonomicQuantumComputer, PathOptimizationConfig,
259        WilsonLoop,
260    };
261    pub use crate::topological::{
262        AnyonModel, AnyonType, AnyonWorldline, BraidingOperation, FibonacciModel, FusionTree,
263        IsingModel, TopologicalGate, TopologicalQC, ToricCode,
264    };
265}
266
267/// Quantum networking and distributed computing
268pub mod networking {
269    pub use crate::distributed_quantum_networks::{
270        DistributedGateType, DistributedQuantumGate, EntanglementManager, EntanglementProtocol,
271        NetworkScheduler, QuantumNetwork, QuantumNode,
272    };
273    pub use crate::post_quantum_crypto::{
274        CompressionFunction, QKDProtocol, QKDResult, QuantumDigitalSignature, QuantumHashFunction,
275        QuantumKeyDistribution, QuantumSignature,
276    };
277    pub use crate::quantum_internet::{
278        DistributedQuantumComputing, GlobalQuantumKeyDistribution, QuantumInternet,
279        QuantumInternetAdvantageReport, QuantumInternetNode, QuantumInternetSecurity,
280        QuantumNetworkInfrastructure, QuantumRouting,
281    };
282}
283
284/// SciRS2 integration and enhanced tools
285pub mod scirs2 {
286    pub use crate::scirs2_circuit_verifier::{
287        AlgorithmSpecification, AlgorithmVerificationResult, CircuitVerificationResult,
288        EquivalenceType, EquivalenceVerificationResult, NumericalStabilityAnalysis,
289        SciRS2CircuitVerifier, SciRS2VerificationEnhancements, VerificationConfig,
290        VerificationVerdict,
291    };
292    pub use crate::scirs2_circuit_verifier_enhanced::{
293        CertificateFormat, CircuitProperty, ConfidenceStatistics, Counterexample,
294        EnhancedCircuitVerifier, EnhancedVerificationConfig, FormalProof, FormalVerificationResult,
295        ProofStep, ProofStepType, ProofType, QCTLSpecification, QHLSpecification,
296        QLTLSpecification, SpecificationLanguage, VerificationReport, VerificationSummary,
297        VerificationTechnique, ZXSpecification,
298    };
299    pub use crate::scirs2_quantum_formatter::{
300        AnnotationLocation, AnnotationType, CodeAnnotation, CommentStyle, FormattedCode,
301        FormattingConfig, FormattingStatistics, FormattingStyle, IndentationStyle, OutputFormat,
302        ProgrammingLanguage, SciRS2QuantumFormatter,
303    };
304    pub use crate::scirs2_quantum_formatter_enhanced::{
305        AlgorithmPhase, BeautificationSuggestions, ChangeType, CircuitChange, ColorScheme,
306        CustomFormattingRule, EnhancedFormattedCode, EnhancedFormattingConfig,
307        EnhancedQuantumFormatter, FormattingOptions, FormattingSuggestion, HardwareFormattingInfo,
308        IncrementalUpdate, InteractiveSuggestion, PlatformOptimization, QuantumBackend,
309        QuantumPattern, SemanticInfo, SuggestionLocation, SuggestionType, SyntaxMetadata,
310        SyntaxScope, SyntaxToken, TemplatedCode, TokenType, UpdatedSection, VisualFormat,
311    };
312    pub use crate::scirs2_quantum_linter::{
313        AutomaticFix, LintFinding, LintFindingType, LintSeverity, LintingConfig, LintingReport,
314        OptimizationSuggestion, SciRS2Enhancement, SciRS2QuantumLinter,
315    };
316    pub use crate::scirs2_quantum_linter_enhanced::{
317        ChangeOperation, CircuitLocation, CircuitMetadata, CodeChange, Compatibility,
318        CustomLintRule, EnhancedLintFinding, EnhancedLintingConfig, EnhancedLintingReport,
319        EnhancedQuantumLinter, FixSuggestion, GatePatternMatcher, HardwareArchitecture,
320        ImpactAnalysis, LintPattern, LintingSummary, PerformanceImpact, QualityMetrics,
321        ReportFormat, ResourceImpact, ResourceMatcher, RiskLevel, StructuralMatcher,
322    };
323    pub use crate::scirs2_quantum_profiler::{
324        CircuitProfilingResult, GateProfilingResult, MemoryAnalysis, OptimizationRecommendation,
325        ProfilingPrecision, ProfilingSessionReport, SciRS2EnhancementSummary,
326        SciRS2ProfilingConfig, SciRS2QuantumProfiler, SimdAnalysis,
327    };
328    pub use crate::scirs2_quantum_profiler_enhanced::{
329        AnomalyEvent, AnomalySeverity, Bottleneck, BottleneckAnalysis, BottleneckType, Difficulty,
330        EnhancedGateProfilingResult, EnhancedOptimizationRecommendation, EnhancedProfilingConfig,
331        EnhancedProfilingReport, EnhancedQuantumProfiler, ExportFormat, HardwareCharacteristics,
332        HardwareOptimizationStrategy, HardwarePerformanceModel, MetricStatistics, MetricType,
333        OpportunityType, OptimizationOpportunity, PerformanceMetrics, PerformancePredictions,
334        PredictedPerformance, Priority, ProfilingSummary, RecommendationType, ScalingAnalysis,
335        ScalingModel, ScalingType,
336    };
337    pub use crate::scirs2_resource_estimator_enhanced::{
338        AnalysisDepth, BasicResourceAnalysis, CircuitTopology, CloudPlatform, ComparativeAnalysis,
339        ComplexityMetrics, ConstraintPriority, ConstraintType, CostAnalysisResult, CostBreakdown,
340        CostOptimization, Effort, EnhancedResourceConfig, EnhancedResourceEstimate,
341        EnhancedResourceEstimator, ErrorBudget, EstimationOptions, GatePattern, GateStatistics,
342        HardwareRecommendation, Impact, MLPredictions, MemoryRequirements, MonitoringReport,
343        OptimizationLevel as ResourceOptimizationLevel, OptimizationObjective,
344        OptimizationStrategy, PlatformCost, Priority as ResourcePriority, ReadinessLevel,
345        Recommendation, RecommendationCategory, ResourceAnomaly, ResourceConstraint,
346        ResourceImprovement, ResourceRequirements, ResourceScores, RiskAssessment,
347        ScalingPredictions, TopologyType,
348    };
349}
350
351/// Batch processing and parallel execution
352pub mod batch {
353    pub use crate::batch::execution::{
354        create_optimized_executor, BatchCircuit, BatchCircuitExecutor,
355    };
356    pub use crate::batch::measurement::{
357        measure_batch, measure_batch_with_statistics, measure_expectation_batch,
358        measure_tomography_batch, BatchMeasurementStatistics, BatchTomographyResult,
359        MeasurementConfig, TomographyBasis,
360    };
361    pub use crate::batch::operations::{
362        apply_gate_sequence_batch, apply_single_qubit_gate_batch, apply_two_qubit_gate_batch,
363        compute_expectation_values_batch,
364    };
365    pub use crate::batch::optimization::{
366        BatchParameterOptimizer, BatchQAOA, BatchVQE,
367        OptimizationConfig as BatchOptimizationConfig, QAOAResult, VQEResult,
368    };
369    pub use crate::batch::{
370        create_batch, merge_batches, split_batch, BatchConfig, BatchExecutionResult, BatchGateOp,
371        BatchMeasurementResult, BatchStateVector,
372    };
373}
374
375/// Python bindings (when enabled)
376#[cfg(feature = "python")]
377pub mod python {
378    pub use crate::jupyter_visualization::{
379        PyQuantumCircuitVisualizer, PyQuantumPerformanceMonitor, PyQuantumStateVisualizer,
380    };
381    pub use crate::python_bindings::{
382        PyAggregatedStats, PyAlert, PyMetricMeasurement, PyMonitoringConfig, PyMonitoringStatus,
383        PyOptimizationRecommendation, PyRealtimeMonitor,
384    };
385    pub use crate::python_bindings::{
386        PyCartanDecomposition, PyNumRS2Array, PyQuantumGate, PyQuantumInternet,
387        PyQuantumSensorNetwork, PyQubitId, PySingleQubitDecomposition, PyVariationalCircuit,
388    };
389    pub use crate::quantum_complexity_analysis::PyQuantumComplexityAnalyzer;
390}