Main Page | Modules | Class List | File List | Class Members | File Members

symmat_eigen.h

Go to the documentation of this file.
00001 
00014 /* This library is free software; you can redistribute it and/or
00015    modify it under the terms of the GNU Lesser General Public
00016    License as published by the Free Software Foundation; either
00017    version 2.1 of the License, or (at your option) any later version.
00018 
00019    This library is distributed in the hope that it will be useful,
00020    but WITHOUT ANY WARRANTY; without even the implied warranty of
00021    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00022    Lesser General Public License for more details.
00023 
00024    You should have received a copy of the GNU Lesser General Public
00025    License along with this library; if not, write to the Free Software
00026    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00027 */
00028 
00029 #ifndef _GAN_SYMMAT_EIGEN_H
00030 #define _GAN_SYMMAT_EIGEN_H
00031 
00032 #include <gandalf/linalg/vec_gen.h>
00033 #include <gandalf/linalg/mat_gen.h>
00034 #include <gandalf/linalg/mat_square.h>
00035 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039 
00066 typedef struct
00067 {
00068    Gan_SquMatrix SxxT; 
00069    Gan_SquMatrix W;    
00070    Gan_Matrix    Z;    
00071    Gan_Vector    work; 
00073    Gan_Bool alloc; 
00074 } Gan_SymMatEigenStruct;
00075 
00076  Gan_SymMatEigenStruct *gan_symeigen_form_data ( Gan_SymMatEigenStruct *sme,
00077                                                 long max_size,
00078                                                 double *work_data,
00079                                                 unsigned long work_data_size );
00080 
00094  Gan_SymMatEigenStruct *gan_symeigen_form ( Gan_SymMatEigenStruct *sme,
00095                                            long max_size );
00096 
00109  Gan_SymMatEigenStruct *gan_symeigen_alloc ( long max_size );
00110 
00111  void     gan_symeigen_free      ( Gan_SymMatEigenStruct *sme );
00112  Gan_Bool gan_symeigen_reset     ( Gan_SymMatEigenStruct *sme, long size );
00113  Gan_Bool gan_symeigen_increment ( Gan_SymMatEigenStruct *sme,
00114                                   double scale, ... );
00115  Gan_Bool gan_symeigen_solve     ( Gan_SymMatEigenStruct *sme );
00116 
00133 #ifdef __cplusplus
00134 }
00135 #endif
00136 
00137 #endif /* #ifndef _GAN_SYMMAT_EIGEN_H */

Generated on Fri Mar 17 12:44:48 2006 by  doxygen 1.3.9.1