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