00001 /*************************************************************************** 00002 * @file gnn_gaussian.h 00003 * @brief Gaussian Kernel transfer function. 00004 * 00005 * @date : 18-09-03 10:33 00006 * @author : Pedro Ortega C. <peortega@dcc.uchile.cl> 00007 * Copyright 2003 Pedro Ortega C. 00008 ****************************************************************************/ 00009 /* 00010 * This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU Library General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with this program; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00023 */ 00024 00025 #ifndef _GNN_GUASSIAN_H_ 00026 #define _GNN_GUASSIAN_H_ 00027 00028 /******************************************/ 00029 /* Include Files */ 00030 /******************************************/ 00031 00032 #include "gnn_node.h" 00033 00034 00035 00036 /******************************************/ 00037 /* Typedefs */ 00038 /******************************************/ 00039 00040 /** 00041 * @brief The structure for a \ref gnn_gaussian node. 00042 * @ingroup gnn_gaussian_doc 00043 * 00044 * This datatype holds the information for a \ref gnn_gaussian node. 00045 * Basically, it extends the \ref gnn_node with special pointers to get fast 00046 * accesses to the amplitudes and variances. 00047 */ 00048 typedef struct _gnn_gaussian gnn_gaussian; 00049 00050 struct _gnn_gaussian 00051 { 00052 gnn_node node; /**< Subyacent \ref gnn_node. */ 00053 00054 gsl_vector_view a_view; /**< View to the amplitudes. */ 00055 gsl_vector_view da_view; /**< View to teh amplitude gradients. */ 00056 gsl_vector_int_view af_view; /**< View to the amplitude freeze flags. */ 00057 00058 gsl_vector *y; /**< Buffer for outputs. */ 00059 00060 gsl_vector_view v_view; /**< View to the variances. */ 00061 gsl_vector_view dv_view; /**< View to the variance gradients. */ 00062 gsl_vector_int_view vf_view; /**< View to the variance freeze flags. */ 00063 00064 gsl_vector *a; /**< Pointer to the amplitude vector. */ 00065 gsl_vector *da; /**< Pointer to the amplitude gradients. */ 00066 gsl_vector_int *af; /**< Pointer to the amplitude freeze flags. */ 00067 gsl_vector *v; /**< Pointer to the variance vector. */ 00068 gsl_vector *dv; /**< Pointer to the variance gradients. */ 00069 gsl_vector_int *vf; /**< Pointer to the variance freeze flags. */ 00070 }; 00071 00072 00073 00074 /******************************************/ 00075 /* Public Interface */ 00076 /******************************************/ 00077 00078 gnn_node * 00079 gnn_gaussian_new (int input_size, double a, double sigma); 00080 00081 gnn_node * 00082 gnn_gaussian_standard_new (int input_size); 00083 00084 #endif /* _GNN_GUASSIAN_H_ */ 00085 00086 00087
1.2.18