00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _NETWORK_ML_H_
00025 #define _NETWORK_ML_H_
00026
00027 #include "network.h"
00028
00042 typedef struct {
00043 aspi_network_t parent;
00044 int * layer_sizes;
00045 int layers;
00046 } aspi_network_ml_t;
00047
00048
00052 typedef struct {
00053 aspi_network_class_t parent;
00054 } aspi_network_ml_class_t;
00055
00056 aspi_class_t * aspi_network_ml (void);
00057
00058 aspi_object_t * aspi_network_ml_init (aspi_object_t * self, aspi_class_t * neuron_model, int layers, int * neurons, double * mu_weights, double * sigma_weights, double * mu_delays, double * sigma_delays);
00059 aspi_object_t * aspi_network_ml_init_sparse (aspi_object_t * self, aspi_class_t * model, int layers, int * neurons, double * connectivity, double * mu_weights, double * sigma_weights, double * mu_delays, double * sigma_delays);
00060 aspi_object_t * aspi_network_ml_init_poisson (aspi_object_t * self, aspi_class_t * model, int layers, int * neurons, double * connectivity, double * mu_weights, double * sigma_weights, double * lambda_delays);
00061
00062 int aspi_network_ml_get_layers (aspi_object_t * self);
00063 int aspi_network_ml_get_layer_size (aspi_object_t * self, int layer);
00064 int aspi_network_ml_get_neuron_index (aspi_object_t * self, int layer, int neuron);
00065 aspi_object_t * aspi_network_ml_get_neuron (aspi_object_t * self, int layer, int neuron);
00066
00067 void aspi_network_ml_dtor (aspi_object_t * self);
00068 aspi_object_t * aspi_network_ml_dup (aspi_object_t * self);
00069
00070
00071
00072
00073 #define ASPI_NETWORK_ML(x) (aspi_object_check (x, aspi_network_ml ()), ((aspi_network_ml_t *) x))
00074 #define ASPI_NETWORK_ML_CLASS(x) (aspi_class_check (x, aspi_network_ml ()), ((aspi_network_ml_class_t * ) x))
00075
00078 #endif