/*--------------------------------------------------------------------------
Author: Thomas Nowotny
Institute: Institute for Nonlinear Dynamics
University of California San Diego
La Jolla, CA 92093-0402
email to: tnowotny@ucsd.edu
initial version: 2005-08-17
--------------------------------------------------------------------------*/
#ifndef CN_SYNAPSE_CC
#define CN_SYNAPSE_CC
#include "CN_synapse.h"
synapse::synapse(neuron *insource, neuron *intarget, int iniVarNo,
int inpNo, int intype)
{
assert(intarget != NULL);
source= insource;
target= intarget;
target->den.push_back(this);
iVarNo= iniVarNo;
pNo= inpNo;
if (pNo > 0) p= new double[pNo];
type= intype;
// we don't know our index number yet
idx= 0;
enabled= 0;
}
synapse::~synapse()
{
if (pNo > 0) delete[] p;
}
void synapse::set_p(double *inp)
{
for (int i= 0; i < pNo; i++) p[i]= inp[i];
}
void synapse::init(double *x, double *iniVars)
{
assert(enabled);
for (int i= 0; i < iVarNo; i++) {
x[idx+i]= iniVars[i];
}
}
void synapse::setIdx(int inidx)
{
assert(!enabled);
idx= inidx;
enabled= 1;
}
int synapse::getIdx()
{
return idx;
}
#endif
|