Auryn simulator  v0.8.1-206-gb56e451
Plastic Spiking Neural Network Simulator
Public Member Functions | Protected Attributes | List of all members
auryn::Trace Class Referenceabstract

Abstract base class of synaptic traces. More...

#include <Trace.h>

Inheritance diagram for auryn::Trace:
Inheritance graph
[legend]
Collaboration diagram for auryn::Trace:
Collaboration graph
[legend]

Public Member Functions

 Trace (NeuronID n, AurynFloat timeconstant)
 Default constructor. More...
 
virtual ~Trace ()
 Default destructor. More...
 
virtual void inc (NeuronID i)
 Increment given trace by 1. More...
 
virtual void inc (SpikeContainer *sc)
 Increment given traces by 1. More...
 
virtual void evolve ()=0
 Perform Euler step. More...
 
virtual void set_timeconstant (AurynFloat timeconstant)
 Set the time constant of the trace. More...
 
AurynFloat get_tau ()
 Get decay time constant. More...
 
virtual AurynFloat normalized_get (NeuronID i)
 Get trace value of trace dived by tau. More...
 
virtual AurynStateVectorget_state_ptr ()
 Get pointer to state AurynStateVector for fast processing. More...
 
virtual void set_target (AurynStateVector *target)=0
 Set the target vector for follow operation. More...
 
virtual void follow ()=0
 Follow target state vector. More...
 
virtual void follow (AurynVectorFloat *v, const float rate)
 Follow other vector. More...
 
- Public Member Functions inherited from auryn::AurynVectorFloat
 AurynVectorFloat (NeuronID n)
 Default constructor. More...
 
 ~AurynVectorFloat ()
 Default destructor. More...
 
virtual void resize (NeuronID new_size)
 resize data array to new_size More...
 
void scale (const float a)
 
void saxpy (const float a, AurynVectorFloat *x)
 
void clip (const float min, const float max)
 
void add (const float c)
 
void add (AurynVectorFloat *v)
 
void sum (AurynVectorFloat *a, AurynVectorFloat *b)
 
void sum (AurynVectorFloat *a, const float b)
 
void mul (const float a)
 
void mul (AurynVectorFloat *v)
 
void diff (AurynVectorFloat *a, AurynVectorFloat *b)
 
void diff (AurynVectorFloat *a, const float b)
 
void diff (const float a, AurynVectorFloat *b)
 
void follow (AurynVectorFloat *v, const float rate)
 
- Public Member Functions inherited from auryn::AurynVector< float, NeuronID >
 AurynVector (NeuronID n)
 Default constructor. More...
 
 AurynVector (AurynVector *vec)
 Copy constructor. More...
 
virtual ~AurynVector ()
 Default destructor. More...
 
void copy (AurynVector *v)
 Copies vector v. More...
 
float get (NeuronID i)
 Gets element i from vector. More...
 
float * ptr (NeuronID i=0)
 Gets pointer to element i from vector. More...
 
void set (NeuronID i, float value)
 Sets element i in vector to value. More...
 
void set_all (const float v)
 Set all elements to value v. More...
 
void set_zero ()
 Set all elements to zero. More...
 
void scale (const float a)
 Scales all vector elements by a. More...
 
void add (const float c)
 Adds constant c to each vector element. More...
 
void add (AurynVector *v)
 Adds a vector v to the vector. More...
 
void add_specific (const NeuronID i, const float c)
 Adds the value c to specific vector element i. More...
 
void mul_specific (const NeuronID i, const float c)
 Multiply to specific vector element with data index i with the constant c. More...
 
void sub (const float c)
 Subtract constant c to each vector element. More...
 
void sub (AurynVector *v)
 Elementwise subtraction. More...
 
void mul (const float a)
 Multiply all vector elements by constant. More...
 
void mul (AurynVector *v)
 Element-wise vector multiply. More...
 
void div (const float a)
 Element-wise division. More...
 
