ANN  0.1.1.5
A library containing multiple neural network models written in C
layer.h
Go to the documentation of this file.
1 
11 #ifndef _ANN_MODELS_PCFNN_LAYER_H_
12 #define _ANN_MODELS_PCFNN_LAYER_H_
13 
14 #include "../../config.h"
15 #include <stdlib.h>
16 #include "ANN/tools.h"
17 #include "neuron.h"
18 
19 
28 };
29 
30 struct PCFNN_LAYER;
31 
38  struct PCFNN_LAYER *from, *to;
39  size_t size_from, size_to;
40  double(*f_init_to)();
41  double(*f_act_to)(double);
42  double(*f_act_de_to)(double);
43  int isInit;
45 };
46 
53 typedef struct PCFNN_LAYER {
54  size_t index;
55  size_t size;
57  size_t nblinks;
59  double(*f_init)();
60  double(*f_act)(double);
61  double(*f_act_de)(double);
63 } PCFNN_LAYER;
64 
65 
74 struct PCFNN_LAYER *PCFNN_LAYER_new(double(*f_init)(), double(*f_act)(double), double(*f_act_de)(double));
75 
76 
82 void PCFNN_LAYER_free(struct PCFNN_LAYER *l);
83 
84 
90 void PCFNN_LAYER_clear(struct PCFNN_LAYER *l);
91 
92 
104 int PCFNN_LAYER_addn(struct PCFNN_LAYER *l, size_t size, size_t inputs, double(*f_init)(), double(*f_act)(double), double(*f_act_de)(double));
105 
106 
115 struct PCFNN_LAYER *PCFNN_LAYER_new_input(size_t size, double(*f_act)(double), double(*f_act_de)(double));
116 
117 
135 int PCFNN_LAYER_connect(struct PCFNN_LAYER *from, struct PCFNN_LAYER *to,
136  size_t size_from, size_t size_to,
137  size_t offset_from, size_t offset_to,
138  double(*f_init_to)(), double(*f_act_to)(double), double(*f_act_de_to)(double));
139 
140 
147 int PCFNN_LAYER_build(struct PCFNN_LAYER *l);
148 
149 
156 size_t PCFNN_LAYER_get_ram_usage(struct PCFNN_LAYER *l);
157 
158 
167 void PCFNN_LAYER_set_lock_state(struct PCFNN_LAYER *l, enum PCFNN_NEURON_LOCK_STATE state, size_t size, size_t offset);
168 
169 
176 void PCFNN_LAYER_summary(struct PCFNN_LAYER *l, size_t param[2]);
177 
178 #endif /* _ANN_MODELS_PCFNN_LAYER_H_ */
Neuron unit.
Definition: neuron.h:35
Layer unit.
Definition: layer.h:53
int PCFNN_LAYER_connect(struct PCFNN_LAYER *from, struct PCFNN_LAYER *to, size_t size_from, size_t size_to, size_t offset_from, size_t offset_to, double(*f_init_to)(), double(*f_act_to)(double), double(*f_act_de_to)(double))
Connect two PCFNN_LAYER. It will create a link between from and to.
Definition: layer.c:89
void PCFNN_LAYER_free(struct PCFNN_LAYER *l)
Free all memory allocation of an PCFNN_LAYER (It will call PCFNN_NEURON_free)
Definition: layer.c:34
void PCFNN_LAYER_clear(struct PCFNN_LAYER *l)
Clear all neurons in the layer l (It will call PCFNN_NEURON_clear)
Definition: layer.c:26
size_t size_to
Definition: layer.h:39
int PCFNN_LAYER_build(struct PCFNN_LAYER *l)
Initialize all internal data of the layer l and build of PCFNN_NEURON it contains.
Definition: layer.c:130
double(* f_act_de)(double)
Definition: layer.h:61
Structure to represent a link between to PCFNN_LAYER.
Definition: layer.h:36
int PCFNN_LAYER_addn(struct PCFNN_LAYER *l, size_t size, size_t inputs, double(*f_init)(), double(*f_act)(double), double(*f_act_de)(double))
Add neurons in the PCFNN_LAYER l.
Definition: layer.c:59
struct PCFNN_LAYER_LINK ** links
Definition: layer.h:58
int index_to
Definition: layer.h:37
size_t size
Definition: layer.h:55
struct PCFNN_LAYER * to
Definition: layer.h:38
size_t PCFNN_LAYER_get_ram_usage(struct PCFNN_LAYER *l)
Give the number of bytes used by the PCFNN_LAYER l and all PCFNN_NEURON it contains.
Definition: layer.c:179
double(* f_act_to)(double)
Definition: layer.h:41
PCFNN_NEURON.
struct PCFNN_LAYER * PCFNN_LAYER_new_input(size_t size, double(*f_act)(double), double(*f_act_de)(double))
Initialize a PCFNN_LAYER as an input layer.
Definition: layer.c:78
size_t size_from
Definition: layer.h:39
struct PCFNN_LAYER PCFNN_LAYER
double(* f_init_to)()
Definition: layer.h:40
void PCFNN_LAYER_summary(struct PCFNN_LAYER *l, size_t param[2])
Write on param the number of unlocked parameters and locked parameters.
Definition: layer.c:199
size_t index
Definition: layer.h:54
struct PCFNN_NEURON ** neurons
Definition: layer.h:56
int index_from
Definition: layer.h:37
PCFNN_LAYER_TYPE
Type list of a layer.
Definition: layer.h:24
double(* f_act)(double)
Definition: layer.h:60
size_t offset_from
Definition: layer.h:44
enum PCFNN_LAYER_TYPE type
Definition: layer.h:62
Some useful functions.
void PCFNN_LAYER_set_lock_state(struct PCFNN_LAYER *l, enum PCFNN_NEURON_LOCK_STATE state, size_t size, size_t offset)
Set lock state of size neurons of l starting by offset neuron of l.
Definition: layer.c:191
double(* f_init)()
Definition: layer.h:59
size_t nblinks
Definition: layer.h:57
struct PCFNN_LAYER * from
Definition: layer.h:38
PCFNN_NEURON_LOCK_STATE
Lock state of a neuron.
Definition: neuron.h:22
double(* f_act_de_to)(double)
Definition: layer.h:42
struct PCFNN_LAYER * PCFNN_LAYER_new(double(*f_init)(), double(*f_act)(double), double(*f_act_de)(double))
Definition: layer.c:8
size_t offset_to
Definition: layer.h:44