Skip to main content

qualia_core_db/tensor/
manifold.rs

1//! Manifold bifurcation (w) for multi-head attention
2
3use serde::{Deserialize, Serialize};
4
5/// Manifold domain variants
6#[repr(C)]
7#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
8pub enum ManifoldDomain {
9    /// Biological/Medical
10    Medical = 0,
11    /// Legal/Jurisdictional
12    Legal = 1,
13    /// Personal/Agency
14    Personal = 2,
15    /// Environmental/Sensor
16    Environmental = 3,
17    /// Socioeconomic/Wellbeing
18    Socioeconomic = 4,
19}
20
21impl Default for ManifoldDomain {
22    fn default() -> Self {
23        ManifoldDomain::Medical
24    }
25}
26
27impl ManifoldDomain {
28    pub fn from_index(index: f32) -> Self {
29        match index as u32 {
30            0 => ManifoldDomain::Medical,
31            1 => ManifoldDomain::Legal,
32            2 => ManifoldDomain::Personal,
33            3 => ManifoldDomain::Environmental,
34            4 => ManifoldDomain::Socioeconomic,
35            _ => ManifoldDomain::Medical, // Default fallback
36        }
37    }
38
39    pub fn to_index(&self) -> f32 {
40        *self as u32 as f32
41    }
42}