00001 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 #ifndef _GAN_MAT_TRIANGULAR_H
00030 #define _GAN_MAT_TRIANGULAR_H
00031 
00032 #include <gandalf/linalg/mat_square.h>
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00053 
00054  Gan_SquMatrix *gan_ltmat_set_size ( Gan_SquMatrix *L, unsigned long size );
00055  Gan_SquMatrix *gan_utmat_set_size ( Gan_SquMatrix *U, unsigned long size );
00056  Gan_SquMatrix *gan_ltmat_fill_va ( Gan_SquMatrix *L, unsigned long size, ... );
00057  Gan_SquMatrix *gan_utmat_fill_va ( Gan_SquMatrix *U, unsigned long size, ... );
00058  Gan_SquMatrix *gan_ltmat_fill_const_q ( Gan_SquMatrix *L,
00059                                         unsigned long size, double value );
00060  Gan_SquMatrix *gan_utmat_fill_const_q ( Gan_SquMatrix *U,
00061                                         unsigned long size, double value );
00062  Gan_Bool gan_ltmat_read_va ( const Gan_SquMatrix *L, unsigned long size, ... );
00063  Gan_Bool gan_utmat_read_va ( const Gan_SquMatrix *U, unsigned long size, ... );
00064 
00078  Gan_SquMatrix *gan_ltmat_alloc ( unsigned long size );
00079 
00092  Gan_SquMatrix *gan_ltmat_form ( Gan_SquMatrix *A, unsigned long size );
00093 
00106  Gan_SquMatrix *gan_ltmat_form_data ( Gan_SquMatrix *A, unsigned long size,
00107                                      double *data, size_t data_size );
00108 
00117  Gan_SquMatrix *gan_utmat_alloc ( unsigned long size );
00118 
00130  Gan_SquMatrix *gan_utmat_form ( Gan_SquMatrix *A, unsigned long size );
00131 
00144  Gan_SquMatrix *gan_utmat_form_data ( Gan_SquMatrix *A, unsigned long size,
00145                                      void *data, size_t data_size );
00146 
00167  Gan_SquMatrix *gan_ltmat_fill_const_s ( unsigned long size, double value );
00168 
00178  Gan_SquMatrix *gan_ltmat_fill_zero_q ( Gan_SquMatrix *A, unsigned long size );
00179 
00190  Gan_SquMatrix *gan_ltmat_fill_zero_s ( unsigned long size );
00191 
00203  Gan_SquMatrix *gan_utmat_fill_const_s ( unsigned long size, double value );
00204 
00215  Gan_SquMatrix *gan_utmat_fill_zero_q ( Gan_SquMatrix *A, unsigned long size );
00216 
00227  Gan_SquMatrix *gan_utmat_fill_zero_s ( unsigned long size );
00228 
00233 
00234  Gan_SquMatrix *gan_ltmat_form_gen ( Gan_SquMatrix *A, unsigned long size,
00235                                     double *data, size_t data_size );
00236  Gan_SquMatrix *gan_utmat_form_gen ( Gan_SquMatrix *A, unsigned long size,
00237                                     double *data, size_t data_size );
00238  Gan_SquMatrix *gan_ltmat_fill_vap ( Gan_SquMatrix *L,
00239                                     unsigned long size, va_list *aptr );
00240  Gan_SquMatrix *gan_utmat_fill_vap ( Gan_SquMatrix *U,
00241                                     unsigned long size, va_list *aptr );
00242 
00255 #ifdef __cplusplus
00256 }
00257 #endif
00258 
00259 #endif