sc_neurocore_engine/
pyo3_neurons.rs1use pyo3::prelude::*;
12
13#[macro_use]
14#[path = "bindings/default_neuron.rs"]
15mod default_neuron_binding;
16
17#[path = "bindings/adex_neuron.rs"]
18mod adex_neuron_binding;
19#[path = "bindings/alpha.rs"]
20mod alpha_binding;
21#[path = "bindings/ermentrout_kopell_pop.rs"]
22mod ermentrout_kopell_pop_binding;
23#[path = "bindings/jansen_rit.rs"]
24mod jansen_rit_binding;
25#[path = "bindings/lapicque_neuron.rs"]
26mod lapicque_neuron_binding;
27#[path = "bindings/mcculloch_pitts.rs"]
28mod mcculloch_pitts_binding;
29#[path = "bindings/sigmoid_rate.rs"]
30mod sigmoid_rate_binding;
31#[path = "bindings/threshold_linear_rate.rs"]
32mod threshold_linear_rate_binding;
33#[path = "bindings/wong_wang.rs"]
34mod wong_wang_binding;
35
36#[path = "bindings/biophysical/mod.rs"]
37mod biophysical_bindings;
38#[path = "bindings/hardware/mod.rs"]
39mod hardware_bindings;
40#[path = "bindings/learning/mod.rs"]
41mod learning_bindings;
42#[path = "bindings/maps/mod.rs"]
43mod map_bindings;
44#[path = "bindings/multi_compartment/mod.rs"]
45mod multi_compartment_bindings;
46#[path = "bindings/simple_spiking/mod.rs"]
47mod simple_spiking_bindings;
48#[path = "bindings/stochastic/mod.rs"]
49mod stochastic_bindings;
50#[path = "bindings/trivial/mod.rs"]
51mod trivial_bindings;
52
53#[path = "bindings/adaptive_threshold_moe_neuron.rs"]
54mod adaptive_threshold_moe_neuron_binding;
55#[path = "bindings/arcane_neuron.rs"]
56mod arcane_neuron_binding;
57#[path = "bindings/attention_gated_neuron.rs"]
58mod attention_gated_neuron_binding;
59#[path = "bindings/cerebellar/mod.rs"]
60mod cerebellar_bindings;
61#[path = "bindings/channels/mod.rs"]
62mod channel_bindings;
63#[path = "bindings/compositional_binding_neuron.rs"]
64mod compositional_binding_neuron_binding;
65#[path = "bindings/continuous_attractor_neuron.rs"]
66mod continuous_attractor_neuron_binding;
67#[path = "bindings/differentiable_surrogate_neuron.rs"]
68mod differentiable_surrogate_neuron_binding;
69#[path = "bindings/hybrid_linear_attention_neuron.rs"]
70mod hybrid_linear_attention_neuron_binding;
71#[path = "bindings/interneurons/mod.rs"]
72mod interneuron_bindings;
73#[path = "bindings/meta_plastic_neuron.rs"]
74mod meta_plastic_neuron_binding;
75#[path = "bindings/misc/mod.rs"]
76mod misc_bindings;
77#[path = "bindings/motor/mod.rs"]
78mod motor_bindings;
79#[path = "bindings/multi_timescale_neuron.rs"]
80mod multi_timescale_neuron_binding;
81#[path = "bindings/population/mod.rs"]
82mod population_bindings;
83#[path = "bindings/predictive_coding_neuron.rs"]
84mod predictive_coding_neuron_binding;
85#[path = "bindings/quantum_inspired_lif_neuron.rs"]
86mod quantum_inspired_lif_neuron_binding;
87#[path = "bindings/rate/mod.rs"]
88mod rate_bindings;
89#[path = "bindings/self_referential_neuron.rs"]
90mod self_referential_neuron_binding;
91#[path = "bindings/sensory/mod.rs"]
92mod sensory_bindings;
93#[path = "bindings/synapses/mod.rs"]
94mod synapse_bindings;
95
96pub use biophysical_bindings::*;
97pub use cerebellar_bindings::*;
98pub use channel_bindings::*;
99pub use hardware_bindings::*;
100pub use interneuron_bindings::*;
101pub use learning_bindings::*;
102pub use map_bindings::*;
103pub use misc_bindings::*;
104pub use motor_bindings::*;
105pub use multi_compartment_bindings::*;
106pub use population_bindings::*;
107pub use rate_bindings::*;
108pub use sensory_bindings::*;
109pub use simple_spiking_bindings::*;
110pub use stochastic_bindings::*;
111pub use synapse_bindings::*;
112pub use trivial_bindings::*;
113
114pub use adaptive_threshold_moe_neuron_binding::PyAdaptiveThresholdMoENeuron;
115pub use adex_neuron_binding::PyAdExNeuron;
116pub use alpha_binding::PyAlphaNeuron;
117pub use arcane_neuron_binding::PyArcaneNeuron;
118pub use attention_gated_neuron_binding::PyAttentionGatedNeuron;
119pub use compositional_binding_neuron_binding::PyCompositionalBindingNeuron;
120pub use continuous_attractor_neuron_binding::PyContinuousAttractorNeuron;
121pub use differentiable_surrogate_neuron_binding::PyDifferentiableSurrogateNeuron;
122pub use ermentrout_kopell_pop_binding::PyErmentroutKopellPopulation;
123pub use hybrid_linear_attention_neuron_binding::PyHybridLinearAttentionNeuron;
124pub use jansen_rit_binding::PyJansenRitUnit;
125pub use lapicque_neuron_binding::PyLapicqueNeuron;
126pub use mcculloch_pitts_binding::PyMcCullochPittsNeuron;
127pub use meta_plastic_neuron_binding::PyMetaPlasticNeuron;
128pub use multi_timescale_neuron_binding::PyMultiTimescaleNeuron;
129pub use predictive_coding_neuron_binding::PyPredictiveCodingNeuron;
130pub use quantum_inspired_lif_neuron_binding::PyQuantumInspiredLIFNeuron;
131pub use self_referential_neuron_binding::PySelfReferentialNeuron;
132pub use sigmoid_rate_binding::PySigmoidRateNeuron;
133pub use threshold_linear_rate_binding::PyThresholdLinearRateNeuron;
134
135pub fn register_neuron_classes(m: &Bound<'_, PyModule>) -> PyResult<()> {
140 multi_timescale_neuron_binding::register(m)?;
142 attention_gated_neuron_binding::register(m)?;
143 predictive_coding_neuron_binding::register(m)?;
144 self_referential_neuron_binding::register(m)?;
145 compositional_binding_neuron_binding::register(m)?;
146 differentiable_surrogate_neuron_binding::register(m)?;
147 continuous_attractor_neuron_binding::register(m)?;
148 meta_plastic_neuron_binding::register(m)?;
149 adaptive_threshold_moe_neuron_binding::register(m)?;
151 hybrid_linear_attention_neuron_binding::register(m)?;
152 quantum_inspired_lif_neuron_binding::register(m)?;
153 trivial_bindings::register(m)?;
154 simple_spiking_bindings::register_primary(m)?;
155 stochastic_bindings::register_adaptation(m)?;
156 population_bindings::register_brunel_wang(m)?;
157 alpha_binding::register(m)?;
158 simple_spiking_bindings::register_conductance_models(m)?;
159 learning_bindings::register(m)?;
160 simple_spiking_bindings::register_tail(m)?;
161 map_bindings::register(m)?;
162 biophysical_bindings::register(m)?;
163 multi_compartment_bindings::register(m)?;
164 stochastic_bindings::register(m)?;
165 population_bindings::register_wilson_cowan_unit(m)?;
166 jansen_rit_binding::register(m)?;
167 population_bindings::register_wong_wang_unit(m)?;
168 wong_wang_binding::register(m)?;
169 ermentrout_kopell_pop_binding::register(m)?;
170 population_bindings::register_neural_mass_tail(m)?;
171 hardware_bindings::register(m)?;
172 mcculloch_pitts_binding::register(m)?;
174 sigmoid_rate_binding::register(m)?;
175 threshold_linear_rate_binding::register(m)?;
176 rate_bindings::register(m)?;
177 arcane_neuron_binding::register(m)?;
178 adex_neuron_binding::register(m)?;
180 crate::exp_if_binding::register_legacy_alias(m)?;
181 lapicque_neuron_binding::register(m)?;
182 interneuron_bindings::register(m)?;
183 motor_bindings::register(m)?;
184 sensory_bindings::register(m)?;
185 cerebellar_bindings::register(m)?;
186 channel_bindings::register(m)?;
187 population_bindings::register(m)?;
188 misc_bindings::register(m)?;
189 synapse_bindings::register(m)?;
190 Ok(())
191}