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::QuantumContinuousFlowConfig;
impl Default for QuantumContinuousFlowConfig {
fn default() -> Self {
Self {
input_dim: 32,
latent_dim: 16,
num_qubits: 8,
num_flow_layers: 4,
flow_architecture: FlowArchitecture::QuantumRealNVP {
hidden_dims: vec![64, 64],
num_coupling_layers: 4,
quantum_coupling_type: QuantumCouplingType::QuantumEntangledCoupling,
},
quantum_enhancement_level: 0.5,
integration_method: ODEIntegrationMethod::QuantumAdaptive,
invertibility_tolerance: 1e-6,
entanglement_coupling_strength: 0.1,
quantum_divergence_type: QuantumDivergenceType::QuantumRelativeEntropy,
use_quantum_attention_flows: true,
adaptive_step_size: true,
regularization_config: FlowRegularizationConfig {
weight_decay: 1e-5,
spectral_normalization: true,
kinetic_energy_regularization: 0.01,
entanglement_regularization: 0.1,
jacobian_regularization: 0.01,
quantum_volume_preservation: 0.05,
},
}
}
}