-
Notifications
You must be signed in to change notification settings - Fork 2
7 Glossary
Relevant source files
The following files were used as context for generating this wiki page:
This page provides formal technical definitions and implementation pointers for domain-specific concepts, architectural patterns, and structural invariants used across synaptic-wiring. Each entry details the theoretical background, how it maps to code entities, and where validation rules or core logic reside in the repository.
Sources: README.md:15-43, src/lib.rs:3-13
Dale's law (or Dale's principle) states that a neuron emits the same functional type of neurotransmitter at all of its outgoing synapses. In computational spiking neural networks, this means a neuron is strictly either excitatory (depolarizing, positive sign) or inhibitory (hyperpolarizing, negative sign).
The crate models this via the Polarity enum src/types.rs:29-36 and enforces it during graph construction and CSR validation src/topology/graph.rs:151-160. The effective signed weight combines a non-negative magnitude with the polarity sign multiplier src/types.rs:38-46, src/types.rs:79-87.
graph TD
subcode["Natural Language & Code Entity Mapping"]
NL_Dale[""Dale's Law (Excitatory/Inhibitory Split)"" --> ENUM_Pol[""Polarity enum""]
ENUM_Pol -->|Excitatory| SIGN_Exc[""Polarity::Excitatory (+1.0)""]
ENUM_Pol -->|Inhibitory| SIGN_Inh[""Polarity::Inhibitory (-1.0)""]
SIGN_Exc --> DESC[""SynapseDescriptor::effective_weight()""]
SIGN_Inh --> DESC
Sources: README.md:36-37, src/types.rs:22-87, src/topology/graph.rs:151-160
Compressed Sparse Row (CSR) is a sparse matrix format that stores a matrix as three contiguous vectors: row pointers (row_ptr), column indices (targets), and non-zero values (weights). In synaptic-wiring, this representation is extended with parallel vectors for axonal delays and polarities to form a memory-efficient network topology graph.
The CSR representation is implemented in SynapticGraph src/topology/graph.rs:32-47 and SparseSynapticMap src/lib.rs:50-50. Deserialization routines rigorously validate index bounds, monotonic row offsets, and weight-polarity agreements src/topology/graph.rs:65-89.
graph TD
subcode["CSR Data Structure Layout"]
CSR_Graph[""SynapticGraph"" -->|Row Pointers| R_PTR[""row_ptr: Vec<usize> [0, 3, 7, ...]""]
CSR_Graph -->|Column Indices| TARG[""targets: Vec<NeuronId>""]
CSR_Graph -->|Values| WGT[""weights: Vec<f32> (signed)""]
CSR_Graph -->|Metadata| DEL[""delays: Vec<DelayTicks>""]
CSR_Graph -->|Metadata| POL[""polarities: Vec<Polarity>""]
Sources: README.md:38-38, src/lib.rs:50-50, src/topology/graph.rs:18-89
Axonal delay represents the finite propagation time required for an action potential (spike) to travel along an axon from a source neuron to a target synapse, measured in discrete simulation ticks (DelayTicks). A delay of 0 denotes instantaneous (same-tick) delivery src/types.rs:16-18.
Delays are stored alongside weights in descriptors and graph structures src/types.rs:51-64, src/topology/graph.rs:43-44. At runtime, the SynapticMesh orchestrator uses a ring-buffer queue (SpikeDelayBuffer) to inject, advance, and drain delayed spikes across tick boundaries src/lib.rs:48-49, src/lib.rs:96-104.
graph TD
subcode["Axonal Delay & Ring Buffer Execution"]
SPK[""Source Spike Vector""] -->|Inject| SDB[""SpikeDelayBuffer (delay ring)""]
SDB -->|Advance Ticks| DRAIN[""Drain Due Spikes""]
DRAIN -->|Multiply Weights| CURR[""Synaptic Current Vector (Vec<f32>)""]
Sources: README.md:34-35, src/lib.rs:48-49, src/types.rs:16-18
A topology digest is a versioned, canonical cryptographic fingerprint (SHA-256) of a logical network graph. It incorporates sorted edges, IEEE weight bit patterns, delays, and polarities, ensuring identical logical connectivity structures produce identical digests regardless of internal memory layout order.
Computed via graph digest functions README.md:41-41, src/lib.rs:31-33, the digest allows precise provenance tracking, manifest validation, and cross-runtime comparison.
Sources: README.md:41-41, src/lib.rs:31-33, src/lib.rs:47-47
Neuromodulators represent global or local chemical signaling factors (such as dopamine-gated potentiation or use-it-or-lose-it plasticity decay) that alter neural integration thresholds, passive leaks, and synaptic weights dynamically over time src/router.rs:8-15.
Implemented via the NeuromodNeuron integrative fixed-threshold primitive and the ChannelRouter configuration structure src/router.rs:40-71, src/router.rs:141-178. Note that this component is strictly optional and isolated from the primary SynapticMesh runtime src/router.rs:12-16.
Sources: src/lib.rs:51-64, src/router.rs:3-178
The Minimum Supported Rust Version specifies the oldest compiler version on which the crate is guaranteed to compile and pass test suites. For synaptic-wiring, the MSRV is pinned to Rust 1.98.1 README.md:89-90.
Sources: README.md:89-90
A zero-allocation path refers to execution code paths designed to run within tight simulation loops (such as every tick of a spiking neural network) without allocating dynamic heap memory.
The runtime provides explicit caller-owned buffer APIs—SynapticMesh::propagate_into and SynapticMesh::propagate_graded_into—to facilitate heap-free tick execution src/lib.rs:23-26.
Sources: README.md:65-65, src/lib.rs:23-26
- 1. Overview
- 1.1. Getting Started & Public API
- 1.2. Release History and Versioning
- 2. Core Runtime: SynapticMesh
- 2.1. Propagation APIs and Tick Semantics
- 2.2. Spike Delay Buffer (Ring Buffer)
- 2.3. Core Types and Error Model
- 2.4. Checkpointing and Serde State Restoration
- 3. Topology Subsystem
- 3.1. SynapticGraph and CSR Representation
- 3.2. Topology Generators
- 3.3. Wiring Rules, Dale's Law and Delay Assignment
- 3.4. Topology Digest
- 4. Sparse Maps and Channel Routing
- 4.1. ChannelRouter and RouterConfig
- 4.2. Neuromodulation and Plasticity
- 4.3. SparseSynapticMap (CSR)
- 5. Testing, Benchmarks and Quality Gates
- 5.1. Propagation Contract Tests
- 5.2. Checkpoint Resume Property Suite
- 5.3. Benchmarks and Unit Test Module
- 6. Build, CI and Project Tooling
- 6.1. Cargo Manifest, Profiles and Dependencies
- 6.2. CI Workflows and Packaging Validation
- 6.3. Code Quality, Licensing and Review Gates
- 7. Glossary