Skip to main content

ncps_rust/wirings/
mod.rs

1use serde::{Deserialize, Serialize};
2
3mod base;
4mod ncp;
5mod random;
6
7pub use base::{FullyConnected, Wiring, Wiring as WiringTrait};
8pub use ncp::{AutoNCP, NCP};
9pub use random::Random;
10
11/// Configuration struct for serialization/deserialization of wiring structures
12#[derive(Clone, Debug, Serialize, Deserialize)]
13pub struct WiringConfig {
14    pub units: usize,
15    pub adjacency_matrix: Option<Vec<Vec<i32>>>,
16    pub sensory_adjacency_matrix: Option<Vec<Vec<i32>>>,
17    pub input_dim: Option<usize>,
18    pub output_dim: Option<usize>,
19    // FullyConnected fields
20    pub erev_init_seed: Option<u64>,
21    pub self_connections: Option<bool>,
22    // NCP fields
23    pub num_inter_neurons: Option<usize>,
24    pub num_command_neurons: Option<usize>,
25    pub num_motor_neurons: Option<usize>,
26    pub sensory_fanout: Option<usize>,
27    pub inter_fanout: Option<usize>,
28    pub recurrent_command_synapses: Option<usize>,
29    pub motor_fanin: Option<usize>,
30    pub seed: Option<u64>,
31    // Random fields
32    pub sparsity_level: Option<f64>,
33    pub random_seed: Option<u64>,
34}