# API Reference
```{toctree}
:hidden:
inferno
functional
neural
neural-functional
learn
observe
stats
extra
```
## Package Overview
[inferno]()
The common infrastructure used throughout various submodules and various functions for calculations and tensor-creation which may be used either within Inferno or may be helpful for end-users.
[inferno.functional]()
The protocols and various implementations for parameter bounding, interpolation, extrapolation, and dimensionality reduction.
[inferno.neural]()
The basic components for spiking neural networks, the infrastructure used for connecting them into a network and for supporting generalized parameter updates, and encoding non-spiking data into spike trains.
[inferno.neural.functional]()
The functional implementation of various components used by different models as a way to generalize and share functionality, also useful when implementing new classes that represent neural components.
[inferno.learn]()
The components needed for training spiking neural networks, as well as components which may be used for specific inference tasks (e.g. classification).
[inferno.observe]()
The infrastructure and components for monitoring the internal states of components.
[inferno.stats]()
A work-in-progress module containing PyTorch-based implementations of various probability distributions.
[inferno.extra]()
A work-in-progress module containing assorted components which may be useful when attempting to generate visualizations or diagnose issues, or whenever a placeholder is needed.