00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _GNN_WEIGHT_H_
00026 #define _GNN_WEIGHT_H_
00027
00028
00029
00030
00031
00032 #include <gsl/gsl_matrix.h>
00033 #include "gnn_node.h"
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 gnn_node *
00047 gnn_weight_new (int input_size, int output_size);
00048
00049 int
00050 gnn_weight_init (gnn_node *node);
00051
00052 gsl_matrix *
00053 gnn_weight_get_A (gnn_node *node);
00054
00055 gsl_vector *
00056 gnn_weight_get_B (gnn_node *node);
00057
00058 gsl_matrix *
00059 gnn_weight_get_dA (gnn_node *node);
00060
00061 gsl_vector *
00062 gnn_weight_get_dB (gnn_node *node);
00063
00064 gsl_matrix_int *
00065 gnn_weight_get_Af (gnn_node *node);
00066
00067 gsl_vector_int *
00068 gnn_weight_get_Bf (gnn_node *node);
00069
00070 int
00071 gnn_weight_connect (gnn_node *node, size_t i, size_t j, double strength);
00072
00073 int
00074 gnn_weight_disconnect (gnn_node *node, size_t i, size_t j);
00075
00076 int
00077 gnn_weight_connect_all (gnn_node *node, double strength);
00078
00079 int
00080 gnn_weight_disconnect_all (gnn_node *node);
00081
00082 int
00083 gnn_weight_connect_input (gnn_node *node, size_t i, double strength);
00084
00085 int
00086 gnn_weight_disconnect_input (gnn_node *node, size_t i);
00087
00088 int
00089 gnn_weight_freeze_connection (gnn_node *node, size_t i, size_t j);
00090
00091 int
00092 gnn_weight_unfreeze_connection (gnn_node *node, size_t i, size_t j);
00093
00094 int
00095 gnn_weight_freeze_all_connections (gnn_node *node);
00096
00097 int
00098 gnn_weight_unfreeze_all_connections (gnn_node *node);
00099
00100 int
00101 gnn_weight_connect_bias (gnn_node *node, size_t j, double strength);
00102
00103 int
00104 gnn_weight_disconnect_bias (gnn_node *node, size_t j);
00105
00106 int
00107 gnn_weight_freeze_bias (gnn_node *node, size_t j);
00108
00109 int
00110 gnn_weight_unfreeze_bias (gnn_node *node, size_t j);
00111
00112 int
00113 gnn_weight_freeze_all_biases (gnn_node *node);
00114
00115 int
00116 gnn_weight_unfreeze_all_biases (gnn_node *node);
00117
00118
00119
00120 #endif