00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _BASIC_SYNAPSES_
00024 #define _BASIC_SYNAPSES_
00025
00026 #include "synapses.h"
00027
00044 typedef struct {
00045 aspi_synapses_t parent;
00046
00047 double * weights;
00048 int * delays;
00049 aspi_trace_t * traces;
00050 int * neurons;
00051 } aspi_basic_synapses_t;
00052
00053
00057 typedef struct {
00058 aspi_synapses_class_t parent;
00059 } aspi_basic_synapses_class_t;
00060
00061
00062 aspi_class_t * aspi_basic_synapses (void);
00063 aspi_object_t * aspi_basic_synapses_init (aspi_object_t * self, int n_neurons, double synaptic_leak);
00064 void aspi_basic_synapses_dtor (aspi_object_t * self);
00065
00066
00067 double aspi_basic_synapses_get_weight (aspi_object_t * self, int pre, int post);
00068 void aspi_basic_synapses_set_weight (aspi_object_t * self, int pre, int post, double value);
00069
00070 int aspi_basic_synapses_get_delay (aspi_object_t * self, int pre, int post);
00071 void aspi_basic_synapses_set_delay (aspi_object_t * self, int pre, int post, int value);
00072
00073 double aspi_basic_synapses_get_trace (aspi_object_t * self, int pre, int post, int time);
00074 void aspi_basic_synapses_add_to_trace (aspi_object_t * self, int pre, int post, double value, int time);
00075
00076 void aspi_basic_synapses_apply_callback (aspi_object_t * self, aspi_object_t * network, aspi_callback_t callback, void * data);
00077 void aspi_basic_synapses_apply_callback_post (aspi_object_t * self, aspi_object_t * network, int neuron, aspi_callback_t callback, void * data);
00078 void aspi_basic_synapses_apply_callback_pre (aspi_object_t * self, aspi_object_t * network, int neuron, aspi_callback_t callback, void * data);
00079
00080
00081
00082
00083
00084 #define ASPI_BASIC_SYNAPSES(x) (aspi_object_check (x, aspi_basic_synapses ()), ((aspi_basic_synapses_t *) x))
00085 #define ASPI_BASIC_SYNAPSES_CLASS(x) (aspi_class_check (x, aspi_basic_synapses ()), ((aspi_basic_synapses_class_t *) x))
00086
00087
00092 #endif