void div (AurynVector *v)
 Element-wise vector division. More...
 
void div (AurynVector *a, AurynVector *b)
 Element-wise vector division which stores the result in this. More...
 
void saxpy (const float a, AurynVector *x)
 SAXPY operation as in GSL. More...
 
void follow (AurynVector< float, NeuronID > *v, const float rate)
 Follows target vector v with rate. More...
 
void follow_scalar (const float a, const float rate)
 Like follow but with a scalar target value a. More...
 
void elementwise_max (AurynVector *v1, AurynVector *v2)
 Elementwise max operation. More...
 
void elementwise_max (AurynVector *v1)
 Elementwise max operation with another vector. More...
 
void pow (const unsigned int n)
 Takes each element to the n-th power. More...
 
void fast_exp ()
 Computes an approximation of exp(x) for each vector element. More...
 
void exp ()
 Computes exp(x) for each vector element. More...
 
void sigmoid (AurynVector *x, const float beta, const float thr)
 Computes sigmoid(beta*(x-thr)) for each vector element and stores result in this instance. More...
 
void sqrt ()
 Takes the square root of each element. More...
 
void neg ()
 Flips the sign of all elements. More...
 
void inv ()
 Computes 1./x of each element. More...
 
void sum (AurynVector *a, AurynVector *b)
 Computes the sum a+b and stores the result in this instance. More...
 
void sum (AurynVector *a, const float b)
 Computes the sum a+b and stores the result in this instance. More...
 
void diff (AurynVector *a, AurynVector *b)
 Computes the difference a-b and stores the result in this instance. More...
 
void diff (AurynVector *a, const float b)
 Computes the difference a-b and stores the result in this instance. More...
 
void diff (const float a, AurynVector *b)
 Computes the difference a-b and stores the result in this instance. More...
 
void sqr ()
 Squares each element. More...
 
void abs ()
 Takes absolute value of each element. More...
 
void rect ()
 Rectifies all elements. More...
 
void neg_rect ()
 Negatively rectifies all elements. More...
 
void clip (float min, float max)
 Clips all vector elements to the range min max. More...
 
double var ()
 Computes the variance of the vector elements on this rank. More...
 
double std ()
 Computes the standard deviation of all elements on this rank. More...
 
double mean ()
 Computes the mean of the vector elements on this rank. More...
 
double element_sum ()
 Computes the sum of the vector elements. More...
 
double l1norm ()
 Computes the l1 norm of the vector. More...
 
double l2norm ()
 Computes the l2 norm of the vector. More...
 
double max ()
 Returns the max of the vector elements. More...
 
double min ()
 Returns the min of the vector elements. More...
 
NeuronID nonzero ()
 Computes number of nonzero elements on this rank. More...
 
void zero_effective_zeros (const float epsilon=1e-3)
 Sets all values whose absolute value is smaller than epsilon to zero. More...
 
void add_random_normal (AurynState mean=0.0, AurynState sigma=1.0, unsigned int seed=8721)
 
void set_random_normal (AurynState mean=0.0, AurynState sigma=1.0, unsigned int seed=8721)
 
void set_random (unsigned int seed=0)
 Initializes vector elements with Gaussian of unit varince and a seed derived from system time if no seed or seed of 0 is given. More...
 
bool any ()
 Returns true if any element is nonzero. More...
 
bool any (float eps)
 Returns true if any element is nonzero. More...
 
void print ()
 Print vector elements to stdout for debugging. More...
 
void write_to_file (std::string filename)
 Print vector elements to a text file for debugging. More...
 

Protected Attributes

AurynFloat tau
 

Additional Inherited Members

- Public Attributes inherited from auryn::AurynVector< float, NeuronID >
NeuronID size
 Size of the vector. More...
 
float * data
 Pointer to the array housing the data. More...
 
- Protected Member Functions inherited from auryn::AurynVector< float, NeuronID >
void check_size (NeuronID x)
 Checks if argument is larger than size and throws and exception if so. More...
 
