1#![allow(dead_code)]
8#![allow(clippy::type_complexity)]
9#![allow(clippy::needless_range_loop)]
10#![allow(clippy::assign_op_pattern)]
11#![allow(clippy::manual_range_contains)]
12#![allow(clippy::should_implement_trait)]
13#![allow(clippy::new_without_default)]
14#![allow(clippy::too_many_arguments)]
15#![allow(clippy::module_inception)]
16#![allow(clippy::clone_on_copy)]
17#![allow(clippy::op_ref)]
18#![allow(clippy::manual_flatten)]
19#![allow(clippy::map_clone)]
20#![allow(clippy::redundant_closure)]
21#![allow(clippy::needless_borrow)]
22#![allow(clippy::default_constructed_unit_structs)]
23#![allow(clippy::useless_vec)]
24#![allow(clippy::identity_op)]
25#![allow(clippy::single_match)]
26#![allow(clippy::vec_init_then_push)]
27#![allow(clippy::legacy_numeric_constants)]
28#![allow(clippy::unnecessary_min_or_max)]
29#![allow(clippy::manual_div_ceil)]
30#![allow(clippy::unwrap_or_default)]
31#![allow(clippy::derivable_impls)]
32#![allow(clippy::match_like_matches_macro)]
33#![allow(clippy::borrowed_box)]
34#![allow(clippy::explicit_auto_deref)]
35#![allow(clippy::await_holding_lock)]
36#![allow(clippy::unused_enumerate_index)]
37#![allow(clippy::large_enum_variant)]
38#![allow(clippy::needless_bool)]
39#![allow(clippy::field_reassign_with_default)]
40#![allow(clippy::upper_case_acronyms)]
41#![allow(clippy::needless_question_mark)]
42
43pub mod adaptive_precision;
44pub mod adiabatic;
45pub mod batch;
46pub mod bosonic;
47pub mod cartan;
48pub mod characterization;
49pub mod circuit_synthesis;
50pub mod compilation_cache;
51pub mod complex_ext;
52pub mod controlled;
53pub mod decomposition;
54pub mod distributed_quantum_networks;
55pub mod eigensolve;
56pub mod error;
57pub mod error_correction;
58pub mod fermionic;
59pub mod gate;
60pub mod gate_translation;
61pub mod gpu;
62pub mod hardware_compilation;
63pub mod hhl;
64pub mod holonomic;
65pub mod hybrid_learning;
66#[cfg(feature = "python")]
67pub mod jupyter_visualization;
68pub mod kak_multiqubit;
69pub mod matrix_ops;
70pub mod mbqc;
71pub mod memory_efficient;
72pub mod neutral_atom;
73pub mod operations;
74pub mod optimization;
75pub mod parametric;
76pub mod photonic;
77pub mod post_quantum_crypto;
78pub mod pulse;
79#[cfg(feature = "python")]
80pub mod python_bindings;
81pub mod qaoa;
82pub mod qml;
83pub mod qpca;
84pub mod quantum_algorithm_profiling;
85pub mod quantum_autodiff;
86pub mod quantum_aware_interpreter;
87pub mod quantum_cellular_automata;
88pub mod quantum_channels;
89#[cfg(feature = "python")]
90pub mod quantum_complexity_analysis;
91pub mod quantum_counting;
92pub mod quantum_debugging_profiling;
93pub mod quantum_game_theory;
94pub mod quantum_garbage_collection;
95pub mod quantum_hardware_abstraction;
96pub mod quantum_internet;
97pub mod quantum_memory_hierarchy;
99pub mod quantum_memory_integration;
100pub mod quantum_ml_accelerators;
101pub mod quantum_operating_system;
102pub mod quantum_process_isolation;
103pub mod quantum_resource_management;
104pub mod quantum_sensor_networks;
105pub mod quantum_supremacy_algorithms;
106pub mod quantum_universal_framework;
107pub mod quantum_walk;
108pub mod qubit;
109pub mod real_time_compilation;
110pub mod realtime_monitoring;
111pub mod register;
112pub mod shannon;
113pub mod silicon_quantum_dots;
114pub mod simd_ops;
115pub mod symbolic;
116pub mod symbolic_hamiltonian;
117pub mod symbolic_optimization;
118pub mod synthesis;
119pub mod tensor_network;
120pub mod testing;
121pub mod topological;
122pub mod trapped_ion;
123pub mod ultra_high_fidelity_synthesis;
124pub mod ultrathink_core;
125pub mod variational;
126pub mod variational_optimization;
127pub mod zx_calculus;
128pub mod zx_extraction;
129
130pub mod prelude {
132 pub use crate::adiabatic::{
134 AdiabaticQuantumComputer, AnnealingSchedule, IsingProblem, ProblemGenerator, ProblemType,
135 QUBOProblem, QuantumAnnealer, QuantumAnnealingSnapshot,
136 };
137 pub use crate::batch::execution::{
138 create_optimized_executor, BatchCircuit, BatchCircuitExecutor,
139 };
140 pub use crate::batch::measurement::{
141 measure_batch, measure_batch_with_statistics, measure_expectation_batch,
142 measure_tomography_batch, BatchMeasurementStatistics, BatchTomographyResult,
143 MeasurementConfig, TomographyBasis,
144 };
145 pub use crate::batch::operations::{
146 apply_gate_sequence_batch, apply_single_qubit_gate_batch, apply_two_qubit_gate_batch,
147 compute_expectation_values_batch,
148 };
149 pub use crate::batch::optimization::{
150 BatchParameterOptimizer, BatchQAOA, BatchVQE,
151 OptimizationConfig as BatchOptimizationConfig, QAOAResult, VQEResult,
152 };
153 pub use crate::batch::{
154 create_batch, merge_batches, split_batch, BatchConfig, BatchExecutionResult, BatchGateOp,
155 BatchMeasurementResult, BatchStateVector,
156 };
157 pub use crate::bosonic::{
158 boson_to_qubit_encoding, BosonHamiltonian, BosonOperator, BosonOperatorType, BosonTerm,
159 GaussianState,
160 };
161 pub use crate::cartan::{
162 cartan_decompose, CartanCoefficients, CartanDecomposer, CartanDecomposition,
163 OptimizedCartanDecomposer,
164 };
165 pub use crate::characterization::{GateCharacterizer, GateEigenstructure, GateType};
166 pub use crate::compilation_cache::{
167 get_compilation_cache, initialize_compilation_cache, CacheConfig, CacheStatistics,
168 CompilationCache, CompiledGate,
169 };
170 pub use crate::complex_ext::{quantum_states, QuantumComplexExt};
171 pub use crate::controlled::{
172 make_controlled, make_multi_controlled, ControlledGate, FredkinGate, MultiControlledGate,
173 ToffoliGate,
174 };
175 pub use crate::decomposition::clifford_t::{
176 count_t_gates_in_sequence, optimize_gate_sequence as optimize_clifford_t_sequence,
177 CliffordGate, CliffordTDecomposer, CliffordTGate, CliffordTSequence,
178 };
179 pub use crate::decomposition::decompose_u_gate;
180 pub use crate::decomposition::solovay_kitaev::{
181 count_t_gates, BaseGateSet, SolovayKitaev, SolovayKitaevConfig,
182 };
183 pub use crate::decomposition::utils::{
184 clone_gate, decompose_circuit, optimize_gate_sequence, GateSequence,
185 };
186 pub use crate::distributed_quantum_networks::{
187 DistributedGateType, DistributedQuantumGate, EntanglementManager, EntanglementProtocol,
188 NetworkScheduler, QuantumNetwork, QuantumNode,
189 };
190 pub use crate::error::*;
191 pub use crate::error_correction::{
192 ColorCode, LookupDecoder, MWPMDecoder, Pauli, PauliString, StabilizerCode, SurfaceCode,
193 SyndromeDecoder,
194 };
195 pub use crate::fermionic::{
196 qubit_operator_to_gates, BravyiKitaev, FermionHamiltonian, FermionOperator,
197 FermionOperatorType, FermionTerm, JordanWigner, PauliOperator, QubitOperator, QubitTerm,
198 };
199 pub use crate::gate::*;
200 pub use crate::gpu::{
201 cpu_backend::CpuBackend, initialize_adaptive_simd, GpuBackend, GpuBackendFactory,
202 GpuBuffer, GpuConfig, GpuKernel, GpuStateVector, OptimizationConfig, SpecializedGpuKernels,
203 };
204 pub use crate::hhl::{hhl_example, HHLAlgorithm, HHLParams};
205 pub use crate::holonomic::{
206 WilsonLoop,
209 };
210 pub use crate::kak_multiqubit::{
211 kak_decompose_multiqubit, DecompositionMethod, DecompositionStats, DecompositionTree,
212 KAKTreeAnalyzer, MultiQubitKAK, MultiQubitKAKDecomposer,
213 };
214 pub use crate::matrix_ops::{
215 matrices_approx_equal, partial_trace, tensor_product_many, DenseMatrix, QuantumMatrix,
216 SparseMatrix,
217 };
218 pub use crate::mbqc::{
219 CircuitToMBQC, ClusterState, Graph as MBQCGraph, MBQCComputation, MeasurementBasis,
220 MeasurementPattern,
221 };
222 pub use crate::memory_efficient::{EfficientStateVector, StateMemoryStats};
223 pub use crate::neutral_atom::{
224 AtomSpecies, AtomState, LaserSystem, NeutralAtom, NeutralAtomErrorModel, NeutralAtomGates,
225 NeutralAtomQC, OpticalTweezer, Position3D,
226 };
227 pub use crate::operations::{
228 apply_and_sample, sample_outcome, MeasurementOutcome, OperationResult, POVMMeasurement,
229 ProjectiveMeasurement, QuantumOperation, Reset,
230 };
231 pub use crate::optimization::compression::{
232 CompressedGate, CompressionConfig, CompressionStats, CompressionType, GateMetadata,
233 GateSequenceCompressor,
234 };
235 pub use crate::optimization::fusion::{CliffordFusion, GateFusion};
236 pub use crate::optimization::lazy_evaluation::{
237 LazyEvaluationConfig, LazyEvaluationStats, LazyGateContext, LazyOptimizationPipeline,
238 OptimizationResult as LazyOptimizationResult, OptimizationStats,
239 };
240 pub use crate::optimization::peephole::{PeepholeOptimizer, TCountOptimizer};
241 pub use crate::optimization::zx_optimizer::ZXOptimizationPass;
242 pub use crate::optimization::{
243 gates_are_disjoint, gates_can_commute, OptimizationChain, OptimizationPass,
244 };
245 pub use crate::parametric::{Parameter, ParametricGate, SymbolicParameter};
246 pub use crate::photonic::{
247 OpticalMode, PhotonicCircuit, PhotonicEncoding, PhotonicErrorCorrection, PhotonicGate,
248 PhotonicGateType, PhotonicSystem,
249 };
250 pub use crate::post_quantum_crypto::{
251 CompressionFunction, QKDProtocol, QKDResult, QuantumDigitalSignature, QuantumHashFunction,
252 QuantumKeyDistribution, QuantumSignature,
253 };
254 pub use crate::pulse::{
255 CouplingParams, HardwareCalibration, Pulse, PulseCompiler, PulseEnvelope, PulseNoiseModel,
256 PulseSequence, QubitControlParams, TimingConstraints,
257 };
258 pub use crate::qaoa::{
259 CostHamiltonian, MixerHamiltonian, QAOACircuit, QAOAOptimizer, QAOAParams,
260 };
261 pub use crate::qml::encoding::{DataEncoder, DataReuploader, FeatureMap, FeatureMapType};
262 pub use crate::qml::generative_adversarial::{
263 NoiseType, QGANConfig, QGANIterationMetrics, QGANTrainingStats, QuantumDiscriminator,
264 QuantumGenerator, QGAN,
265 };
266 pub use crate::qml::layers::{
267 EntanglingLayer, HardwareEfficientLayer, PoolingStrategy, QuantumPoolingLayer,
268 RotationLayer, StronglyEntanglingLayer,
269 };
270 pub use crate::qml::reinforcement_learning::{
271 Experience, QLearningStats, QuantumActorCritic, QuantumDQN, QuantumPolicyNetwork,
272 QuantumRLConfig, QuantumValueNetwork, ReplayBuffer, TrainingMetrics as RLTrainingMetrics,
273 };
274 pub use crate::qml::training::{
275 HPOStrategy, HyperparameterOptimizer, LossFunction, Optimizer, QMLTrainer, TrainingConfig,
276 TrainingMetrics,
277 };
278 pub use crate::qml::{
279 create_entangling_gates, natural_gradient, quantum_fisher_information, EncodingStrategy,
280 EntanglementPattern, QMLCircuit, QMLConfig, QMLLayer,
281 };
282 pub use crate::qpca::{DensityMatrixPCA, QPCAParams, QuantumPCA};
283 pub use crate::quantum_algorithm_profiling::{
284 AlgorithmType, ComplexityClass, ProfilingLevel, QuantumAdvantageCalculator,
285 QuantumAlgorithmProfiler, QuantumBenchmarkResult, QuantumBottleneckDetector,
286 QuantumComplexityAnalyzer, QuantumOptimizationAdvisor, QuantumPerformanceAnalyzer,
287 QuantumProfilingAdvantageReport, QuantumProfilingReport, QuantumResourceMonitor,
288 };
289 pub use crate::quantum_aware_interpreter::{
290 ExecutionStrategy, OperationResult as InterpreterOperationResult, QuantumAwareInterpreter,
291 QuantumJITCompiler, QuantumStateTracker, RuntimeOptimizationEngine,
292 };
293 pub use crate::quantum_cellular_automata::{
294 BoundaryCondition, QCARule, QCAType, QuantumCellularAutomaton1D,
295 QuantumCellularAutomaton2D, UnitaryRule,
296 };
297 pub use crate::quantum_channels::{
298 ChoiRepresentation, KrausRepresentation, ProcessTomography, QuantumChannel,
299 QuantumChannels, StinespringRepresentation,
300 };
301 pub use crate::quantum_counting::{
302 amplitude_estimation_example, quantum_counting_example, QuantumAmplitudeEstimation,
303 QuantumCounting, QuantumPhaseEstimation,
304 };
305 pub use crate::quantum_debugging_profiling::{
306 CircuitAnalysisReport, ProfilingReport, QuantumCircuitAnalyzer, QuantumDebugProfiling,
307 QuantumDebugProfilingReport, QuantumDebugger, QuantumErrorTracker,
308 QuantumPerformanceProfiler, QuantumStateInspector, StateInspectionReport,
309 };
310 pub use crate::quantum_game_theory::{
311 GameOutcome, GameType, QuantumGame, QuantumMechanism, QuantumPlayer, QuantumStrategy,
312 };
313 pub use crate::quantum_garbage_collection::{
314 CoherenceBasedGC, GCCollectionMode, GCCollectionResult, QuantumAllocationRequest,
315 QuantumAllocationResult, QuantumGCAdvantageReport, QuantumGarbageCollector,
316 QuantumLifecycleManager, QuantumReferenceCounter,
317 };
318 pub use crate::quantum_hardware_abstraction::{
319 AdaptiveMiddleware, CalibrationEngine, ErrorMitigationLayer, ExecutionRequirements,
320 HardwareCapabilities, HardwareResourceManager, HardwareType, QuantumHardwareAbstraction,
321 QuantumHardwareBackend,
322 };
323 pub use crate::quantum_internet::{
324 DistributedQuantumComputing, GlobalQuantumKeyDistribution, QuantumInternet,
325 QuantumInternetAdvantageReport, QuantumInternetNode, QuantumInternetSecurity,
326 QuantumNetworkInfrastructure, QuantumRouting,
327 };
328 pub use crate::quantum_memory_hierarchy::{
329 CacheReplacementPolicy, L1QuantumCache, L2QuantumCache, L3QuantumCache,
330 MemoryOperationType, OptimizationResult as MemoryOptimizationResult, QuantumMainMemory,
331 QuantumMemoryAdvantageReport, QuantumMemoryHierarchy, QuantumMemoryOperation,
332 QuantumMemoryResult,
333 };
334 pub use crate::quantum_memory_integration::{
335 CoherenceManager, MemoryAccessController, QuantumMemory, QuantumMemoryErrorCorrection,
336 QuantumState, QuantumStorageLayer,
337 };
338 pub use crate::quantum_ml_accelerators::{
339 HardwareEfficientMLLayer, ParameterShiftOptimizer, QuantumFeatureMap,
340 QuantumKernelOptimizer, QuantumNaturalGradient, TensorNetworkMLAccelerator,
341 };
342 pub use crate::quantum_operating_system::{
343 QuantumMemoryManager, QuantumOSAdvantageReport, QuantumOperatingSystem,
344 QuantumProcessManager, QuantumScheduler, QuantumSecurityManager,
345 };
346 pub use crate::quantum_process_isolation::{
347 IsolatedProcessResult, IsolatedQuantumProcess, IsolationLevel, QuantumAccessController,
348 QuantumProcessIsolation, QuantumSandbox, QuantumSecurityAdvantageReport,
349 QuantumStateIsolator, SecureQuantumOperation, SecurityDomain, VirtualQuantumMachine,
350 };
351 pub use crate::quantum_resource_management::{
352 AdvancedQuantumScheduler, AdvancedSchedulingResult, CoherenceAwareManager,
353 OptimizationLevel, QuantumProcess, QuantumResourceAdvantageReport,
354 QuantumResourceAllocator, QuantumResourceManager, QuantumWorkloadOptimizer,
355 SchedulingPolicy,
356 };
357 pub use crate::quantum_sensor_networks::{
358 DistributedSensingResult, EntanglementDistribution, EnvironmentalMonitoringResult,
359 QuantumMetrologyEngine, QuantumSensor, QuantumSensorAdvantageReport, QuantumSensorNetwork,
360 QuantumSensorType,
361 };
362 pub use crate::quantum_supremacy_algorithms::{
363 BosonSampling, BosonSamplingSupremacyResult, IQPSampling, QuantumSimulationAdvantageResult,
364 QuantumSupremacyBenchmarkReport, QuantumSupremacyEngine, RandomCircuitSampling,
365 RandomCircuitSupremacyResult,
366 };
367 pub use crate::quantum_universal_framework::{
368 AdaptiveExecutionResult, AdaptiveQuantumRuntime, ArchitectureType, CrossPlatformOptimizer,
369 QuantumHardwareRegistry, QuantumPortabilityEngine, UniversalCompilationResult,
370 UniversalFrameworkAdvantageReport, UniversalQuantumCircuit, UniversalQuantumCompiler,
371 UniversalQuantumFramework,
372 };
373 pub use crate::quantum_walk::{
374 CoinOperator, ContinuousQuantumWalk, DecoherentQuantumWalk, DiscreteQuantumWalk, Graph,
375 GraphType, MultiWalkerQuantumWalk, QuantumWalkSearch, SearchOracle, SzegedyQuantumWalk,
376 };
377 pub use crate::qubit::*;
378 pub use crate::real_time_compilation::{
379 CompilationContext, HardwareTarget, OptimizationPipeline, PerformanceMonitor,
380 RealTimeQuantumCompiler,
381 };
382 pub use crate::register::*;
383 pub use crate::shannon::{shannon_decompose, OptimizedShannonDecomposer, ShannonDecomposer};
384 pub use crate::silicon_quantum_dots::{
385 DeviceParams, QuantumDotParams, QuantumDotType, SiliconQuantumDot, SiliconQuantumDotGates,
386 SiliconQuantumDotSystem,
387 };
388 pub use crate::simd_ops::{
389 apply_phase_simd, controlled_phase_simd, expectation_z_simd, inner_product, normalize_simd,
390 };
391 #[cfg(feature = "symbolic")]
392 pub use crate::symbolic::calculus::{diff, expand, integrate, limit, simplify};
393 pub use crate::symbolic::{matrix::SymbolicMatrix, SymbolicExpression};
394 pub use crate::symbolic_hamiltonian::{
395 hamiltonians::{
396 heisenberg, maxcut, molecular_h2, number_partitioning, transverse_field_ising,
397 },
398 PauliOperator as SymbolicPauliOperator, PauliString as SymbolicPauliString,
399 SymbolicHamiltonian, SymbolicHamiltonianTerm,
400 };
401 pub use crate::symbolic_optimization::{
402 circuit_optimization::{extract_circuit_parameters, optimize_parametric_circuit},
403 HamiltonianExpectation, OptimizationResult, QAOACostFunction, SymbolicObjective,
404 SymbolicOptimizationConfig, SymbolicOptimizer,
405 };
406 pub use crate::synthesis::{
407 decompose_single_qubit_xyx, decompose_single_qubit_zyz, decompose_two_qubit_kak,
408 identify_gate, synthesize_unitary, KAKDecomposition, SingleQubitDecomposition,
409 };
410 pub use crate::tensor_network::{
411 contraction_optimization::DynamicProgrammingOptimizer, Tensor, TensorEdge, TensorNetwork,
412 TensorNetworkBuilder, TensorNetworkSimulator,
413 };
414 pub use crate::testing::{
415 QuantumAssert, QuantumTest, QuantumTestSuite, TestResult, TestSuiteResult,
416 DEFAULT_TOLERANCE,
417 };
418 pub use crate::topological::{
419 AnyonModel, AnyonType, AnyonWorldline, BraidingOperation, FibonacciModel, FusionTree,
420 IsingModel, TopologicalGate, TopologicalQC, ToricCode,
421 };
422 pub use crate::trapped_ion::{
423 IonLevel, IonSpecies, LaserPulse, MotionalMode, MotionalModeType, TrappedIon,
424 TrappedIonGates, TrappedIonSystem,
425 };
426 pub use crate::ultra_high_fidelity_synthesis::{
427 ErrorSuppressedSequence, ErrorSuppressionSynthesis, GateOperation, GrapeOptimizer,
428 GrapeResult, NoiseModel, QuantumGateRL, RLResult, SynthesisConfig, SynthesisMethod,
429 UltraFidelityResult, UltraHighFidelitySynthesis,
430 };
431 pub use crate::ultrathink_core::{
432 DistributedQuantumNetwork, HolonomicProcessor, QuantumAdvantageReport,
433 QuantumMLAccelerator, QuantumMemoryCore, RealTimeCompiler, UltraThinkQuantumComputer,
434 };
435 pub use crate::variational::{
436 ComputationGraph, DiffMode, Dual, Node, Operation, VariationalCircuit, VariationalGate,
437 VariationalOptimizer,
438 };
439 pub use crate::variational_optimization::{
440 create_natural_gradient_optimizer, create_qaoa_optimizer, create_spsa_optimizer,
441 create_vqe_optimizer, ConstrainedVariationalOptimizer,
442 HyperparameterOptimizer as VariationalHyperparameterOptimizer,
443 OptimizationConfig as VariationalOptimizationConfig, OptimizationHistory,
444 OptimizationMethod, OptimizationResult as VariationalOptimizationResult,
445 VariationalQuantumOptimizer,
446 };
447 pub use crate::zx_calculus::{
448 CircuitToZX, Edge, EdgeType, Spider, SpiderType, ZXDiagram, ZXOptimizer,
449 };
450 pub use crate::zx_extraction::{ZXExtractor, ZXPipeline};
451
452 #[cfg(feature = "python")]
453 pub use crate::python_bindings::{
454 PyCartanDecomposition, PyNumRS2Array, PyQuantumGate, PyQuantumInternet,
455 PyQuantumSensorNetwork, PyQubitId, PySingleQubitDecomposition, PyVariationalCircuit,
456 };
457
458 #[cfg(feature = "python")]
459 pub use crate::jupyter_visualization::{
460 PyQuantumCircuitVisualizer, PyQuantumPerformanceMonitor, PyQuantumStateVisualizer,
461 };
462
463 #[cfg(feature = "python")]
464 pub use crate::quantum_complexity_analysis::PyQuantumComplexityAnalyzer;
465
466 #[cfg(feature = "python")]
467 pub use crate::python_bindings::{
468 PyAggregatedStats, PyAlert, PyMetricMeasurement, PyMonitoringConfig, PyMonitoringStatus,
469 PyOptimizationRecommendation, PyRealtimeMonitor,
470 };
471}