class Stimulus

Emulates the background noise in the brain by firing messages to the cells on its list

Public Fields

int id
Index into the Arrays structure to the Stimulus object that this object was created from
Stimulus* next
Pointer to the next Stimulus Object
Stimulus* prev
Pointer to the previous Stimulus Object
void* II
Info used by input stims
Random* RN
Random number generator for this stimulus object
int nFreqs
Number of frequencies (items) in input data
int CellsPerFreq
Number of cells to receive each frequency
int CellsOnNode
Number of receiving cells that are on this node
int nDataRows
Number of rows in data - 1 for INPUT
float* Data
Pointer to the data as it is read in
char** ThingPtrs
Pointers to the objects that will receive stim
int* DataIdx
Index of data corresponding to each object
int MODE
CURRENT or VOLTAGE
int PATTERN
LINEAR, SINE, ONGOING, PULSE, NOISE
int TIMING
EXACT, URAND, POISSON
double AMP_Start
Intial AMP value when starting
double AMP_End
Target AMP value for end
int iTime
Currently active time interval
int nTimes
Number of time intervals
int* TStart
Beginning time intervals
int* TStop
Ending time intervals
int nFire
Number of cells from list that will get stim in window
int* WillFire
List of cells that will fire within window
int SpikeTicks
Ticks per SpikeProb window
int FireTicks
Ticks in firing window
int nFireWin
Number of firing windows in spike window
int PulseTicks
Number of ticks pulse will fire in window
int iRow
row of Data being used for current window
int iFwTick
Current tick within firing window
int iSpTick
Current tick within spike window
int iPTicks
Current tick within pulse width
int iFireWin
Firing window counter
int Width
the width of the pulse in ticks
bool Active
true if TimeStep is within one of the specified time intervals
int Time_Elapsed
Used to determin width and values to know how far we are into the stimulus
double PulseAmp
currently used AMP value, starts at AMP_Start
double AMP_Increment
for variable amplitudes, only, otehrwise zero
double Theta
For sine function, the elapsed angle (mod 360)
double Phase
Starting angle
double dTheta
Increment added each tick
void StimulusStateSave( FILE * );

Public Methods

void (Stimulus::*Func)(int)
Function pointer to the function which the stimulus will execute
Stimulus(T_STIMULUS *, T_STINJECT *, Random *)
Constructor used to build stimulus from input file
~Stimulus()
Destructor
int GetInputCells(T_STINJECT *)
Determine which cells on this node will receive the stimulus and set up data areas to point to them
int GetCells(T_STINJECT *)
Get cells on this node the will receive the stimulus
void ResetStim()
Resets Stimulus to the beginning so that it may be reused
bool DoStimulus(int)
If within active time period, call appropriate routine to perform stimulus
void FileStim(int)
Perform file based stimuls
void InputStim(int)
Perform input stimulus
void OngoingStimulus(int)
Perform ongoing stimulus
void NoiseStimulus(int)
Perform noise stimulus
void PulseStimulus(int)
Perform pulse stimulus
void LinearStimulus(int)
Perform linear stimulus
void SineStimulus(int)
Perform sine stimulus
void CalculateAMPIncrement()
Calculate the change in amp for a given timestep
void EmptyFunc(int)
default function to call when perfroming stimulus
void Error1(T_STINJECT *)
Error occured where no cells were found for the stimulus inject
void Error2(T_STINJECT *, int)
Error occured where number of cells doesn't match freq rows * cells per freq
void PrintCellList()
Helper function to display cells list; not implemented (code is commented out)

Documentation

Emulates the background noise in the brain by firing messages to the cells on its list. The background noises are essentially messages that are coming into the brain from other parts of a brain - that are not modeled here (i.e. visual, olfactory). The stimulus sets are created by fourier transforms, sine waves, and chaos patterns. This object is owned by the Brain.
int id
Index into the Arrays structure to the Stimulus object that this object was created from

Stimulus* next
Pointer to the next Stimulus Object. Linked List storage is used so that Stimulus may be added or deleted during a simulation

Stimulus* prev
Pointer to the previous Stimulus Object

void* II
Info used by input stims

void (Stimulus::*Func)(int)
Function pointer to the function which the stimulus will execute

Random* RN
Random number generator for this stimulus object

int nFreqs
Number of frequencies (items) in input data

int CellsPerFreq
Number of cells to receive each frequency

int CellsOnNode
Number of receiving cells that are on this node

int nDataRows
Number of rows in data - 1 for INPUT

float* Data
Pointer to the data as it is read in

char** ThingPtrs
Pointers to the objects that will receive stim

int* DataIdx
Index of data corresponding to each object

int MODE
CURRENT or VOLTAGE

int PATTERN
LINEAR, SINE, ONGOING, PULSE, NOISE

int TIMING
EXACT, URAND, POISSON

double AMP_Start
Intial AMP value when starting

double AMP_End
Target AMP value for end

int iTime
Currently active time interval

int nTimes
Number of time intervals

int* TStart
Beginning time intervals

int* TStop
Ending time intervals

int nFire
Number of cells from list that will get stim in window

int* WillFire
List of cells that will fire within window

int SpikeTicks
Ticks per SpikeProb window

int FireTicks
Ticks in firing window

int nFireWin
Number of firing windows in spike window

int PulseTicks
Number of ticks pulse will fire in window

int iRow
row of Data being used for current window

int iFwTick
Current tick within firing window

int iSpTick
Current tick within spike window

int iPTicks
Current tick within pulse width

int iFireWin
Firing window counter

int Width
the width of the pulse in ticks

bool Active
true if TimeStep is within one of the specified time intervals

int Time_Elapsed
Used to determin width and values to know how far we are into the stimulus

double PulseAmp
currently used AMP value, starts at AMP_Start

double AMP_Increment
for variable amplitudes, only, otehrwise zero

double Theta
For sine function, the elapsed angle (mod 360)

double Phase
Starting angle

double dTheta
Increment added each tick

Stimulus(T_STIMULUS *, T_STINJECT *, Random *)
Constructor used to build stimulus from input file

~Stimulus()
Destructor

int GetInputCells(T_STINJECT *)
Determine which cells on this node will receive the stimulus and set up data areas to point to them

int GetCells(T_STINJECT *)
Get cells on this node the will receive the stimulus

void ResetStim()
Resets Stimulus to the beginning so that it may be reused

bool DoStimulus(int)
If within active time period, call appropriate routine to perform stimulus

void FileStim(int)
Perform file based stimuls

void InputStim(int)
Perform input stimulus

void OngoingStimulus(int)
Perform ongoing stimulus

void NoiseStimulus(int)
Perform noise stimulus

void PulseStimulus(int)
Perform pulse stimulus

void LinearStimulus(int)
Perform linear stimulus

void SineStimulus(int)
Perform sine stimulus

void CalculateAMPIncrement()
Calculate the change in amp for a given timestep

void EmptyFunc(int)
default function to call when perfroming stimulus. If called, it is considered an error.

void Error1(T_STINJECT *)
Error occured where no cells were found for the stimulus inject

void Error2(T_STINJECT *, int)
Error occured where number of cells doesn't match freq rows * cells per freq

void PrintCellList()
Helper function to display cells list; not implemented (code is commented out)

void StimulusStateSave( FILE * );


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de