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

mat_diagonal.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_MAT_DIAGONAL_H
00030 #define _GAN_MAT_DIAGONAL_H
00031 
00032 #include <gandalf/linalg/mat_square.h>
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00054 /* function declarations */
00055  Gan_SquMatrix *gan_diagmat_set_size ( Gan_SquMatrix *A, unsigned long size );
00056  Gan_SquMatrix *gan_diagmat_fill_va ( Gan_SquMatrix *A,
00057                                      unsigned long size, ... );
00058  Gan_SquMatrix *gan_diagmat_fill_const_q ( Gan_SquMatrix *A,
00059                                           unsigned long size, double value );
00060  Gan_Bool gan_diagmat_read_va ( const Gan_SquMatrix *A, unsigned long size, ... );
00061  Gan_SquMatrix *gan_diagmat_diag_thres ( Gan_SquMatrix *A, unsigned null_space,
00062                                         double thres, int *indexptr,
00063                                         double **elptr );
00064  Gan_SquMatrix *gan_diagmat_inv_diag_thres ( Gan_SquMatrix *A,
00065                                             unsigned null_space,
00066                                             double thres );
00067  struct Gan_Matrix *gan_diagmatI_lmult_inf_q ( const Gan_SquMatrix *A,
00068                                               struct Gan_Matrix *B,
00069                                               struct Gan_Matrix *C );
00070 
00084  Gan_SquMatrix *gan_diagmat_alloc ( unsigned long size );
00085 
00097  Gan_SquMatrix *gan_diagmat_form ( Gan_SquMatrix *A, unsigned long size );
00098 
00111  Gan_SquMatrix *gan_diagmat_form_data ( Gan_SquMatrix *A, unsigned long size,
00112                                        double *data, size_t data_size );
00113 
00133  Gan_SquMatrix *
00134  gan_diagmat_fill_const_s ( unsigned long size, double value );
00135 
00146  Gan_SquMatrix *
00147  gan_diagmat_fill_zero_q ( Gan_SquMatrix *A, unsigned long size );
00148 
00158  Gan_SquMatrix *
00159  gan_diagmat_fill_zero_s ( unsigned long size );
00160 
00179  Gan_Matrix *gan_diagmatI_lmult_inf_s ( const Gan_SquMatrix *A, Gan_Matrix *B );
00180 
00190  Gan_Matrix *gan_diagmatI_lmult_inf_i ( const Gan_SquMatrix *A, Gan_Matrix *B );
00191 
00196 /* not user functions */
00197  Gan_SquMatrix *gan_diagmat_form_gen ( Gan_SquMatrix *A, unsigned long size,
00198                                       double *data, size_t data_size );
00199  Gan_SquMatrix *gan_diagmat_fill_vap ( Gan_SquMatrix *A,
00200                                       unsigned long size, va_list *aptr );
00201 
00214 #ifdef __cplusplus
00215 }
00216 #endif
00217 
00218 #endif /* #ifndef _GAN_MAT_DIAGONAL_H */

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