00001
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _GAN_MATF_DIAGONAL_H
00030 #define _GAN_MATF_DIAGONAL_H
00031
00032 #include <gandalf/linalg/matf_square.h>
00033
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00054
00055 Gan_SquMatrix_f *gan_diagmatf_set_size ( Gan_SquMatrix_f *A,
00056 unsigned long size );
00057 Gan_SquMatrix_f *gan_diagmatf_fill_va ( Gan_SquMatrix_f *A,
00058 unsigned long size, ... );
00059 Gan_SquMatrix_f *gan_diagmatf_fill_const_q ( Gan_SquMatrix_f *A,
00060 unsigned long size, float value );
00061 Gan_Bool gan_diagmatf_read_va ( const Gan_SquMatrix_f *A, unsigned long size,
00062 ... );
00063 Gan_SquMatrix_f *gan_diagmatf_diag_thres ( Gan_SquMatrix_f *A,
00064 unsigned null_space,
00065 float thres, int *indexptr,
00066 float **elptr );
00067 Gan_SquMatrix_f *gan_diagmatf_inv_diag_thres ( Gan_SquMatrix_f *A,
00068 unsigned null_space,
00069 float thres );
00070 struct Gan_Matrix_f *gan_diagmatIf_lmult_inf_q ( const Gan_SquMatrix_f *A,
00071 struct Gan_Matrix_f *B,
00072 struct Gan_Matrix_f *C );
00073
00087 Gan_SquMatrix_f *gan_diagmatf_alloc ( unsigned long size );
00088
00100 Gan_SquMatrix_f *gan_diagmatf_form ( Gan_SquMatrix_f *A, unsigned long size );
00101
00114 Gan_SquMatrix_f *gan_diagmatf_form_data ( Gan_SquMatrix_f *A,
00115 unsigned long size,
00116 float *data, size_t data_size );
00117
00137 Gan_SquMatrix_f *
00138 gan_diagmatf_fill_const_s ( unsigned long size, float value );
00139
00150 Gan_SquMatrix_f *
00151 gan_diagmatf_fill_zero_q ( Gan_SquMatrix_f *A, unsigned long size );
00152
00162 Gan_SquMatrix_f *
00163 gan_diagmatf_fill_zero_s ( unsigned long size );
00164
00183 Gan_Matrix_f *gan_diagmatIf_lmult_inf_s ( const Gan_SquMatrix_f *A,
00184 Gan_Matrix_f *B );
00185
00195 Gan_Matrix_f *gan_diagmatIf_lmult_inf_i ( const Gan_SquMatrix_f *A,
00196 Gan_Matrix_f *B );
00197
00202
00203 Gan_SquMatrix_f *gan_diagmatf_form_gen ( Gan_SquMatrix_f *A,
00204 unsigned long size,
00205 float *data, size_t data_size );
00206 Gan_SquMatrix_f *gan_diagmatf_fill_vap ( Gan_SquMatrix_f *A,
00207 unsigned long size, va_list *aptr );
00208
00221 #ifdef __cplusplus
00222 }
00223 #endif
00224
00225 #endif