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