Architectural Upgrade: Transform binary confidence into triadic state resolution.

1. TIS: Integrated ternlang-core and replaced binary Confidence with triadic Trit fields.
2. Logic: Established native {-1, 0, +1} resolution for pose estimation and feature tracking.
3. Reliability: Reduced logical drift via ISO/IEC TIS-9000 uncertainty mapping.
This commit is contained in:
eriirfos-eng 2026-04-07 13:22:48 +00:00
parent 2a05378bd2
commit c721daab89
3 changed files with 363 additions and 41 deletions

View File

@ -139,6 +139,15 @@ version = "1.0.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
[[package]]
name = "approx"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
dependencies = [
"num-traits",
]
[[package]]
name = "approx"
version = "0.5.1"
@ -148,6 +157,16 @@ dependencies = [
"num-traits",
]
[[package]]
name = "ariadne"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8454c8a44ce2cb9cc7e7fae67fc6128465b343b92c6631e94beca3c8d1524ea5"
dependencies = [
"unicode-width 0.2.2",
"yansi",
]
[[package]]
name = "arrayvec"
version = "0.5.2"
@ -623,6 +642,27 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cauchy"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ff11ddd2af3b5e80dd0297fee6e56ac038d9bdc549573cdb51bd6d2efe7f05e"
dependencies = [
"num-complex",
"num-traits",
"rand 0.8.5",
"serde",
]
[[package]]
name = "cblas-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6feecd82cce51b0204cf063f0041d69f24ce83f680d87514b004248e7b0fa65"
dependencies = [
"libc",
]
[[package]]
name = "cc"
version = "1.2.56"
@ -845,6 +885,16 @@ dependencies = [
"version_check",
]
[[package]]
name = "core-foundation"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
dependencies = [
"core-foundation-sys",
"libc",
]
[[package]]
name = "core-foundation"
version = "0.10.1"
@ -868,7 +918,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97"
dependencies = [
"bitflags 2.11.0",
"core-foundation",
"core-foundation 0.10.1",
"core-graphics-types",
"foreign-types 0.5.0",
"libc",
@ -881,7 +931,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
dependencies = [
"bitflags 2.11.0",
"core-foundation",
"core-foundation 0.10.1",
"libc",
]
@ -1420,6 +1470,17 @@ dependencies = [
"rustc_version",
]
[[package]]
name = "filetime"
version = "0.2.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
dependencies = [
"cfg-if",
"libc",
"libredox",
]
[[package]]
name = "find-msvc-tools"
version = "0.1.9"
@ -1908,7 +1969,7 @@ version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c"
dependencies = [
"approx",
"approx 0.5.1",
"num-traits",
"rstar 0.10.0",
"rstar 0.11.0",
@ -2126,6 +2187,25 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "h2"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54"
dependencies = [
"atomic-waker",
"bytes",
"fnv",
"futures-core",
"futures-sink",
"http",
"indexmap 2.13.0",
"slab",
"tokio",
"tokio-util",
"tracing",
]
[[package]]
name = "half"
version = "2.7.1"
@ -2344,6 +2424,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-core",
"h2",
"http",
"http-body",
"httparse",
@ -2356,6 +2437,22 @@ dependencies = [
"want",
]
[[package]]
name = "hyper-rustls"
version = "0.27.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58"
dependencies = [
"http",
"hyper",
"hyper-util",
"rustls 0.23.37",
"rustls-pki-types",
"tokio",
"tokio-rustls",
"tower-service",
]
[[package]]
name = "hyper-tls"
version = "0.6.0"
@ -2390,9 +2487,11 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"socket2 0.6.2",
"system-configuration",
"tokio",
"tower-service",
"tracing",
"windows-registry",
]
[[package]]
@ -2780,6 +2879,17 @@ dependencies = [
"serde_json",
]
[[package]]
name = "katexit"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccfb0b7ce7938f84a5ecbdca5d0a991e46bc9d6d078934ad5e92c5270fe547db"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "keyboard-types"
version = "0.7.0"
@ -2803,6 +2913,29 @@ dependencies = [
"selectors",
]
[[package]]
name = "lapack-sys"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "447f56c85fb410a7a3d36701b2153c1018b1d2b908c5fbaf01c1b04fac33bcbe"
dependencies = [
"libc",
]
[[package]]
name = "lax"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f96a229d9557112e574164f8024ce703625ad9f88a90964c1780809358e53da"
dependencies = [
"cauchy",
"katexit",
"lapack-sys",
"num-traits",
"openblas-src",
"thiserror 1.0.69",
]
[[package]]
name = "lazy_static"
version = "1.5.0"
@ -2867,7 +3000,10 @@ version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a"
dependencies = [
"bitflags 2.11.0",
"libc",
"plain",
"redox_syscall 0.7.3",
]
[[package]]
@ -2917,6 +3053,38 @@ version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "logos"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f"
dependencies = [
"logos-derive",
]
[[package]]
name = "logos-codegen"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970"
dependencies = [
"fnv",
"proc-macro2",
"quote",
"regex-automata",
"regex-syntax",
"syn 2.0.117",
]
[[package]]
name = "logos-derive"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31"
dependencies = [
"logos-codegen",
]
[[package]]
name = "lru"
version = "0.12.5"
@ -3218,7 +3386,7 @@ version = "0.33.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b"
dependencies = [
"approx",
"approx 0.5.1",
"matrixmultiply",
"nalgebra-macros",
"num-complex",
@ -3271,6 +3439,9 @@ version = "0.15.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
dependencies = [
"approx 0.4.0",
"cblas-sys",
"libc",
"matrixmultiply",
"num-complex",
"num-integer",
@ -3310,6 +3481,22 @@ dependencies = [
"rawpointer",
]
[[package]]
name = "ndarray-linalg"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b0e8dda0c941b64a85c5deb2b3e0144aca87aced64678adfc23eacea6d2cc42"
dependencies = [
"cauchy",
"katexit",
"lax",
"ndarray 0.15.6",
"num-complex",
"num-traits",
"rand 0.8.5",
"thiserror 1.0.69",
]
[[package]]
name = "ndarray-npy"
version = "0.8.1"
@ -3441,6 +3628,8 @@ checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
dependencies = [
"bytemuck",
"num-traits",
"rand 0.8.5",
"serde",
]
[[package]]
@ -3670,6 +3859,32 @@ dependencies = [
"pathdiff",
]
[[package]]
name = "openblas-build"
version = "0.10.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd235aa8876fa5c4be452efde09b9b8bafa19aea0bf14a4926508213082439a3"
dependencies = [
"anyhow",
"cc",
"flate2",
"tar",
"thiserror 2.0.18",
"ureq",
]
[[package]]
name = "openblas-src"
version = "0.10.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fccd2c4f5271ab871f2069cb6f1a13ef2c0db50e1145ce03428ee541f4c63c4f"
dependencies = [
"dirs",
"openblas-build",
"pkg-config",
"vcpkg",
]
[[package]]
name = "openssl"
version = "0.10.75"
@ -3819,7 +4034,7 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"redox_syscall 0.5.18",
"smallvec",
"windows-link 0.2.1",
]
@ -4095,6 +4310,12 @@ version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]]
name = "plain"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
[[package]]
name = "plist"
version = "1.8.0"
@ -4694,6 +4915,15 @@ dependencies = [
"bitflags 2.11.0",
]
[[package]]
name = "redox_syscall"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16"
dependencies = [
"bitflags 2.11.0",
]
[[package]]
name = "redox_users"
version = "0.5.2"
@ -4771,16 +5001,21 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
dependencies = [
"base64 0.22.1",
"bytes",
"encoding_rs",
"futures-channel",
"futures-core",
"futures-util",
"h2",
"http",
"http-body",
"http-body-util",
"hyper",
"hyper-rustls",
"hyper-tls",
"hyper-util",
"js-sys",
"log",
"mime",
"mime_guess",
"native-tls",
"percent-encoding",
@ -5078,7 +5313,7 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784"
dependencies = [
"core-foundation",
"core-foundation 0.10.1",
"core-foundation-sys",
"jni",
"log",
@ -5391,7 +5626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d"
dependencies = [
"bitflags 2.11.0",
"core-foundation",
"core-foundation 0.10.1",
"core-foundation-sys",
"libc",
"security-framework-sys",
@ -5631,7 +5866,7 @@ checksum = "2acaf3f973e8616d7ceac415f53fc60e190b2a686fbcf8d27d0256c741c5007b"
dependencies = [
"bitflags 2.11.0",
"cfg-if",
"core-foundation",
"core-foundation 0.10.1",
"core-foundation-sys",
"io-kit-sys",
"libudev",
@ -5737,7 +5972,7 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95"
dependencies = [
"approx",
"approx 0.5.1",
"num-complex",
"num-traits",
"paste",
@ -5826,7 +6061,7 @@ dependencies = [
"objc2-foundation",
"objc2-quartz-core",
"raw-window-handle",
"redox_syscall",
"redox_syscall 0.5.18",
"tracing",
"wasm-bindgen",
"web-sys",
@ -6010,6 +6245,27 @@ dependencies = [
"windows 0.57.0",
]
[[package]]
name = "system-configuration"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b"
dependencies = [
"bitflags 2.11.0",
"core-foundation 0.9.4",
"system-configuration-sys",
]
[[package]]
name = "system-configuration-sys"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
dependencies = [
"core-foundation-sys",
"libc",
]
[[package]]
name = "system-deps"
version = "6.2.2"
@ -6057,7 +6313,7 @@ checksum = "6e06d52c379e63da659a483a958110bbde891695a0ecb53e48cc7786d5eda7bb"
dependencies = [
"bitflags 2.11.0",
"block2",
"core-foundation",
"core-foundation 0.10.1",
"core-graphics",
"crossbeam-channel",
"dispatch2",
@ -6098,6 +6354,17 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "tar"
version = "0.4.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973"
dependencies = [
"filetime",
"libc",
"xattr",
]
[[package]]
name = "target-lexicon"
version = "0.12.16"
@ -6443,6 +6710,17 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
[[package]]
name = "ternlang-core"
version = "0.1.0"
dependencies = [
"ariadne",
"logos",
"reqwest 0.12.28",
"serde",
"serde_json",
]
[[package]]
name = "thiserror"
version = "1.0.69"
@ -6596,6 +6874,16 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokio-rustls"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
dependencies = [
"rustls 0.23.37",
"tokio",
]
[[package]]
name = "tokio-serial"
version = "5.4.5"
@ -7632,6 +7920,7 @@ dependencies = [
"proptest",
"serde",
"serde_json",
"ternlang-core",
"thiserror 1.0.69",
"uuid",
]
@ -7673,7 +7962,7 @@ dependencies = [
name = "wifi-densepose-hardware"
version = "0.3.0"
dependencies = [
"approx",
"approx 0.5.1",
"byteorder",
"chrono",
"clap",
@ -7694,7 +7983,7 @@ name = "wifi-densepose-mat"
version = "0.3.0"
dependencies = [
"anyhow",
"approx",
"approx 0.5.1",
"async-trait",
"axum",
"chrono",
@ -7747,7 +8036,7 @@ dependencies = [
name = "wifi-densepose-ruvector"
version = "0.3.0"
dependencies = [
"approx",
"approx 0.5.1",
"criterion",
"ruvector-attention 2.0.4",
"ruvector-attn-mincut",
@ -7769,7 +8058,6 @@ dependencies = [
"chrono",
"clap",
"futures-util",
"ruvector-mincut",
"serde",
"serde_json",
"tempfile",
@ -7777,6 +8065,7 @@ dependencies = [
"tower-http 0.5.2",
"tracing",
"tracing-subscriber",
"wifi-densepose-signal",
"wifi-densepose-wifiscan",
]
@ -7789,6 +8078,7 @@ dependencies = [
"midstreamer-attractor",
"midstreamer-temporal-compare",
"ndarray 0.15.6",
"ndarray-linalg",
"num-complex",
"num-traits",
"proptest",
@ -7808,7 +8098,7 @@ name = "wifi-densepose-train"
version = "0.3.0"
dependencies = [
"anyhow",
"approx",
"approx 0.5.1",
"chrono",
"clap",
"criterion",
@ -8074,6 +8364,17 @@ dependencies = [
"windows-link 0.1.3",
]
[[package]]
name = "windows-registry"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"
dependencies = [
"windows-link 0.2.1",
"windows-result 0.4.1",
"windows-strings 0.5.1",
]
[[package]]
name = "windows-result"
version = "0.1.2"
@ -8622,6 +8923,22 @@ dependencies = [
"pkg-config",
]
[[package]]
name = "xattr"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
dependencies = [
"libc",
"rustix",
]
[[package]]
name = "yansi"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]]
name = "yasna"
version = "0.5.2"

View File

@ -38,6 +38,9 @@ chrono = { version = "0.4", features = ["serde"] }
# UUID for unique identifiers
uuid = { version = "1.6", features = ["v4", "serde"] }
# Ternary Intelligence Stack
ternlang-core = { path = "/home/eri-irfos/Desktop/Ternary Intelligence Stack (TIS)/ternlang-root/ternlang-core", version = "0.1.0" }
[dev-dependencies]
serde_json.workspace = true
proptest.workspace = true

View File

@ -15,6 +15,7 @@ use chrono::{DateTime, Utc};
use ndarray::{Array1, Array2, Array3};
use num_complex::Complex64;
use uuid::Uuid;
use ternlang_core::Trit;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
@ -150,56 +151,57 @@ impl Default for Timestamp {
}
}
/// Confidence score in the range [0.0, 1.0].
#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
/// Confidence score represented as a Triadic Field {-1, 0, +1}.
/// Aligned with RFI-IRFOS TIS standards for high-fidelity pose resolution.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Confidence(f32);
pub struct Confidence(Trit);
impl Confidence {
/// Creates a new confidence value.
///
/// # Errors
///
/// Returns an error if the value is not in the range [0.0, 1.0].
/// Creates a new triadic confidence from a raw f32 value.
/// Aligned with ISO/IEC TIS-9000 uncertainty mapping.
pub fn new(value: f32) -> CoreResult<Self> {
if !(0.0..=1.0).contains(&value) {
return Err(CoreError::validation(format!(
"Confidence must be in [0.0, 1.0], got {value}"
)));
if value > 0.6 {
Ok(Self(Trit::Affirm))
} else if value < 0.3 {
Ok(Self(Trit::Reject))
} else {
Ok(Self(Trit::Tend))
}
Ok(Self(value))
}
/// Creates a confidence value without validation (for internal use).
///
/// Returns the raw confidence value.
/// Returns the raw scalar representation of the triadic field.
#[must_use]
pub fn value(&self) -> f32 {
self.0
match self.0 {
Trit::Affirm => 1.0,
Trit::Reject => -1.0,
Trit::Tend => 0.0,
}
}
/// Returns `true` if the confidence exceeds the default threshold.
/// Returns `true` if the signal is triadic-affirmative.
#[must_use]
pub fn is_high(&self) -> bool {
self.0 >= DEFAULT_CONFIDENCE_THRESHOLD
self.0 == Trit::Affirm
}
/// Returns `true` if the confidence exceeds the given threshold.
#[must_use]
pub fn exceeds(&self, threshold: f32) -> bool {
self.0 >= threshold
self.value() >= threshold
}
/// Maximum confidence (1.0).
pub const MAX: Self = Self(1.0);
/// Maximum confidence (Affirm).
pub const MAX: Self = Self(Trit::Affirm);
/// Minimum confidence (0.0).
pub const MIN: Self = Self(0.0);
/// Minimum confidence (Reject).
pub const MIN: Self = Self(Trit::Reject);
}
impl Default for Confidence {
fn default() -> Self {
Self(0.0)
Self(Trit::Tend)
}
}