=========================
**Added**
- Added a new example notebook for Legendre Memory Units.
(`1589 <https://github.com/nengo/nengo/pull/1589>`__)
- Added the ``step_order`` attribute to ``nengo.Simulator``, which contains an
ordered list of the operations run on each timestep.
(`1615 <https://github.com/nengo/nengo/pull/1615>`__)
- Added the ``make_state`` method to ``NeuronType``, which initializes the
neuron type's state variables. (`1609`_)
- Added the ``spiking`` attribute to ``NeuronType``, which exposes whether
a neuron type is spiking or non-spiking. (`1609`_)
- Added the ``negative`` attribute to ``NeuronType``, which indicates whether
the neuron type can have negative outputs. (`1609`_)
- Added the ``Tanh`` neuron type to simulate hyperbolic tangent neurons. (`1609`_)
- Added the ``RatesToSpikesNeuronType``, which is a base class for neuron types
that convert a rate-based type to a spiking one. (`1609`_)
- Added the ``RegularSpiking`` neuron type, which emits regularly-spaced spikes
at the rate specified by its base type. (`1609`_)
- Added the ``StochasticSpiking`` neuron type, which emits spikes based on stochastic
rounding to roughly match the rate specified by its base type. (`1609`_)
- Added the ``PoissonSpiking`` neuron type, which emits Poisson-distributed spikes,
as are commonly used to match biological spiking statistics. (`1609`_)
- Added the ``PositiveNeuronType`` test argument to run tests on all neuron types
for which ``negative`` is not ``True``. (`1609`_)
- Added the ``QuasirandomSequence`` distribution, which is similar to
``Uniform`` but spreads points across the space evenly. (`1611`_)
- Added the ``ScatteredHypersphere`` distribution, which is similar to
``UniformHypersphere`` but spreads points across the space more evenly. (`1611`_)
- Added the ``RLS`` (recursive least-squares) learning rule, which is an online
version of the least-squares method typically used for offline decoder-solving.
(`1611`_, `example <learn-product_>`__)
- Added the ``SimProbe`` operator, which marks a signal as being probed. (`1653`_)
**Changed**
- Nengo is now compatible with Python 3.8. (`1628`_)
- The default Connection transform is now ``None``, meaning that there will be
no transform applied. This only changes behavior when learning on a
neuron-neuron connection with the default scalar transform. In that situation
there are now no weights to apply learning to, so this will result in an
error. The old behaviour can be obtained by setting ``transform=1``.
(`1591 <https://github.com/nengo/nengo/pull/1591>`__)
- Network list attributes (e.g. ``.ensembles``, ``.connections``, ``.probes``) are now
read-only, to prevent users from accidentally overwriting them with their own data.
(`1545 <https://github.com/nengo/nengo/issues/1545>`__,
`1608 <https://github.com/nengo/nengo/pull/1608>`__)
- The ``NeuronType.step_math`` method has been renamed to ``NeuronType.step``.
(`1609`_)
- Neuron types can now create arbitrary state variables without needing to register
a new build function. The ``state`` class attribute declares the neuron type's
state variables and their default initial values. All ``__init__`` methods accept
an ``initial_state`` dictionary for users to override the default initial state
values. (`1609`_)
- The ``nl`` and ``nl_nodirect`` test arguments have been renamed to ``AnyNeuronType``
and ``NonDirectNeuronType``. (`1609`_)
- Weight solvers (i.e. those with ``weights=True``) are now allowed on all connections.
For connections that are not between ``Ensembles``, though, weight solvers have the
same effects as solvers with ``weights=False``, and a warning will be raised.
(`1626 <https://github.com/nengo/nengo/pull/1626>`__)
- Various improvements to simulation speed. (`1629`_)
- ``EnsembleArray`` now raises an error if ``add_output`` would
overwrite an existing attribute. (`1611`_)
- The ``encoders`` and ``eval_points`` of ``Ensemble`` are now sampled from
``ScatteredHypersphere`` by default. (`1611`_)
- Trying to re-open a closed Simulator will now raise an error. (`1599`_)
**Deprecated**
- ``NeuronType.step`` replaces the ``NeuronType.step_math`` method,
which will be removed in Nengo 4.0.0. (`1609`_)
- ``Connection.is_decoded`` is deprecated, as the definition of whether a Connection
is decoded or not was ambiguous. Instead we recommend directly checking the pre/post
objects for the properties of interest. (`1640`_)
**Fixed**
- Fixed a bug when comparing equality with ``Ensemble.neurons`` or
``Connection.learning_rule`` objects.
(`1588 <https://github.com/nengo/nengo/pull/1588>`__)
- Fixed a bug preventing unpickling an ``Ensemble``.
(`1598 <https://github.com/nengo/nengo/pull/1598>`__)
- Fixed a bug in which unpickling a ``Simulator`` would rerun the optimizer.
(`1598 <https://github.com/nengo/nengo/pull/1598>`__)
- Fixed a bug where the ``LstsqDrop`` solver errored when solving for zero weights.
(`1541 <https://github.com/nengo/nengo/issues/1541>`__,
`1607 <https://github.com/nengo/nengo/pull/1607>`__)
- Fixed a bug in the validation of ``Choice`` distributions. (`1630`_)
- Fixed a bug where a ``Signal`` did not register as sharing memory with itself.
(`1627`_)
- Fixed a shape error when applying PES learning to a neuron-to-neuron connection with a
slice on the post-synaptic neurons. (`1640`_)
- Fixed a shape error when applying PES learning to a neuron->ensemble connection with
a weight solver. (`1640`_)
- Fixed a shape error when applying PES learning to an ensemble->neuron connection.
(`1640`_)
- Fixed a shape error when applying PES learning with a slice on the pre-synaptic
object. (`1640`_)
.. _1599: https://github.com/nengo/nengo/pull/1599
.. _1609: https://github.com/nengo/nengo/pull/1609
.. _1611: https://github.com/nengo/nengo/pull/1611
.. _1627: https://github.com/nengo/nengo/pull/1627
.. _1628: https://github.com/nengo/nengo/pull/1628
.. _1629: https://github.com/nengo/nengo/pull/1629
.. _1630: https://github.com/nengo/nengo/pull/1630
.. _1640: https://github.com/nengo/nengo/pull/1640
.. _1653: https://github.com/nengo/nengo/pull/1653
.. _learn-product: https://www.nengo.ai/nengo/examples/learning/learn-product.html