quantrs2_anneal/advanced_quantum_algorithms/
error.rs

1//! Error types for advanced quantum algorithms
2
3use crate::ising::IsingError;
4use thiserror::Error;
5
6/// Errors that can occur in advanced quantum algorithms
7#[derive(Error, Debug)]
8pub enum AdvancedQuantumError {
9    /// Ising model error
10    #[error("Ising error: {0}")]
11    IsingError(#[from] IsingError),
12
13    /// Quantum circuit error
14    #[error("Quantum circuit error: {0}")]
15    QuantumCircuitError(String),
16
17    /// Algorithm convergence error
18    #[error("Algorithm convergence error: {0}")]
19    ConvergenceError(String),
20
21    /// Parameter optimization error
22    #[error("Parameter optimization error: {0}")]
23    ParameterError(String),
24
25    /// Zeno effect error
26    #[error("Zeno effect error: {0}")]
27    ZenoError(String),
28
29    /// Adiabatic error
30    #[error("Adiabatic error: {0}")]
31    AdiabaticError(String),
32
33    /// Counterdiabatic error
34    #[error("Counterdiabatic error: {0}")]
35    CounterdiabaticError(String),
36
37    /// Noise model error
38    #[error("Noise model error: {0}")]
39    NoiseModelError(String),
40
41    /// No algorithm available
42    #[error("No algorithm available")]
43    NoAlgorithmAvailable,
44
45    /// Ensemble failed
46    #[error("Ensemble optimization failed")]
47    EnsembleFailed,
48
49    /// Algorithm not found
50    #[error("Algorithm not found: {0}")]
51    AlgorithmNotFound(String),
52
53    /// Invalid algorithm
54    #[error("Invalid algorithm: {0}")]
55    InvalidAlgorithm(String),
56}
57
58/// Result type for advanced quantum algorithms
59pub type AdvancedQuantumResult<T> = Result<T, AdvancedQuantumError>;