use crate::quantum_gravity_simulation::AdSCFTConfig;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HolographicQECConfig {
pub ads_cft_config: AdSCFTConfig,
pub boundary_qubits: usize,
pub bulk_qubits: usize,
pub ads_radius: f64,
pub central_charge: f64,
pub error_correction_code: HolographicCodeType,
pub reconstruction_method: BulkReconstructionMethod,
pub error_threshold: f64,
pub geometric_protection: bool,
pub entanglement_threshold: f64,
pub rt_surfaces: usize,
pub enable_qec: bool,
pub reconstruction_accuracy: f64,
}
impl Default for HolographicQECConfig {
fn default() -> Self {
Self {
ads_cft_config: AdSCFTConfig::default(),
boundary_qubits: 8,
bulk_qubits: 20,
ads_radius: 1.0,
central_charge: 12.0,
error_correction_code: HolographicCodeType::AdSRindler,
reconstruction_method: BulkReconstructionMethod::HKLL,
error_threshold: 0.01,
geometric_protection: true,
entanglement_threshold: 0.1,
rt_surfaces: 10,
enable_qec: true,
reconstruction_accuracy: 1e-6,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum HolographicCodeType {
AdSRindler,
HolographicStabilizer,
BulkGeometry,
TensorNetwork,
HolographicSurface,
PerfectTensor,
EntanglementEntropy,
AdSCFTCode,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum BulkReconstructionMethod {
HKLL,
EntanglementWedge,
QECReconstruction,
TensorNetwork,
HolographicTensorNetwork,
BulkBoundaryDictionary,
MinimalSurface,
}