use super::*;
use crate::error::{MLError, Result};
use scirs2_core::ndarray::*;
use scirs2_core::random::prelude::*;
use scirs2_core::{Complex32, Complex64};
use std::f64::consts::PI;
use super::types::QuantumAdvancedDiffusionConfig;
impl Default for QuantumAdvancedDiffusionConfig {
fn default() -> Self {
Self {
data_dim: 32,
num_qubits: 16,
num_timesteps: 1000,
noise_schedule: QuantumNoiseSchedule::QuantumCosine {
s: 0.008,
entanglement_preservation: 0.9,
decoherence_rate: 0.01,
},
denoiser_architecture: DenoisingArchitecture::QuantumUNet {
depth: 4,
base_channels: 32,
quantum_skip_connections: true,
},
quantum_enhancement_level: 0.5,
use_quantum_attention: true,
enable_entanglement_monitoring: true,
adaptive_denoising: true,
use_quantum_fourier_features: true,
error_mitigation_strategy: ErrorMitigationStrategy::AdaptiveMitigation,
}
}
}