MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <SeqSynHandler.h>
Public Member Functions | |
void | addSpike (unsigned int index, double time, double weight) |
unsigned int | addSynapse () |
Adds a new synapse, returns its index. More... | |
void | dropSynapse (unsigned int droppedSynNumber) |
void | fixSynapseOrder () |
double | getBaseScale () const |
vector< double > | getHistory () const |
double | getHistoryTime () const |
vector< double > | getKernel () const |
string | getKernelEquation () const |
unsigned int | getKernelWidth () const |
double | getPlasticityScale () const |
double | getSeqActivation () const |
double | getSeqDt () const |
double | getSequencePower () const |
double | getSequenceScale () const |
vector< unsigned int > | getSynapseOrder () const |
int | getSynapseOrderOption () const |
double | getTopSpike (unsigned int index) const |
vector< double > | getWeightScaleVec () const |
int | numHistory () const |
SeqSynHandler & | operator= (const SeqSynHandler &other) |
void | refillSynapseOrder (unsigned int newSize) |
SeqSynHandler () | |
void | setBaseScale (double v) |
void | setHistoryTime (double v) |
void | setKernelEquation (string eq) |
void | setKernelWidth (unsigned int v) |
void | setPlasticityScale (double v) |
void | setSeqDt (double v) |
void | setSequencePower (double v) |
void | setSequenceScale (double v) |
void | setSynapseOrder (vector< unsigned int > v) |
void | setSynapseOrderOption (int v) |
unsigned int | vGetNumSynapses () const |
Synapse * | vGetSynapse (unsigned int i) |
void | vProcess (const Eref &e, ProcPtr p) |
void | vReinit (const Eref &e, ProcPtr p) |
void | vSetNumSynapses (unsigned int num) |
~SeqSynHandler () | |
![]() | |
unsigned int | getNumSynapses () const |
Synapse * | getSynapse (unsigned int i) |
void | process (const Eref &e, ProcPtr p) |
bool | rangeWarning (const string &field, double value) |
void | reinit (const Eref &e, ProcPtr p) |
void | setNumSynapses (unsigned int num) |
SynHandlerBase () | |
virtual | ~SynHandlerBase () |
Static Public Member Functions | |
static const Cinfo * | initCinfo () |
![]() | |
static SrcFinfo1< double > * | activationOut () |
static const Cinfo * | initCinfo () |
Private Member Functions | |
void | updateKernel () |
Private Attributes | |
double | baseScale_ |
Scaling factor for baseline synaptic responses. More... | |
priority_queue< PreSynEvent, vector< PreSynEvent > , CompareSynEvent > | events_ |
RollingMatrix | history_ |
Kernel for seq selectivity. More... | |
double | historyTime_ |
Time to store history. KernelDt defines num of rows. More... | |
vector< vector< double > > | kernel_ |
string | kernelEquation_ |
unsigned int | kernelWidth_ |
vector< double > | latestSpikes_ |
double | plasticityScale_ |
double | seqActivation_ |
double | seqDt_ |
double | sequencePower_ |
double | sequenceScale_ |
Scaling factor for sequence recognition responses. More... | |
vector< unsigned int > | synapseOrder_ |
Rows = time; cols = synInputs. More... | |
int | synapseOrderOption_ |
vector< Synapse > | synapses_ |
vector< double > | weightScaleVec_ |
This handles synapses organized sequentially. The parent class SimpleSynHandler deals with the mechanics of data arrival. Here the algorithm is 0. Assume all synaptic input comes on a linear dendrite.
Definition at line 26 of file SeqSynHandler.h.
SeqSynHandler::SeqSynHandler | ( | ) |
Definition at line 209 of file SeqSynHandler.cpp.
References history_, numHistory(), and RollingMatrix::resize().
SeqSynHandler::~SeqSynHandler | ( | ) |
Definition at line 225 of file SeqSynHandler.cpp.
|
virtual |
Record arrival of a new spike event. The 'time' is time for eventual arrival of the spike, and is typically well in the future. The index specifies which synapse the spike came to.
Implements SynHandlerBase.
Definition at line 502 of file SeqSynHandler.cpp.
References events_, latestSpikes_, synapseOrder_, and synapses_.
|
virtual |
Adds a new synapse, returns its index.
Implements SynHandlerBase.
Definition at line 523 of file SeqSynHandler.cpp.
References synapses_.
|
virtual |
Drops an existing synapse, triggered by deleteMsg of an input to the child synapse. This is a little messy because we can't change the indices of the other synapses. The Handler has to figure out how to handle the 'holes' in its array of synapses.
Implements SynHandlerBase.
Definition at line 531 of file SeqSynHandler.cpp.
References synapses_.
void SeqSynHandler::fixSynapseOrder | ( | ) |
Definition at line 276 of file SeqSynHandler.cpp.
References synapseOrder_.
Referenced by refillSynapseOrder(), and setSynapseOrder().
double SeqSynHandler::getBaseScale | ( | ) | const |
Definition at line 409 of file SeqSynHandler.cpp.
References baseScale_.
Referenced by initCinfo().
vector< double > SeqSynHandler::getHistory | ( | ) | const |
Definition at line 464 of file SeqSynHandler.cpp.
References RollingMatrix::get(), history_, numHistory(), and vGetNumSynapses().
Referenced by initCinfo().
double SeqSynHandler::getHistoryTime | ( | ) | const |
Definition at line 399 of file SeqSynHandler.cpp.
References historyTime_.
Referenced by initCinfo().
vector< double > SeqSynHandler::getKernel | ( | ) | const |
Definition at line 454 of file SeqSynHandler.cpp.
References kernel_, and numHistory().
Referenced by initCinfo().
string SeqSynHandler::getKernelEquation | ( | ) | const |
Definition at line 364 of file SeqSynHandler.cpp.
References kernelEquation_.
Referenced by initCinfo().
unsigned int SeqSynHandler::getKernelWidth | ( | ) | const |
Definition at line 375 of file SeqSynHandler.cpp.
References kernelWidth_.
Referenced by initCinfo().
double SeqSynHandler::getPlasticityScale | ( | ) | const |
Definition at line 429 of file SeqSynHandler.cpp.
References plasticityScale_.
Referenced by initCinfo().
double SeqSynHandler::getSeqActivation | ( | ) | const |
Definition at line 424 of file SeqSynHandler.cpp.
References seqActivation_.
Referenced by initCinfo().
double SeqSynHandler::getSeqDt | ( | ) | const |
Definition at line 387 of file SeqSynHandler.cpp.
References seqDt_.
Referenced by initCinfo().
double SeqSynHandler::getSequencePower | ( | ) | const |
Definition at line 439 of file SeqSynHandler.cpp.
References sequencePower_.
Referenced by initCinfo().
double SeqSynHandler::getSequenceScale | ( | ) | const |
Definition at line 419 of file SeqSynHandler.cpp.
References sequenceScale_.
Referenced by initCinfo().
vector< unsigned int > SeqSynHandler::getSynapseOrder | ( | ) | const |
Definition at line 484 of file SeqSynHandler.cpp.
References synapseOrder_.
Referenced by initCinfo().
int SeqSynHandler::getSynapseOrderOption | ( | ) | const |
Definition at line 495 of file SeqSynHandler.cpp.
References synapseOrderOption_.
Referenced by initCinfo().
|
virtual |
Implements SynHandlerBase.
Definition at line 516 of file SeqSynHandler.cpp.
References events_.
vector< double > SeqSynHandler::getWeightScaleVec | ( | ) | const |
Definition at line 449 of file SeqSynHandler.cpp.
References weightScaleVec_.
Referenced by initCinfo().
|
static |
Definition at line 20 of file SeqSynHandler.cpp.
References getBaseScale(), getHistory(), getHistoryTime(), getKernel(), getKernelEquation(), getKernelWidth(), SynHandlerBase::getNumSynapses(), getPlasticityScale(), getSeqActivation(), getSeqDt(), getSequencePower(), getSequenceScale(), SynHandlerBase::getSynapse(), getSynapseOrder(), getSynapseOrderOption(), getWeightScaleVec(), Synapse::initCinfo(), SynHandlerBase::initCinfo(), seqSynHandlerCinfo, setBaseScale(), setHistoryTime(), setKernelEquation(), setKernelWidth(), SynHandlerBase::setNumSynapses(), setPlasticityScale(), setSeqDt(), setSequencePower(), setSequenceScale(), setSynapseOrder(), and setSynapseOrderOption().
int SeqSynHandler::numHistory | ( | ) | const |
Definition at line 601 of file SeqSynHandler.cpp.
References historyTime_, and seqDt_.
Referenced by getHistory(), getKernel(), SeqSynHandler(), setHistoryTime(), setSeqDt(), updateKernel(), vProcess(), and vSetNumSynapses().
SeqSynHandler & SeqSynHandler::operator= | ( | const SeqSynHandler & | other | ) |
Definition at line 229 of file SeqSynHandler.cpp.
References events_, and synapses_.
void SeqSynHandler::refillSynapseOrder | ( | unsigned int | newSize | ) |
Definition at line 309 of file SeqSynHandler.cpp.
References fixSynapseOrder(), moose::mtrand(), moose::mtseed(), synapseOrder_, and synapseOrderOption_.
Referenced by setSynapseOrderOption(), and vSetNumSynapses().
void SeqSynHandler::setBaseScale | ( | double | v | ) |
Definition at line 404 of file SeqSynHandler.cpp.
References baseScale_.
Referenced by initCinfo().
void SeqSynHandler::setHistoryTime | ( | double | v | ) |
Definition at line 392 of file SeqSynHandler.cpp.
References history_, historyTime_, numHistory(), RollingMatrix::resize(), updateKernel(), and vGetNumSynapses().
Referenced by initCinfo().
void SeqSynHandler::setKernelEquation | ( | string | eq | ) |
Definition at line 358 of file SeqSynHandler.cpp.
References kernelEquation_, and updateKernel().
Referenced by initCinfo().
void SeqSynHandler::setKernelWidth | ( | unsigned int | v | ) |
Definition at line 369 of file SeqSynHandler.cpp.
References kernelWidth_, and updateKernel().
Referenced by initCinfo().
void SeqSynHandler::setPlasticityScale | ( | double | v | ) |
Definition at line 434 of file SeqSynHandler.cpp.
References plasticityScale_.
Referenced by initCinfo().
void SeqSynHandler::setSeqDt | ( | double | v | ) |
Definition at line 380 of file SeqSynHandler.cpp.
References history_, numHistory(), RollingMatrix::resize(), seqDt_, updateKernel(), and vGetNumSynapses().
Referenced by initCinfo().
void SeqSynHandler::setSequencePower | ( | double | v | ) |
Definition at line 444 of file SeqSynHandler.cpp.
References sequencePower_.
Referenced by initCinfo().
void SeqSynHandler::setSequenceScale | ( | double | v | ) |
Definition at line 414 of file SeqSynHandler.cpp.
References sequenceScale_.
Referenced by initCinfo().
void SeqSynHandler::setSynapseOrder | ( | vector< unsigned int > | v | ) |
Definition at line 477 of file SeqSynHandler.cpp.
References fixSynapseOrder(), synapseOrder_, and synapseOrderOption_.
Referenced by initCinfo().
void SeqSynHandler::setSynapseOrderOption | ( | int | v | ) |
Definition at line 489 of file SeqSynHandler.cpp.
References refillSynapseOrder(), synapseOrder_, and synapseOrderOption_.
Referenced by initCinfo().
|
private |
Definition at line 332 of file SeqSynHandler.cpp.
References historyTime_, kernel_, kernelEquation_, kernelWidth_, M_E, M_PI, numHistory(), and seqDt_.
Referenced by setHistoryTime(), setKernelEquation(), setKernelWidth(), setSeqDt(), and vSetNumSynapses().
|
virtual |
Implements SynHandlerBase.
Definition at line 257 of file SeqSynHandler.cpp.
References synapses_.
Referenced by getHistory(), setHistoryTime(), setSeqDt(), and vProcess().
|
virtual |
Implements SynHandlerBase.
Definition at line 262 of file SeqSynHandler.cpp.
References dummy, and synapses_.
Implements SynHandlerBase.
Definition at line 538 of file SeqSynHandler.cpp.
References SynHandlerBase::activationOut(), baseScale_, RollingMatrix::correl(), ProcInfo::currTime, ProcInfo::dt, events_, history_, kernel_, latestSpikes_, numHistory(), plasticityScale_, RollingMatrix::rollToNextRow(), seqActivation_, seqDt_, sequencePower_, sequenceScale_, RollingMatrix::sumIntoRow(), vGetNumSynapses(), and weightScaleVec_.
Implements SynHandlerBase.
Definition at line 594 of file SeqSynHandler.cpp.
References events_.
|
virtual |
Implements SynHandlerBase.
Definition at line 243 of file SeqSynHandler.cpp.
References history_, latestSpikes_, numHistory(), refillSynapseOrder(), RollingMatrix::resize(), synapses_, updateKernel(), and weightScaleVec_.
|
private |
Scaling factor for baseline synaptic responses.
Definition at line 105 of file SeqSynHandler.h.
Referenced by getBaseScale(), setBaseScale(), and vProcess().
|
private |
Definition at line 156 of file SeqSynHandler.h.
Referenced by addSpike(), getTopSpike(), operator=(), vProcess(), and vReinit().
|
private |
Kernel for seq selectivity.
Definition at line 138 of file SeqSynHandler.h.
Referenced by getHistory(), SeqSynHandler(), setHistoryTime(), setSeqDt(), vProcess(), and vSetNumSynapses().
|
private |
Time to store history. KernelDt defines num of rows.
Definition at line 102 of file SeqSynHandler.h.
Referenced by getHistoryTime(), numHistory(), setHistoryTime(), and updateKernel().
|
private |
Definition at line 137 of file SeqSynHandler.h.
Referenced by getKernel(), updateKernel(), and vProcess().
|
private |
Definition at line 98 of file SeqSynHandler.h.
Referenced by getKernelEquation(), setKernelEquation(), and updateKernel().
|
private |
Definition at line 99 of file SeqSynHandler.h.
Referenced by getKernelWidth(), setKernelWidth(), and updateKernel().
|
private |
Definition at line 134 of file SeqSynHandler.h.
Referenced by addSpike(), vProcess(), and vSetNumSynapses().
|
private |
Scaling factor for short-term plastic weight changes in each synapse arising from sequential input.
Definition at line 113 of file SeqSynHandler.h.
Referenced by getPlasticityScale(), setPlasticityScale(), and vProcess().
|
private |
Definition at line 126 of file SeqSynHandler.h.
Referenced by getSeqActivation(), and vProcess().
|
private |
Definition at line 103 of file SeqSynHandler.h.
Referenced by getSeqDt(), numHistory(), setSeqDt(), updateKernel(), and vProcess().
|
private |
Exponent to use for the outcome of the sequential calculations. This is needed because linear summation of terms in the kernel means that a brief stong sequence match is no better than lots of successive low matches. In other words, 12345 is no better than 11111.
Definition at line 122 of file SeqSynHandler.h.
Referenced by getSequencePower(), setSequencePower(), and vProcess().
|
private |
Scaling factor for sequence recognition responses.
Definition at line 107 of file SeqSynHandler.h.
Referenced by getSequenceScale(), setSequenceScale(), and vProcess().
|
private |
Rows = time; cols = synInputs.
Remaps synapse order to avoid correlations based on presynaptic object Id order, or on connection building order. This undesirable ordering occurs even when random synaptic projections are used. User can alter as preferred. This is simply a look up table so that the incoming synapse index is remapped: index_on_Handler = synapseOrder_[original_syn_index] This must only have numbers from zero to numSynapses, and should normally have all the numbers.
Definition at line 149 of file SeqSynHandler.h.
Referenced by addSpike(), fixSynapseOrder(), getSynapseOrder(), refillSynapseOrder(), setSynapseOrder(), and setSynapseOrderOption().
|
private |
Options: -2: User. -1: ordered. 0: random by system seed.
0: Random by seed specified by this number
Definition at line 153 of file SeqSynHandler.h.
Referenced by getSynapseOrderOption(), refillSynapseOrder(), setSynapseOrder(), and setSynapseOrderOption().
|
private |
Definition at line 155 of file SeqSynHandler.h.
Referenced by addSpike(), addSynapse(), dropSynapse(), operator=(), vGetNumSynapses(), vGetSynapse(), and vSetNumSynapses().
|
private |
Definition at line 129 of file SeqSynHandler.h.
Referenced by getWeightScaleVec(), vProcess(), and vSetNumSynapses().