00001 /*************************************************************************** 00002 * @file gnn_hessian.h 00003 * @brief Hessian Matrix Evaluation Routines Header File. 00004 * 00005 * @date : 19-09-03 15:37 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_HESSIAN_H_ 00026 #define _GNN_HESSIAN_H_ 00027 00028 00029 00030 /******************************************/ 00031 /* Include Files */ 00032 /******************************************/ 00033 00034 #include "gnn_node.h" 00035 #include "gnn_dataset.h" 00036 #include "gnn_criterion.h" 00037 00038 00039 00040 /******************************************/ 00041 /* Public Interface */ 00042 /******************************************/ 00043 00044 int 00045 gnn_hessian_vector_mult (gnn_line *line, 00046 const gsl_vector *v, gsl_vector *vH, double eps); 00047 00048 int 00049 gnn_hessian_diagonal (gnn_line *line, gsl_vector *H, double eps); 00050 00051 int 00052 gnn_hessian_levenberg_marquadt_init (gnn_grad *grad, gsl_matrix *H); 00053 00054 int 00055 gnn_hessian_levenberg_marquadt (gnn_grad *grad, gsl_matrix *H, size_t k); 00056 00057 int 00058 gnn_hessian_inverse_init (gnn_grad *grad, gsl_matrix *H, double alpha); 00059 00060 int 00061 gnn_hessian_inverse (gnn_grad *grad, gsl_matrix *H, size_t k); 00062 00063 int 00064 gnn_hessian_finite_differences (gnn_line *line, gsl_matrix *H, double eps); 00065 00066 00067 #endif /* _GNN_HESSIAN_H_ */ 00068
1.2.18