sc_neurocore_engine/
lib.rs1#![allow(
10 clippy::useless_conversion,
11 clippy::needless_range_loop,
12 clippy::too_many_arguments,
13 deprecated
14)]
15
16use pyo3::prelude::*;
17
18pub mod adc_to_spike;
19#[path = "bindings/adc_to_spike.rs"]
20mod adc_to_spike_binding;
21pub mod analysis;
22pub mod attention;
23pub mod bitstream;
24#[path = "bindings/bitstream.rs"]
25mod bitstream_binding;
26#[path = "bindings/brunel.rs"]
27mod brunel_binding;
28#[path = "bindings/escape_rate.rs"]
29mod escape_rate_binding;
30#[path = "bindings/evolution.rs"]
31mod evolution_binding;
32#[path = "bindings/exp_if.rs"]
33mod exp_if_binding;
34#[path = "bindings/hdc.rs"]
35mod hdc_binding;
36pub use hdc_binding::PyBitStreamTensor;
37pub mod brunel;
38#[path = "bindings/coba_lif.rs"]
39mod coba_lif_binding;
40pub mod connectome;
41pub mod conv;
42pub mod cordiv;
43#[path = "bindings/cordiv.rs"]
44mod cordiv_binding;
45pub mod cortical_column;
46#[path = "bindings/cortical_column.rs"]
47mod cortical_column_binding;
48pub mod cortical_inject;
49#[path = "bindings/cortical_inject.rs"]
50mod cortical_inject_binding;
51#[path = "bindings/dcls.rs"]
52mod dcls_binding;
53#[path = "bindings/dense_layer.rs"]
54mod dense_layer_binding;
55pub mod dna;
56pub mod ei_network;
57#[path = "bindings/ei_network.rs"]
58mod ei_network_binding;
59pub mod encoder;
60pub mod evo;
61pub mod fault;
62#[path = "bindings/fault.rs"]
63mod fault_binding;
64#[path = "bindings/fixed_point_lif.rs"]
65mod fixed_point_lif_binding;
66pub mod fusion;
67#[cfg(feature = "gpu")]
68pub mod gpu;
69pub mod grad;
70pub mod graph;
71#[path = "bindings/iqif.rs"]
72mod iqif_binding;
73pub mod ir;
74#[path = "bindings/izhikevich2007.rs"]
75mod izhikevich2007_binding;
76#[path = "bindings/izhikevich.rs"]
77mod izhikevich_binding;
78#[path = "bindings/kuramoto.rs"]
79mod kuramoto_binding;
80pub mod layer;
81pub(crate) mod learning_bindings;
82pub mod lgssm;
83#[path = "bindings/lgssm.rs"]
84mod lgssm_binding;
85#[path = "bindings/matrix_inputs.rs"]
86mod matrix_inputs_binding;
87#[path = "bindings/mixed_dense.rs"]
88mod mixed_dense_binding;
89pub mod network_runner;
90#[path = "bindings/network_runner.rs"]
91mod network_runner_binding;
92pub mod neuron;
93pub mod neurons;
94#[path = "bindings/ollivier_ricci.rs"]
95mod ollivier_ricci_binding;
96pub mod optimizer;
97#[path = "bindings/optimizer.rs"]
98mod optimizer_binding;
99pub mod partition;
100#[path = "bindings/partition.rs"]
101mod partition_binding;
102pub mod phi;
103#[path = "bindings/phi.rs"]
104mod phi_binding;
105pub mod photonic;
106pub mod ping;
107#[path = "bindings/ping.rs"]
108mod ping_binding;
109#[path = "bindings/poisson.rs"]
110mod poisson_binding;
111pub mod predictive_coding;
112#[path = "bindings/predictive_coding.rs"]
113mod predictive_coding_binding;
114pub mod pyo3_neurons;
115pub mod quantum;
116pub mod rall_dendrite;
117#[path = "bindings/rall_dendrite.rs"]
118mod rall_dendrite_binding;
119pub mod recorder;
120pub mod recurrent;
121pub mod rk4_neurons;
122#[path = "bindings/runtime_control.rs"]
123mod runtime_control_binding;
124pub mod sc_inference;
125#[path = "bindings/sc_inference.rs"]
126mod sc_inference_binding;
127pub mod scpn;
128#[path = "bindings/scpn_metrics.rs"]
129mod scpn_metrics_binding;
130pub mod simd;
131pub mod sobol;
132#[path = "bindings/stdp_synapse.rs"]
133mod stdp_synapse_binding;
134#[cfg(feature = "z3")]
135pub mod supervisor;
136pub mod synapses;
137pub mod topology;
138pub mod wilson_cowan;
139#[path = "bindings/wilson_cowan.rs"]
140mod wilson_cowan_binding;
141pub mod wong_wang;
142
143#[pymodule]
146fn sc_neurocore_engine(m: &Bound<'_, PyModule>) -> PyResult<()> {
147 m.add("__version__", env!("CARGO_PKG_VERSION"))?;
148 runtime_control_binding::register(m)?;
149 bitstream_binding::register(m)?;
150 fixed_point_lif_binding::register(m)?;
151 dcls_binding::register(m)?;
152 mixed_dense_binding::register(m)?;
153 adc_to_spike_binding::register(m)?;
154 sc_inference_binding::register(m)?;
155 wilson_cowan_binding::register(m)?;
156 dense_layer_binding::register(m)?;
157 #[cfg(feature = "gpu")]
158 m.add_class::<gpu::PyGpuDenseLayer>()?;
159 #[cfg(feature = "gpu")]
160 m.add_class::<gpu::PyGpuLifBatch>()?;
161 #[cfg(feature = "gpu")]
162 m.add_class::<gpu::PyGpuKuramoto>()?;
163 #[cfg(feature = "gpu")]
164 m.add_class::<gpu::PyGpuIzhikevichBatch>()?;
165 stdp_synapse_binding::register(m)?;
166 learning_bindings::register(m)?;
167 kuramoto_binding::register(m)?;
168 scpn_metrics_binding::register(m)?;
169 hdc_binding::register(m)?;
170 brunel_binding::register(m)?;
171 izhikevich_binding::register(m)?;
172 ir::bindings::register(m)?;
173 exp_if_binding::register(m)?;
174 pyo3_neurons::register_neuron_classes(m)?;
175 network_runner_binding::register(m)?;
176 #[cfg(feature = "z3")]
177 m.add_class::<supervisor::PySpikingControllerPool>()?;
178 ei_network_binding::register(m)?;
179 m.add_function(wrap_pyfunction!(rk4_neurons::py_rk4_neuron_simulate, m)?)?;
180 cordiv_binding::register(m)?;
181 predictive_coding_binding::register(m)?;
182 phi_binding::register(m)?;
183 cortical_column_binding::register(m)?;
184 rall_dendrite_binding::register(m)?;
185 analysis::bindings::register(m)?;
186 dna::bindings::register(m)?;
187 quantum::bindings::register(m)?;
188 photonic::bindings::register(m)?;
190 optimizer_binding::register(m)?;
191 evolution_binding::register(m)?;
192 lgssm_binding::register(m)?;
193 ollivier_ricci_binding::register(m)?;
194 coba_lif_binding::register(m)?;
195 escape_rate_binding::register(m)?;
196 poisson_binding::register(m)?;
197 iqif_binding::register(m)?;
198 izhikevich2007_binding::register(m)?;
199 fault_binding::register(m)?;
200 partition_binding::register(m)?;
201 ping_binding::register(m)?;
202 cortical_inject_binding::register(m)?;
203 Ok(())
204}