1pub mod batch;
8pub mod bosonic;
9pub mod cartan;
10pub mod characterization;
11pub mod complex_ext;
12pub mod controlled;
13pub mod decomposition;
14pub mod eigensolve;
15pub mod error;
16pub mod error_correction;
17pub mod fermionic;
18pub mod gate;
19pub mod gpu;
20pub mod hhl;
21pub mod kak_multiqubit;
22pub mod matrix_ops;
23pub mod mbqc;
24pub mod memory_efficient;
25pub mod operations;
26pub mod optimization;
27pub mod parametric;
28pub mod qaoa;
29pub mod qml;
30pub mod qpca;
31pub mod quantum_channels;
32pub mod quantum_counting;
33pub mod quantum_walk;
34pub mod qubit;
35pub mod register;
36pub mod shannon;
37pub mod simd_ops;
38pub mod synthesis;
39pub mod tensor_network;
40pub mod testing;
41pub mod topological;
42pub mod variational;
43pub mod variational_optimization;
44pub mod zx_calculus;
45pub mod zx_extraction;
46
47pub mod prelude {
49 pub use crate::batch::execution::{
51 create_optimized_executor, BatchCircuit, BatchCircuitExecutor,
52 };
53 pub use crate::batch::measurement::{
54 measure_batch, measure_batch_with_statistics, measure_expectation_batch,
55 measure_tomography_batch, BatchMeasurementStatistics, BatchTomographyResult,
56 MeasurementConfig, TomographyBasis,
57 };
58 pub use crate::batch::operations::{
59 apply_gate_sequence_batch, apply_single_qubit_gate_batch, apply_two_qubit_gate_batch,
60 compute_expectation_values_batch,
61 };
62 pub use crate::batch::optimization::{
63 BatchParameterOptimizer, BatchQAOA, BatchVQE,
64 OptimizationConfig as BatchOptimizationConfig, QAOAResult, VQEResult,
65 };
66 pub use crate::batch::{
67 create_batch, merge_batches, split_batch, BatchConfig, BatchExecutionResult, BatchGateOp,
68 BatchMeasurementResult, BatchStateVector,
69 };
70 pub use crate::bosonic::{
71 boson_to_qubit_encoding, BosonHamiltonian, BosonOperator, BosonOperatorType, BosonTerm,
72 GaussianState,
73 };
74 pub use crate::cartan::{
75 cartan_decompose, CartanCoefficients, CartanDecomposer, CartanDecomposition,
76 OptimizedCartanDecomposer,
77 };
78 pub use crate::characterization::{GateCharacterizer, GateEigenstructure, GateType};
79 pub use crate::complex_ext::{quantum_states, QuantumComplexExt};
80 pub use crate::controlled::{
81 make_controlled, make_multi_controlled, ControlledGate, FredkinGate, MultiControlledGate,
82 ToffoliGate,
83 };
84 pub use crate::decomposition::clifford_t::{
85 count_t_gates_in_sequence, optimize_gate_sequence as optimize_clifford_t_sequence,
86 CliffordGate, CliffordTDecomposer, CliffordTGate, CliffordTSequence,
87 };
88 pub use crate::decomposition::decompose_u_gate;
89 pub use crate::decomposition::solovay_kitaev::{
90 count_t_gates, BaseGateSet, SolovayKitaev, SolovayKitaevConfig,
91 };
92 pub use crate::decomposition::utils::{
93 clone_gate, decompose_circuit, optimize_gate_sequence, GateSequence,
94 };
95 pub use crate::error::*;
96 pub use crate::error_correction::{
97 ColorCode, LookupDecoder, MWPMDecoder, Pauli, PauliString, StabilizerCode, SurfaceCode,
98 SyndromeDecoder,
99 };
100 pub use crate::fermionic::{
101 qubit_operator_to_gates, BravyiKitaev, FermionHamiltonian, FermionOperator,
102 FermionOperatorType, FermionTerm, JordanWigner, PauliOperator, QubitOperator, QubitTerm,
103 };
104 pub use crate::gate::*;
105 pub use crate::gpu::{
106 cpu_backend::CpuBackend, GpuBackend, GpuBackendFactory, GpuBuffer, GpuConfig, GpuKernel,
107 GpuStateVector,
108 };
109 pub use crate::hhl::{hhl_example, HHLAlgorithm, HHLParams};
110 pub use crate::kak_multiqubit::{
111 kak_decompose_multiqubit, DecompositionMethod, DecompositionStats, DecompositionTree,
112 KAKTreeAnalyzer, MultiQubitKAK, MultiQubitKAKDecomposer,
113 };
114 pub use crate::matrix_ops::{
115 matrices_approx_equal, partial_trace, tensor_product_many, DenseMatrix, QuantumMatrix,
116 SparseMatrix,
117 };
118 pub use crate::mbqc::{
119 CircuitToMBQC, ClusterState, Graph as MBQCGraph, MBQCComputation, MeasurementBasis,
120 MeasurementPattern,
121 };
122 pub use crate::memory_efficient::{EfficientStateVector, StateMemoryStats};
123 pub use crate::operations::{
124 apply_and_sample, sample_outcome, MeasurementOutcome, OperationResult, POVMMeasurement,
125 ProjectiveMeasurement, QuantumOperation, Reset,
126 };
127 pub use crate::optimization::compression::{
128 CompressedGate, CompressionConfig, CompressionStats, GateSequenceCompressor,
129 };
130 pub use crate::optimization::fusion::{CliffordFusion, GateFusion};
131 pub use crate::optimization::peephole::{PeepholeOptimizer, TCountOptimizer};
132 pub use crate::optimization::zx_optimizer::ZXOptimizationPass;
133 pub use crate::optimization::{
134 gates_are_disjoint, gates_can_commute, OptimizationChain, OptimizationPass,
135 };
136 pub use crate::parametric::{Parameter, ParametricGate, SymbolicParameter};
137 pub use crate::qaoa::{
138 CostHamiltonian, MixerHamiltonian, QAOACircuit, QAOAOptimizer, QAOAParams,
139 };
140 pub use crate::qml::encoding::{DataEncoder, DataReuploader, FeatureMap, FeatureMapType};
141 pub use crate::qml::layers::{
142 EntanglingLayer, HardwareEfficientLayer, PoolingStrategy, QuantumPoolingLayer,
143 RotationLayer, StronglyEntanglingLayer,
144 };
145 pub use crate::qml::training::{
146 HPOStrategy, HyperparameterOptimizer, LossFunction, Optimizer, QMLTrainer, TrainingConfig,
147 TrainingMetrics,
148 };
149 pub use crate::qml::{
150 create_entangling_gates, natural_gradient, quantum_fisher_information, EncodingStrategy,
151 EntanglementPattern, QMLCircuit, QMLConfig, QMLLayer,
152 };
153 pub use crate::qpca::{DensityMatrixPCA, QPCAParams, QuantumPCA};
154 pub use crate::quantum_channels::{
155 ChoiRepresentation, KrausRepresentation, ProcessTomography, QuantumChannel,
156 QuantumChannels, StinespringRepresentation,
157 };
158 pub use crate::quantum_counting::{
159 amplitude_estimation_example, quantum_counting_example, QuantumAmplitudeEstimation,
160 QuantumCounting, QuantumPhaseEstimation,
161 };
162 pub use crate::quantum_walk::{
163 CoinOperator, ContinuousQuantumWalk, DiscreteQuantumWalk, Graph, GraphType,
164 QuantumWalkSearch, SearchOracle,
165 };
166 pub use crate::qubit::*;
167 pub use crate::register::*;
168 pub use crate::shannon::{shannon_decompose, OptimizedShannonDecomposer, ShannonDecomposer};
169 pub use crate::simd_ops::{
170 apply_phase_simd, controlled_phase_simd, expectation_z_simd, inner_product, normalize_simd,
171 };
172 pub use crate::synthesis::{
173 decompose_single_qubit_xyx, decompose_single_qubit_zyz, decompose_two_qubit_kak,
174 identify_gate, synthesize_unitary, KAKDecomposition, SingleQubitDecomposition,
175 };
176 pub use crate::tensor_network::{
177 contraction_optimization::DynamicProgrammingOptimizer, Tensor, TensorEdge, TensorNetwork,
178 TensorNetworkBuilder, TensorNetworkSimulator,
179 };
180 pub use crate::testing::{
181 QuantumAssert, QuantumTest, QuantumTestSuite, TestResult, TestSuiteResult,
182 DEFAULT_TOLERANCE,
183 };
184 pub use crate::topological::{
185 AnyonModel, AnyonType, AnyonWorldline, BraidingOperation, FibonacciModel, FusionTree,
186 IsingModel, TopologicalGate, TopologicalQC, ToricCode,
187 };
188 pub use crate::variational::{
189 ComputationGraph, DiffMode, Dual, Node, Operation, VariationalCircuit, VariationalGate,
190 VariationalOptimizer,
191 };
192 pub use crate::variational_optimization::{
193 create_natural_gradient_optimizer, create_qaoa_optimizer, create_spsa_optimizer,
194 create_vqe_optimizer, ConstrainedVariationalOptimizer,
195 HyperparameterOptimizer as VariationalHyperparameterOptimizer,
196 OptimizationConfig as VariationalOptimizationConfig, OptimizationHistory,
197 OptimizationMethod, OptimizationResult, VariationalQuantumOptimizer,
198 };
199 pub use crate::zx_calculus::{
200 CircuitToZX, Edge, EdgeType, Spider, SpiderType, ZXDiagram, ZXOptimizer,
201 };
202 pub use crate::zx_extraction::{ZXExtractor, ZXPipeline};
203}