Expand description
§ternary-signal
The fundamental unit of ternary neural communication: Signal = polarity × magnitude × multiplier
Compact 3-byte representation combining:
- Polarity: excitatory (+1), inhibitory (-1), or silent (0)
- Magnitude: base intensity 0–255 (intrinsic neuron drive)
- Multiplier: contextual scaling 0–255 (metabolic state, arousal, burst energy)
Effective magnitude = magnitude × multiplier (0–65,025 range).
This is the canonical Signal type shared across neuromorphic crates (ternsig, thermogram, astromind-snn, etc.).
§Example
use ternary_signal::{Signal, Polarity};
let excited = Signal::positive(200);
assert!(excited.is_positive());
assert_eq!(excited.effective_magnitude(), 200); // multiplier defaults to 1
let burst = Signal::positive_amplified(200, 100);
assert_eq!(burst.effective_magnitude(), 20_000); // 200 × 100
let inhibited = Signal::with_polarity(Polarity::Negative, 50);
assert!(inhibited.is_negative());
let neutral = Signal::zero();
assert!(!neutral.is_active());Structs§
- Packed
Signal - Compact 1-byte signal:
[pol:2|mag:3|mul:3] - Signal
- Signal: polarity × magnitude × multiplier (
s = p × m × k)
Enums§
- Polarity
- Polarity of a neural signal — strictly {-1, 0, +1}
Constants§
- LOG_LUT
- Log-scale lookup table: 3-bit code → effective value (0–255).