manual:complexmatrix
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
| — | manual:complexmatrix [2016/06/16 17:43] (current) – created zenke | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Complex Matrix class ====== | ||
| + | As of Auryn v0.8 the library comes with a complex matrix class which generalizes [[SimpleMatrix]] to synaptic connections which can have more than just a single scalar value per connection. [[ComplexMatrix]] is essentially a rank three tensor class optimized for sparse synaptic transmission. | ||
| + | |||
| + | More specifically, | ||
| + | spikes. Memory has to be reserved when the class is defined and elements can | ||
| + | only be inserted row by row starting from "top left to bottom right" | ||
| + | related data fields to reside in memory next to each other. | ||
| + | |||
| + | ComplexMatrix generalizes SimpleMatrix to a rank 3 tensor in which each | ||
| + | synaptic connection can have more than one value (third tensor mode -- | ||
| + | corresponding to a synaptic state). This allows to efficiently implement state | ||
| + | based complex synaptic models which have their own internal dynamics. | ||
| + | Instead of storing all synaptic data values in one long array the synaptic | ||
| + | state values are stored in multiple state vectors which can be manipulated | ||
| + | efficiently in a vector based manner. | ||
| + | |||
| + | For instance, suppose '' | ||
| + | '' | ||
| + | three state variables of type AurynWeight per synaptic connection. | ||
| + | Now, decaying all elements of, say, state 3 by a factor '' | ||
| + | '' | ||
| + | Adding two of the states for all synapses | ||
| + | becomes | ||
| + | < | ||
| + | w-> | ||
| + | </ | ||
| + | |||
| + | As you imagine these expressions can quickly become rather lengthy. | ||
| + | It is therefore nice to declare shortcuts in your plastic Connection class such as: | ||
| + | < | ||
| + | AurynSynStateVector * w_val = w-> | ||
| + | AurynSynStateVector * tagging_val | ||
| + | AurynSynStateVector * scaffold_val = w-> | ||
| + | </ | ||
| + | |||
| + | You can now work with these as you are used with AurynVector or | ||
| + | AurynStateVector instances '' | ||
manual/complexmatrix.txt · Last modified: 2016/06/16 17:43 by zenke