void check_size (AurynVector *v)
 Checks if vector size matches to this instance. More...
 
void allocate (const NeuronID n)
 Implements aligned memory allocation. More...
 
void freebuf ()
 
float fast_exp256 (float x)
 Computes approximation of exp(x) via fast series approximation up to n=256. More...
 

Detailed Description

Abstract base class of synaptic traces.

Constructor & Destructor Documentation

◆ Trace()

Trace::Trace ( NeuronID  n,
AurynFloat  timeconstant 
)

Default constructor.

33 {
34  set_timeconstant(timeconstant);
35 }
virtual void set_timeconstant(AurynFloat timeconstant)
Set the time constant of the trace.
Definition: Trace.cpp:41
int n
Definition: mkpat.py:5
AurynVectorFloat AurynStateVector
Defines AurynStateVector type as synonymous to AurynVectorFloat.
Definition: auryn_definitions.h:329
Here is the call graph for this function:

◆ ~Trace()

Trace::~Trace ( )
virtual

Default destructor.

38 {
39 }

Member Function Documentation

◆ evolve()

virtual void auryn::Trace::evolve ( )
pure virtual

Perform Euler step.

Implemented in auryn::EulerTrace, and auryn::LinearTrace.

◆ follow() [1/2]

virtual void auryn::Trace::follow ( )
pure virtual

Follow target state vector.

Implemented in auryn::EulerTrace.

◆ follow() [2/2]

virtual void auryn::Trace::follow ( AurynVectorFloat v,
const float  rate 
)
inlinevirtual

Follow other vector.

89 { super::follow(v, rate); }
void follow(AurynVectorFloat *v, const float rate)
Definition: AurynVector.cpp:294
Here is the call graph for this function:

◆ get_state_ptr()

AurynStateVector * Trace::get_state_ptr ( )
virtual

Get pointer to state AurynStateVector for fast processing.

52 {
53  return this;
54 }

◆ get_tau()

AurynFloat Trace::get_tau ( )

Get decay time constant.

47 {
48  return tau;
49 }
AurynFloat tau
Definition: Trace.h:43

◆ inc() [1/2]

void Trace::inc ( NeuronID  i)
virtual

Increment given trace by 1.

Parameters
iindex of trace to increment.

Reimplemented in auryn::LinearTrace.

57 {
58  data[i]++;
59 }
float * data
Pointer to the array housing the data.
Definition: AurynVector.h:154

◆ inc() [2/2]

void Trace::inc ( SpikeContainer sc)
virtual

Increment given traces by 1.

Parameters
scSpikeContainer with all neurons to increment.
62 {
63  for ( NeuronID i = 0 ; i < sc->size() ; ++i )
64  inc((*sc)[i]);
65 }
virtual void inc(NeuronID i)
Increment given trace by 1.
Definition: Trace.cpp:56
unsigned int NeuronID
NeuronID is an unsigned integeger type used to index neurons in Auryn.
Definition: auryn_definitions.h:151
Here is the call graph for this function:

◆ normalized_get()

AurynFloat Trace::normalized_get ( NeuronID  i)
virtual

Get trace value of trace dived by tau.

Parameters
iindex of trace to get
68 {
69  return get( i ) / tau ;
70 }
AurynFloat tau
Definition: Trace.h:43

◆ set_target()

virtual void auryn::Trace::set_target ( AurynStateVector target)
pure virtual

Set the target vector for follow operation.

Implemented in auryn::EulerTrace.

◆ set_timeconstant()

void Trace::set_timeconstant ( AurynFloat  timeconstant)
virtual

Set the time constant of the trace.

Reimplemented in auryn::EulerTrace.

42 {
43  tau = timeconstant;
44 }
AurynFloat tau
Definition: Trace.h:43

Member Data Documentation

◆ tau

AurynFloat auryn::Trace::tau
protected

Decay time constant in [s].


The documentation for this class was generated from the following files: