Атомарный модуль троичной упаковки 8 тритов в 13 бит.
TritPacker — фундамент проекта Topo-Transit Hub v2 (QNEX OS). Преобразует массив из 8 тритов (-1, 0, +1) в 13-битное целое и обратно.
make test
gcc -std=c11 -O3 -Wall -Wextra -pedantic
trit_packer.c test_trit_packer.c
-o test_trit -lm
./test_trit
=== TritPacker v1.0 — Exhaustive Test Suite ===
[TEST 1/12] Exhaustive round-trip (6561 combinations)... PASS (0 errors) [TEST 2/12] Degenerate codes (6561..8191)... PASS (0 errors) [TEST 3/12] Reserved bits (13-14)... PASS [TEST 4/12] Parity round-trip... PASS (0 errors) [TEST 5/12] Hamming distance... PASS [TEST 6/12] Majority vote... PASS [TEST 7/12] Entropy... PASS (H_all_neg=0.0, H_mixed=12.49) [TEST 8/12] String representation... PASS (+0-+0-+0) [TEST 9/12] Network serialization... PASS (0 errors) [TEST 10/12] Trit compare... PASS [TEST 11/12] Consistency... PASS [TEST 12/12] Transmission size... PASS
=== ALL 12 TESTS PASSED ===
trit_pack — упаковать 8 тритов в 13 бит trit_unpack — распаковать 13 бит в 8 тритов trit_is_degenerate — проверка на вырожденный код topo_check_parity — проверка целостности protected_mask topo_form_protected_mask — формирование защищённой маски topo_extract_trits_ex — извлечение тритов с диагностикой trit_hamming_distance — троичное расстояние Хэмминга trit_entropy_bits — энтропия Шеннона (биты) trit_entropy_bits_fast — энтропия через LUT (без FPU) trit_majority_vote — мажоритарное голосование trit_mask_to_string — отладочная строка вида +0-+0-+0 trit_mask_to_network — сериализация в Big Endian topo_estimate_transmission_size — оценка размера пакета topo_calculate_compression_ratio — степень сжатия
Компиляция: C11, 0 предупреждений (-Wall -Wextra -pedantic) Тесты: 12/12 PASS Покрытие: 100% (exhaustive: 6561 комбинация) Сложность: O(1) для всех операций Память: 0 выделений в куче FPU: не требуется (кроме trit_entropy_bits)
MIT License. Свободное использование, модификация, распространение.
Энтропийно-оптимальная упаковка троичных состояний: 8 тритов в 13 бит.
В современных системах передачи данных (IoT, телеметрия, сетевые протоколы, базы данных) часто возникают ситуации, когда параметр имеет не два (0/1), а три состояния. Например:
+1(Активно / Истина / Передавать полностью)0(Неизвестно / Суперпозиция / Передавать только знак)-1(Неактивно / Ложь / Схлопнуть и отбросить)
Наивный подход выделяет на такое состояние 2 бита (00, 01, 10), где одна комбинация (11) простаивает. Это дает 25% потерь на каждом флаге. При передаче миллионов пакетов в секунду это гигабайты "воздуха" в сети, лишнее энергопотребление и нагрев оборудования.
TritPacker использует свойства троичной системы счисления и схему Горнера, чтобы упаковать массив из 8 троичных состояний (
Результат:
- 📉 Экономия 19% трафика и памяти по сравнению с побитовым кодированием.
- ⚡
$O(1)$ по памяти: не требует таблиц степеней, работает только с регистрами CPU. - 🚀 Branchless-дизайн: алгоритм не содержит условных переходов (
if/else), что исключает промахи конвейера процессора (branch mispredictions) и обеспечивает детерминированное время выполнения (критично для Real-Time систем).
- Сети с экстремальными ограничениями: Спутниковая связь, глубоководные дроны, межпланетный интернет (DTN), где каждый бит стоит денег и энергии.
- Топологическое сжатие данных: Используется как фундаментальный слой (атомарный кирпич) в алгоритмах адаптивного схлопывания N-мерных пространств признаков (патентные технологии QNEX OS).
- Классическая эмуляция квантовых систем: Триты являются прямой классической проекцией кутритов (qutrits — 3-уровневых квантовых систем). Библиотека позволяет моделировать квантовые схемы и топологические инварианты на стандартных CPU/GPU без потери метрики.
| Метод | Бит на 8 состояний | Избыточность | Недостатки |
|---|---|---|---|
| Наивный (2 бита/трит) | 16 бит | ~25% | Тратит трафик, ломает метрику расстояний. |
| TritPacker (Схема Горнера) | 13 бит | ~0.4% | Достигает энтропийного предела Шеннона. Сохраняет лексикографическую непрерывность. |
- Сохранение топологической метрики: Разность между упакованными числами коррелирует с "расстоянием" между состояниями. Это позволяет использовать
TritPackerв алгоритмах локально-чувствительного хэширования (LSH) для дедупликации данных и поиска аномалий. - Масштабируемость: Формула
биты = ⌈N × log₂(3)⌉позволяет легко расширять упаковку на 16, 32 и более состояний с логарифмическим ростом затрат. - Готовность к SIMD: Арифметическая природа алгоритма идеально ложится на векторные инструкции (AVX2 / AVX-512 / ARM NEON).
Примечание: TritPacker является классическим алгоритмом теории информации. Эмуляция кутритов и топологическое схлопывание — это математические модели, работающие на стандартном оборудовании (x86/ARM) и не требующие квантовых процессоров (физическая эмуляция, не доказано как аппаратная квантовая телепортация).