1#![allow(clippy::too_many_arguments)] #![allow(clippy::module_inception)] #![allow(clippy::large_enum_variant)] #![allow(unexpected_cfgs)]
6#![allow(clippy::unnecessary_wraps)] #![allow(clippy::unused_self)] #![allow(clippy::unused_async)]
11#![allow(clippy::significant_drop_tightening)] #![allow(clippy::match_same_arms)] #![allow(clippy::option_if_let_else)] #![allow(clippy::return_self_not_must_use)] #![allow(clippy::needless_range_loop)] #![allow(clippy::branches_sharing_code)] #![allow(clippy::type_complexity)] #![allow(clippy::missing_const_for_fn)] #![allow(clippy::format_push_string)] #![allow(clippy::cast_possible_truncation)] #![allow(clippy::future_not_send)] #![allow(clippy::needless_pass_by_ref_mut)] #![allow(clippy::cast_precision_loss)] #![allow(clippy::uninlined_format_args)] #![allow(clippy::assigning_clones)] #![allow(clippy::zero_sized_map_values)] #![allow(clippy::used_underscore_binding)] #![allow(clippy::collection_is_never_read)] #![allow(clippy::wildcard_in_or_patterns)] #![allow(clippy::ptr_arg)] #![allow(clippy::implicit_hasher)] #![allow(clippy::ref_option)] #![allow(clippy::expect_fun_call)] #![allow(clippy::if_not_else)] #![allow(clippy::iter_on_single_items)] #![allow(clippy::trivially_copy_pass_by_ref)] #![allow(clippy::empty_line_after_doc_comments)] #![allow(clippy::manual_let_else)] #![allow(clippy::await_holding_lock)] #![allow(clippy::pedantic)]
46#![allow(clippy::nursery)]
47#![allow(clippy::cargo)]
48#![allow(clippy::large_enum_variant)]
50#![allow(clippy::borrowed_box)]
51#![allow(clippy::manual_map)]
52#![allow(clippy::non_send_fields_in_send_ty)]
53#![allow(clippy::if_same_then_else)]
54#![allow(clippy::manual_clamp)]
55#![allow(clippy::double_must_use)]
56#![allow(clippy::only_used_in_recursion)]
57#![allow(clippy::same_item_push)]
58#![allow(clippy::format_in_format_args)]
59#![allow(clippy::implied_bounds_in_impls)]
60#![allow(clippy::explicit_counter_loop)]
61#![allow(clippy::duplicated_attributes)]
62#![allow(clippy::new_ret_no_self)]
63#![allow(clippy::must_use_unit)]
64#![allow(clippy::redundant_pattern_matching)]
65#![allow(clippy::redundant_guards)]
66#![allow(clippy::wrong_self_convention)]
67#![allow(clippy::iter_next_slice)]
68#![allow(clippy::create_dir)]
69#![allow(clippy::enum_variant_names)]
70#![allow(clippy::should_implement_trait)] #![allow(clippy::upper_case_acronyms)] #![allow(clippy::unnecessary_map_or)] #![allow(clippy::derivable_impls)] #![allow(clippy::or_fun_call)] #![allow(clippy::cloned_ref_to_slice_refs)] #![allow(clippy::collapsible_match)]
78#![allow(clippy::len_without_is_empty)]
79#![allow(clippy::arc_with_non_send_sync)]
80#![allow(clippy::std_instead_of_core)] #![allow(clippy::match_like_matches_macro)] #![allow(clippy::suspicious_open_options)] #![allow(clippy::new_without_default)] pub mod buffer_manager;
122pub mod builder;
123pub mod circuit_cache;
124pub mod classical;
125pub mod commutation;
126pub mod crosstalk;
127pub mod dag;
128pub mod debugger;
129pub mod distributed;
130pub mod equivalence;
131pub mod fault_tolerant;
132pub mod formatter;
133pub mod gate_applier;
134pub mod graph_optimizer;
135pub mod linter;
136pub mod measurement;
137pub mod ml_optimization;
138pub mod noise_models;
139pub mod optimization;
140pub mod optimizer;
141pub mod photonic;
142pub mod profiler;
143pub mod pulse;
144pub mod qasm;
145pub mod qc_co_optimization;
146pub mod resource_estimator;
147pub mod routing;
148pub mod scirs2_benchmarking;
149pub mod scirs2_cross_compilation_enhanced;
150pub mod scirs2_integration;
151pub mod scirs2_ir_tools;
152pub mod scirs2_matrices;
153pub mod scirs2_optimization;
154pub mod scirs2_pulse_control_enhanced;
155pub mod scirs2_qasm_compiler_enhanced;
156pub mod scirs2_similarity;
157pub mod scirs2_transpiler_enhanced;
158pub mod simulator_interface;
159pub mod slicing;
160pub mod synthesis;
161pub mod tensor_network;
162pub mod topological;
163pub mod topology;
164pub mod transpiler;
165pub mod validation;
166pub mod verifier;
167pub mod vqe;
168pub mod zx_calculus;
169
170pub mod prelude {
172 pub use crate::builder::{CircuitStats, *};
173 pub use crate::circuit_cache::{
175 CacheConfig, CacheEntry, CacheManager, CacheStats, CircuitCache, CircuitSignature,
176 CompiledCircuitCache, EvictionPolicy, ExecutionResultCache, SignatureGenerator,
177 TranspilationCache,
178 };
179 pub use crate::classical::{
180 CircuitOp, ClassicalBit, ClassicalCircuit, ClassicalCircuitBuilder, ClassicalCondition,
181 ClassicalOp, ClassicalRegister, ClassicalValue, ComparisonOp, ConditionalGate, MeasureOp,
182 };
183 pub use crate::commutation::{
184 CommutationAnalyzer, CommutationOptimization, CommutationResult, CommutationRules, GateType,
185 };
186 pub use crate::crosstalk::{
187 CrosstalkAnalysis, CrosstalkAnalyzer, CrosstalkModel, CrosstalkSchedule,
188 CrosstalkScheduler, SchedulingStrategy, TimeSlice,
189 };
190 pub use crate::dag::{circuit_to_dag, CircuitDag, DagEdge, DagNode, EdgeType};
191 pub use crate::debugger::{
192 AnalysisDepth, BlochVector, BottleneckType as DebuggerBottleneckType, BreakpointAction,
193 BreakpointCondition, BreakpointManager, ConditionalBreakpoint, ConnectionType,
194 ConnectionVisualization, CorrelationType, DebugError, DebuggerConfig, Difficulty,
195 ErrorAnalysisResults, ErrorCorrelation, ErrorDetectionConfig, ErrorDetector, ErrorPattern,
196 ErrorSeverity, ErrorStatistics, ErrorType as DebuggerErrorType, ExecutionHistory,
197 ExecutionState, ExecutionStatus as DebuggerExecutionStatus, ExecutionSummary,
198 ExportFormat as DebuggerExportFormat, ExportOptions as DebuggerExportOptions,
199 ExpressionResult, ExpressionType, ExpressionValue, GateAttributes, GateExecutionMetrics,
200 GateExecutionResult, GateProperties as DebuggerGateProperties, GateSnapshot,
201 GateType as DebuggerGateType, GateVisualization, HistoryEntry, HistoryStatistics,
202 ImpactAssessment, MemorySnapshot, MemoryStatistics, MemoryUsage, MetricSnapshot,
203 OptimizationSuggestion as DebuggerOptimizationSuggestion, PatternType, PerformanceAnalysis,
204 PerformanceBottleneck, PerformanceProfiler, PerformanceSample, PredictionResult,
205 Priority as DebuggerPriority, ProfilerConfig, ProfilingStatistics, QuantumDebugger,
206 RenderingQuality, RenderingStatistics, RootCause, Solution, StateBreakpoint, StatePattern,
207 StateSnapshot, StepResult, SuggestionType as DebuggerSuggestionType, TimingInfo,
208 TimingStatistics, TrendAnalysis, TrendDirection, Visualization, VisualizationConfig,
209 VisualizationData, VisualizationEngine, VisualizationMetadata, VisualizationSnapshot,
210 VisualizationType, WatchConfig, WatchExpression, WatchManager, WatchedGate, WatchedMetric,
211 WatchedState,
212 };
213 pub use crate::distributed::{
214 BackendType, DistributedExecutor, DistributedJob, DistributedResult, ExecutionBackend,
215 ExecutionParameters, ExecutionStatus, LoadBalancingStrategy, Priority, SystemHealthStatus,
216 };
217 pub use crate::equivalence::{
218 circuits_equivalent, circuits_structurally_equal, EquivalenceChecker, EquivalenceOptions,
219 EquivalenceResult, EquivalenceType,
220 };
221 pub use crate::fault_tolerant::{
222 FaultTolerantCircuit, FaultTolerantCompiler, LogicalQubit, MagicState, QECCode,
223 ResourceOverhead, SyndromeMeasurement, SyndromeType,
224 };
225 pub use crate::formatter::{
226 AlignmentConfig, AlignmentEngine, AlignmentGroup, AlignmentItem, AlignmentOptimization,
227 AlignmentState, AlignmentStatistics, AutoCorrectionConfig, ChangeType, CodeOrganizer,
228 CodeSection, CodeStructure, CommentAlignment, CommentConfig, CommentFormatter,
229 CommentFormatterState, CommentRule, ComplianceLevel as FormatterComplianceLevel,
230 ConsistencyMetrics, FormattedCircuit, FormatterConfig, FormattingChange, FormattingResult,
231 FormattingStatistics, GroupingStrategy, IndentationConfig, IndentationStyle,
232 LayoutOptimizer, OptimizationConfig as FormatterOptimizationConfig, OrganizationConfig,
233 Position, QualityMetrics, QuantumFormatter, SciRS2AnalysisConfig,
234 SeverityLevel as FormatterSeverityLevel, SpacingConfig, SpacingStyle, StyleCompliance,
235 StyleEnforcementConfig, StyleEnforcer, StyleInformation, StyleIssue, WhitespaceManager,
236 WhitespaceOptimization, WhitespaceState, WhitespaceStatistics,
237 };
238 pub use crate::graph_optimizer::{CircuitDAG, GraphGate, GraphOptimizer, OptimizationStats};
239 pub use crate::linter::{
240 AnalysisScope, AntiPatternDetectionResult, AntiPatternDetector, AutoFix, AutoFixType,
241 BarrierUsageStyle, BestPracticeResult, BestPracticeRule, BestPracticeViolation,
242 BestPracticesChecker, BestPracticesCompliance, CircuitLocation, ComplexityAnalysisResult,
243 ComplexityAnalyzer, ComplexityClassification, ComplexityMetric,
244 ComplexityMetrics as LinterComplexityMetrics, ComplexityTrend, ComplianceLevel,
245 ConnectivityPattern, ConstraintType as LinterConstraintType, CustomGuideline,
246 Difficulty as LinterDifficulty, GateGroupingStyle, Importance,
247 IndentationStyle as LinterIndentationStyle, InteractionType, IssueType, LintIssue,
248 LinterConfig, LintingMetadata, LintingResult, LintingStatistics, MeasurementPlacementStyle,
249 NamingConvention, OptimizationAnalysisResult, OptimizationAnalyzer,
250 OptimizationImprovement as LinterOptimizationImprovement, OptimizationRule,
251 OptimizationSuggestion as LinterOptimizationSuggestion, OptimizationType,
252 ParameterConstraint, PatternAnalysisResult, PatternDetectionResult, PatternDetector,
253 PatternFlexibility, PatternInteraction, PatternMatcher, PatternPerformanceProfile,
254 PatternStatistics, PerformanceImpact, PerformanceMetrics as LinterPerformanceMetrics,
255 PerformanceProjection, PracticeGuidelines, QuantumAntiPattern, QuantumLinter,
256 QuantumPattern, QubitOrderingStyle, Risk, SafetyLevel,
257 ScalingBehavior as LinterScalingBehavior, Severity, SimplificationSuggestion,
258 SimplificationType, StyleAnalysisResult, StyleCheckResult, StyleChecker, StyleConfig,
259 StyleRule, StyleStrictness, StyleViolation, TrendDirection as LinterTrendDirection,
260 };
261 pub use crate::measurement::{
262 CircuitOp as MeasurementCircuitOp, FeedForward, Measurement, MeasurementCircuit,
263 MeasurementCircuitBuilder, MeasurementDependencies,
264 };
265 pub use crate::ml_optimization::{
266 AcquisitionFunction, FeatureExtractor, ImprovementMetrics, MLCircuitOptimizer,
267 MLCircuitRepresentation, MLOptimizationResult, MLStrategy, TrainingExample,
268 };
269 pub use crate::noise_models::{
270 DecoherenceParams, ErrorSource, LeakageError, NoiseAnalysisResult, NoiseAnalyzer,
271 ReadoutError, SingleQubitError, ThermalNoise, TwoQubitError,
272 };
273 pub use crate::optimization::{
274 AbstractCostModel, CircuitAnalyzer, CircuitOptimizer2, CircuitRewriting,
275 CoherenceOptimization, CommutationTable, CostBasedOptimization, CostModel,
276 DecompositionOptimization, DecouplingSequence, DynamicalDecoupling, GateCancellation,
277 GateCommutation, GateCost, GateError, GateMerging, GateProperties, HardwareCostModel,
278 NoiseAwareCostModel, NoiseAwareMapping, NoiseAwareOptimizer, NoiseModel, OptimizationLevel,
279 OptimizationPass, OptimizationReport, PassConfig, PassManager, RotationMerging,
280 TemplateMatching, TwoQubitOptimization,
281 };
282 pub use crate::optimizer::{
283 CircuitOptimizer, HardwareOptimizer, OptimizationPassType, OptimizationResult,
284 RedundantGateElimination, SingleQubitGateFusion,
285 };
286 pub use crate::photonic::{
287 CVCircuit, CVGate, CVMeasurement, PhotonicCircuit, PhotonicCircuitBuilder,
288 PhotonicConverter, PhotonicGate, PhotonicMeasurement, PhotonicMode, Polarization,
289 PolarizationBasis,
290 };
291 pub use crate::profiler::{
292 AccuracyMeasurement, AccuracyTracking, AggregationFunction, AggregationRule, Alert,
293 AlertChannel, AlertChannelType, AlertCondition, AlertLevel, AlertRule, AlertSystem,
294 AllocationEvent, AllocationEventType, AllocationInfo, AllocationStatistics,
295 AllocationTracker, AllocationType, AnalysisConfig, AnalysisDepth as ProfilerAnalysisDepth,
296 AnalyticsConfig, AnomalyAlgorithmType, AnomalyDetectionAlgorithm, AnomalyDetectionConfig,
297 AnomalyDetector, AnomalyType, AnomySeverity, ArchivalPolicy, BackupConfig, BaselineManager,
298 BaselineUpdatePolicy, BaselineValidationResults,
299 BenchmarkConfig as ProfilerBenchmarkConfig, BenchmarkEngine, BenchmarkResult,
300 BenchmarkSuite, BenchmarkSuiteConfig, BenchmarkTest, BenchmarkTestType,
301 BottleneckAnalysis as ProfilerBottleneckAnalysis, BottleneckImpactAnalysis,
302 BottleneckSeverity, CacheMissRates, CascadingEffect, ChecksumAlgorithm, ComparisonOperator,
303 ComparisonResults, ComparisonSummary, CompressionAlgorithm, CompressionSettings,
304 ConnectionStatistics, CostBenefitAnalysis, CpuOptimization, CpuOptimizationType,
305 CpuProfilingData, CpuState, DataRetentionPolicy, DetailedAnalysis, EnvironmentInfo,
306 ErrorAnalysis, ErrorCharacteristics, ErrorDistribution,
307 ErrorPattern as ProfilerErrorPattern, ErrorSeverity as ProfilerErrorSeverity,
308 ExportFormat as ProfilerExportFormat, GateProfile, GateProfiler, GpuInfo, GpuOptimization,
309 GpuOptimizationType, GpuProfilingData, HardwareConfig, HistoricalPerformanceData,
310 InsightType, IntegrityChecks, IoOptimization, IoOptimizationType, IoProfilingData, IoState,
311 LatencyDistribution, LeakAnalysisResults, LeakDetector, LeakSeverity, LogicalOperator,
312 MemoryLeak, MemoryOptimization as ProfilerMemoryOptimization, MemoryOptimizationType,
313 MemoryPattern, MemoryProfiler, MemorySnapshot as ProfilerMemorySnapshot, MemoryState,
314 MemoryTransferTimes, MetricCategory, MetricStream, MetricsCollector,
315 MitigationStrategy as ProfilerMitigationStrategy, MitigationStrategyType, MlModel,
316 NetworkOptimization, NetworkOptimizationType, NetworkProfilingData, NetworkState,
317 PerformanceAnalyzer, PerformanceAnomaly, PerformanceBaseline,
318 PerformanceInsight as ProfilerPerformanceInsight, PerformanceMetric, PerformanceRegression,
319 PerformanceSnapshot, PerformanceSummary, PrecisionLevel, PredictionConfig,
320 PredictionEngine, PredictionModel as ProfilerPredictionModel, PredictionModelType,
321 PredictionResult as ProfilerPredictionResult, ProfilerConfig as ProfilerConfiguration,
322 ProfilingReport, ProfilingSession, QuantumProfiler, RealtimeMetrics, RecoveryStatistics,
323 RegressionAlgorithmType, RegressionAnalysisResults, RegressionDetectionAlgorithm,
324 RegressionDetectionConfig, RegressionDetector, RegressionSeverity, ResourceBottleneck,
325 ResourceBottleneckType, ResourceProfiler,
326 ResourceRequirements as ProfilerResourceRequirements, ResourceUtilization,
327 SerializationConfig, SerializationFormat, SessionAnalytics, SessionConfig, SessionData,
328 SessionManager, SessionStatistics, SessionStatus, SessionStorage, SessionTrendAnalysis,
329 SeverityLevel, StatisticalMethod, StorageBackend, StorageConfig, StorageInfo, StorageType,
330 StreamStatistics, SuppressionCondition, SuppressionRule, SystemState, TestResult,
331 ThroughputStatistics, TimingStatistics as ProfilerTimingStatistics, TrainingStatus,
332 TrendAnalysisResults, ValidationStatus,
333 };
334 pub use crate::pulse::{
335 Channel, DeviceConfig, PulseCalibration, PulseCompiler, PulseInstruction, PulseOptimizer,
336 PulseSchedule, Waveform,
337 };
338 pub use crate::qasm::exporter::ExportError;
339 pub use crate::qasm::{
340 export_qasm3, parse_qasm3, validate_qasm3, ExportOptions, ParseError, QasmExporter,
341 QasmGate, QasmParser, QasmProgram, QasmRegister, QasmStatement, ValidationError,
342 };
343 pub use crate::qc_co_optimization::{
344 ClassicalProcessingStep, ClassicalStepType, DataFlowGraph, DataType,
345 HybridOptimizationAlgorithm, HybridOptimizationProblem, HybridOptimizationResult,
346 HybridOptimizer, LearningRateSchedule, ObjectiveFunction as HybridObjectiveFunction,
347 ObjectiveFunctionType, ParameterizedQuantumComponent, RegularizationType,
348 };
349 pub use crate::resource_estimator::{
350 AlgorithmClass, CircuitMetrics as ResourceCircuitMetrics, ComplexityAnalysis,
351 ComplexityClass, ExecutionTimeEstimate, HardwareRequirements, MemoryRequirements,
352 OptimizationSuggestion as ResourceOptimizationSuggestion, PlatformRecommendation,
353 ResourceEstimate, ScalabilityAnalysis, ScalingBehavior, ScalingFunction,
354 };
355 pub use crate::routing::{
356 CircuitRouter, CouplingMap, Distance, LookaheadConfig, LookaheadRouter, RoutedCircuit,
357 RoutingPassType, RoutingResult, RoutingStatistics, RoutingStrategy, SabreConfig,
358 SabreRouter, SwapLayer, SwapNetwork,
359 };
360 pub use crate::scirs2_benchmarking::{
361 BaselineComparison, BenchmarkConfig, BenchmarkReport, BenchmarkRun, CircuitBenchmark,
362 CircuitMetrics as BenchmarkCircuitMetrics, DescriptiveStats, Distribution, DistributionFit,
363 HypothesisTestResult, InsightCategory, OutlierAnalysis, OutlierDetectionMethod,
364 PerformanceInsight, PracticalSignificance, RegressionAnalysis, StatisticalAnalyzer,
365 StatisticalTest,
366 };
367 pub use crate::scirs2_cross_compilation_enhanced::{
368 AppliedOptimization, BatchCompilationReport, BatchCompilationResult, BatchPerformanceStats,
369 CircuitMetrics, CircuitSize, CircuitVisualization, ClassicalOpType, ClassicalOperation,
370 CodeFormat, ComparisonVisualization, CompilationComplexity, CompilationRecommendation,
371 CompilationReport, CompilationStage, CompilationStrategy, CompilationSummary,
372 CrossCompilationConfig, CrossCompilationResult, DataFlow, Difference, DifferenceType,
373 EnhancedCrossCompilationConfig, EnhancedCrossCompiler, FailedCompilation, FlowEdge,
374 FlowNode, GraphLayout, IRClassicalOp, IRClassicalOpType, IREdge, IRGate, IRGraph, IRNode,
375 IROperation, IROperationType, IRVisualization, NodeType, OperationType, OptimizationImpact,
376 OptimizationImprovement, OptimizationTimeline, OptimizationVisualization, ParsedCircuit,
377 QuantumFramework, QuantumIR, QuantumOperation,
378 RecommendationCategory as CompilationRecommendationCategory, ResourceUsage, SourceCircuit,
379 StageAnalysis, StageImpact, StagePerformance, TargetCode, TargetPlatform, TimelineEvent,
380 ValidationError as CrossValidationError, ValidationErrorType,
381 ValidationResult as CrossValidationResult, ValidationWarning as CrossValidationWarning,
382 ValidationWarningType, VisualCompilationFlow,
383 };
384 pub use crate::scirs2_integration::{
385 AnalysisResult, AnalyzerConfig, GraphMetrics, GraphMotif, OptimizationSuggestion,
386 SciRS2CircuitAnalyzer, SciRS2CircuitGraph, SciRS2Edge, SciRS2Node, SciRS2NodeType,
387 };
388 pub use crate::scirs2_matrices::{
389 CircuitToSparseMatrix, Complex64, SparseFormat, SparseGate, SparseGateLibrary,
390 SparseMatrix, SparseOptimizer,
391 };
392 pub use crate::scirs2_optimization::{
393 CircuitTemplate, EarlyStoppingCriteria, KernelType, ObjectiveFunction,
394 OptimizationAlgorithm, OptimizationConfig, OptimizationHistory, Parameter,
395 ParameterizedGate, QAOAObjective, QuantumCircuitOptimizer, VQEObjective,
396 };
397 pub use crate::scirs2_pulse_control_enhanced::{
398 AWGSpecifications, AmplitudeNoiseSpec, CosinePulse, CustomPulseShape, DRAGPulse,
399 EnhancedPulseConfig, EnhancedPulseController, ErfPulse, FilterState, FilterType,
400 GateAnalysis, GaussianPulse, HardwareConstraints, IQMixerSpecifications,
401 MitigationStrategy, OptimizationFeedback, OptimizationStep, PhaseNoiseSpec,
402 PredistortionModel, PulseChannel, PulseConstraints, PulseControlConfig, PulseExportFormat,
403 PulseLibrary, PulseMetadata, PulseOptimizationModel, PulseOptimizationObjective,
404 PulseSequence, SechPulse, SignalProcessingConfig, SignalProcessor, SignalProcessorConfig,
405 Waveform as EnhancedWaveform, WindowType,
406 };
407 pub use crate::scirs2_qasm_compiler_enhanced::{
408 ASTNode, ASTStatistics, AnalysisOptions, BinaryOp, CompilationResult,
409 CompilationStatistics, CompilationTarget, CompilationVisualizations, CompilationWarning,
410 EnhancedQASMCompiler, EnhancedQASMConfig, ErrorType, ExportFormat, Expression,
411 GateDefinition, GeneratedCode, Location, OptimizedQASM, ParsedQASM, QASMCompilerConfig,
412 QASMVersion, Token, TokenType, TypeCheckingLevel, UnaryOp, ValidationResult,
413 ValidationWarning, WarningType, AST,
414 };
415 pub use crate::scirs2_similarity::{
416 BatchSimilarityComputer, CircuitDistanceMetrics, CircuitFeatures,
417 CircuitSimilarityAnalyzer, CircuitSimilarityMetrics, EntanglementStructure,
418 GraphKernelType, GraphSimilarityAlgorithm, MLModelType, SciRS2Graph, SimilarityAlgorithm,
419 SimilarityConfig, SimilarityWeights,
420 };
421 pub use crate::scirs2_transpiler_enhanced::{
422 AdvancedHardwareFeatures, Bottleneck, BottleneckType, CircuitAnalysis,
423 CircuitFeatures as EnhancedCircuitFeatures, CompatibilityReport, DecomposedGate,
424 DecompositionResult, DecompositionStrategy, EnhancedTranspiler, EnhancedTranspilerConfig,
425 ErrorMitigationSupport, GateDecomposition, GateStatistics, HardwareBackend, ImpactLevel,
426 MitigationResult, NativeGateSet as EnhancedNativeGateSet, ParallelismAnalysis, PassResult,
427 PerformanceConstraints, PerformanceMetrics, PerformancePrediction, PredictionModel,
428 RoutingFeedback, RoutingModel, SuggestionType, SwapGate, TopologyAnalysis, TopologyType,
429 TranspilationPass, TranspilationResult as EnhancedTranspilationResult,
430 VisualRepresentation,
431 };
432 pub use crate::simulator_interface::{
433 CircuitCompiler, CompiledCircuit, ContractionStrategy, ExecutionResult, InstructionSet,
434 MemoryOptimization, OptimizationLevel as SimulatorOptimizationLevel, ResourceRequirements,
435 SimulatorBackend, SimulatorExecutor,
436 };
437 pub use crate::slicing::{CircuitSlice, CircuitSlicer, SlicingResult, SlicingStrategy};
438 pub use crate::synthesis::{
439 GateSet, MultiQubitSynthesizer, SingleQubitSynthesizer, SynthesisConfig,
440 TwoQubitSynthesizer, UnitaryOperation, UnitarySynthesizer,
441 };
442 pub use crate::tensor_network::{
443 CircuitToTensorNetwork, CompressedCircuit, CompressionMethod, MatrixProductState, Tensor,
444 TensorNetwork, TensorNetworkCompressor,
445 };
446 pub use crate::topological::{
447 Anyon, AnyonModel, AnyonType, BraidingOperation, BraidingOptimizer, OptimizationStrategy,
448 TopologicalCircuit, TopologicalCompiler, TopologicalGate,
449 };
450 pub use crate::topology::{TopologicalAnalysis, TopologicalAnalyzer, TopologicalStrategy};
451 pub use crate::transpiler::{
452 DeviceTranspiler, HardwareSpec, NativeGateSet, TranspilationOptions, TranspilationResult,
453 TranspilationStats, TranspilationStrategy,
454 };
455 pub use crate::validation::{
456 CircuitValidator, ClassicalConstraints, ConnectivityConstraints, DepthLimits,
457 GateRestrictions, MeasurementConstraints, ResourceLimits, ValidationRules, ValidationStats,
458 ValidationSuggestion,
459 };
460 pub use crate::verifier::{
461 BinaryOperator, CircuitInvariant, CircuitLocation as VerifierCircuitLocation,
462 ComplexityClass as VerifierComplexityClass, ConfidenceStatistics,
463 ConstraintSatisfactionResult, ConstraintType, CorrectnessChecker, CorrectnessCriterion,
464 CorrectnessResult, Counterexample, CustomInvariantChecker, CustomPredicate,
465 EntanglementType, ErrorBounds, ErrorModel, EvidenceType, ExecutionTrace, ExpectedOutput,
466 FormalProof, InvariantCheckResult, InvariantChecker, IssueSeverity,
467 IssueType as VerifierIssueType, ModelCheckResult, ModelChecker, NumericalEvidence,
468 ProofComplexityMetrics, ProofNode, ProofObligation, ProofStatus, ProofStep, ProofStrategy,
469 ProofTree, PropertyChecker, PropertyVerificationResult, QuantumProperty, QuantumState,
470 QuantumTheorem, QuantumVerifier, StateSpace, StateSpaceStatistics, StateTransition,
471 SuperpositionType, SymbolicConstraint, SymbolicExecutionConfig, SymbolicExecutionResult,
472 SymbolicExecutionStatus, SymbolicExecutor, SymbolicExpression, SymbolicState, SymbolicType,
473 SymbolicVariable, TemporalProperty, TestCase, TestOutcome, TheoremProver, TheoremResult,
474 UnaryOperator, VerificationIssue, VerificationMetadata, VerificationOutcome,
475 VerificationResult, VerificationStatistics, VerificationStatus, VerifierConfig,
476 VerifierTestResult, ViolationSeverity,
477 };
478 pub use crate::vqe::{
479 PauliOperator, VQEAnsatz, VQECircuit, VQEObservable, VQEOptimizer, VQEOptimizerType,
480 VQEResult,
481 };
482 pub use crate::zx_calculus::{
483 OptimizedZXResult, ZXDiagram, ZXEdge, ZXNode, ZXOptimizationResult, ZXOptimizer,
484 };
485 pub use quantrs2_core::qubit::QubitId as Qubit;
486}
487
488#[macro_export]
500macro_rules! qubits {
501 ($($id:expr),* $(,)?) => {
502 {
503 use quantrs2_core::qubit::QubitSet;
504
505 let mut qs = QubitSet::new();
506 $(qs.add($id);)*
507 qs
508 }
509 };
510}
511
512#[macro_export]
521macro_rules! circuit {
522 ($n:expr) => {
523 quantrs2_circuit::builder::Circuit::<$n>::new()
524 };
525}
526
527#[macro_export]
542macro_rules! quantum {
543 (
544 let $var:ident = circuit($n:expr);
545 $( $stmt_var:ident . $method:ident ( $( $args:expr ),* $(,)? ) ; )*
546 ) => {
547 {
548 let mut $var = quantrs2_circuit::builder::Circuit::<$n>::new();
549 $(
550 $stmt_var.$method($($args),*).expect("Quantum gate operation failed");
551 )*
552 $var
553 }
554 };
555}