Skip to main content

sc_neurocore_engine/bindings/trivial/
mod.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Commercial license available
3// © Concepts 1996–2026 Miroslav Šotek. All rights reserved.
4// © Code 2020–2026 Miroslav Šotek. All rights reserved.
5// ORCID: 0009-0009-3560-0851
6// Contact: www.anulum.li | protoscience@anulum.li
7// SC-NeuroCore — Simple integrate-and-fire PyO3 binding composition
8
9use pyo3::prelude::*;
10
11#[path = "../adaptive_threshold_if.rs"]
12mod adaptive_threshold_if;
13mod closed_form_continuous;
14mod complementary_lif;
15mod energy_lif;
16mod gated_lif;
17mod inhibitory_lif;
18mod klif;
19mod mat;
20mod non_resetting_lif;
21mod nonlinear_lif;
22mod parametric_lif;
23mod perfect_integrator;
24mod quadratic_if;
25mod sc_non_resetting_adaptive_lif;
26mod sc_normalized_energy_lif;
27mod sc_resetting_mat;
28mod sc_sigma_delta_accumulator;
29mod sfa;
30mod sigma_delta;
31mod theta;
32
33pub use adaptive_threshold_if::PyAdaptiveThresholdIFNeuron;
34pub use closed_form_continuous::PyClosedFormContinuousNeuron;
35pub use complementary_lif::PyComplementaryLIFNeuron;
36pub use energy_lif::PyEnergyLIFNeuron;
37pub use gated_lif::PyGatedLIFNeuron;
38pub use inhibitory_lif::PyInhibitoryLIFNeuron;
39pub use klif::PyKLIFNeuron;
40pub use mat::PyMATNeuron;
41pub use non_resetting_lif::PyNonResettingLIFNeuron;
42pub use nonlinear_lif::PyNonlinearLIFNeuron;
43pub use parametric_lif::PyParametricLIFNeuron;
44pub use perfect_integrator::PyPerfectIntegratorNeuron;
45pub use quadratic_if::PyQuadraticIFNeuron;
46pub use sc_non_resetting_adaptive_lif::PySCNonResettingAdaptiveLIFNeuron;
47pub use sc_normalized_energy_lif::PySCNormalizedEnergyLIFNeuron;
48pub use sc_resetting_mat::PySCResettingMATNeuron;
49pub use sc_sigma_delta_accumulator::PySCSigmaDeltaAccumulatorNeuron;
50pub use sfa::PySFANeuron;
51pub use sigma_delta::PySigmaDeltaNeuron;
52pub use theta::PyThetaNeuron;
53
54/// Register the eighteen model-owned simple integrate-and-fire classes in stable ABI order.
55pub(crate) fn register(module: &Bound<'_, PyModule>) -> PyResult<()> {
56    quadratic_if::register(module)?;
57    theta::register(module)?;
58    perfect_integrator::register(module)?;
59    gated_lif::register(module)?;
60    nonlinear_lif::register(module)?;
61    sfa::register(module)?;
62    mat::register(module)?;
63    sc_resetting_mat::register(module)?;
64    sc_sigma_delta_accumulator::register(module)?;
65    sc_non_resetting_adaptive_lif::register(module)?;
66    sc_normalized_energy_lif::register(module)?;
67    klif::register(module)?;
68    inhibitory_lif::register(module)?;
69    complementary_lif::register(module)?;
70    parametric_lif::register(module)?;
71    non_resetting_lif::register(module)?;
72    adaptive_threshold_if::register(module)?;
73    sigma_delta::register(module)?;
74    energy_lif::register(module)?;
75    closed_form_continuous::register(module)?;
76    Ok(())
77}