Main Page | File List | File Members

dsupralu_type.h

Go to the documentation of this file.
00001 /* 
00002 
00003 $Id: dsupralu_type.h,v 1.4 2004/02/11 12:45:32 pletzer Exp $ 
00004 
00005 */
00006 
00026 #ifndef _DSUPRALU_TYPE
00027 #define _DSUPRALU_TYPE
00028 
00029 #include "dsp_defs.h"
00030 
00031 typedef struct {
00032 
00033   SuperMatrix A, AC;
00034   SuperMatrix *L, *U;
00035   int *perm_r; /* row permutations from partial pivoting */
00036   int *perm_c; /* column permutation vector */
00037   int *etree; /* column elimination tree */
00038   superlu_options_t options;
00039   SuperLUStat_t stat;
00040   int colperm_is_computed;
00041   int LUfactorized;
00042 
00043 } dsupralu_sparse_type;
00044 
00045 /* Fortran name mapping */
00046 
00047 #if defined( __RS6000) || defined(__HP) || defined(__IBM__)
00048 #define dsupralu_new_ dsupralu_new
00049 #define dsupralu_del_ dsupralu_del
00050 #define dsupralu_vector_dot_matrix_ dsupralu_vector_dot_matrix
00051 #define dsupralu_matrix_dot_vector_ dsupralu_matrix_dot_vector
00052 #define dsupralu_vector_dot_matrix_dot_vector_ dsupralu_vector_dot_matrix_dot_vector
00053 #define dsupralu_determinant_ dsupralu_determinant
00054 #define dsupralu_solve_ dsupralu_solve
00055 #else
00056 #if defined(__CRAY)
00057 #define dsupralu_new_ DSUPRALU_NEW
00058 #define dsupralu_del_ DSUPRALU_DEL
00059 #define dsupralu_vector_dot_matrix_ DSUPRALU_VECTOR_DOT_MATRIX
00060 #define dsupralu_matrix_dot_vector_ DSUPRALU_MATRIX_DOT_VECTOR
00061 #define dsupralu_vector_dot_matrix_dot_vector_ DSUPRALU_VECTOR_DOT_MATRIX_DOT_VECTOR
00062 #define dsupralu_determinant_ DSUPRALU_DETERMINANT
00063 #define dsupralu_solve_ DSUPRALU_SOLVE
00064 #endif
00065 #endif
00066 
00086 void dsupralu_new_(dsupralu_sparse_type **self,
00087                    double *vals,
00088                    int *row_ind, int *col_ptr,
00089                    int *nnz, int *n, int *info);
00090 
00100 void dsupralu_del_(dsupralu_sparse_type **self, int *info);
00101 
00111 void dsupralu_vector_dot_matrix_(dsupralu_sparse_type **self, 
00112                                 double *vector, double *res,
00113                                  int *info);
00114 
00124 void dsupralu_matrix_dot_vector_(dsupralu_sparse_type **self,
00125                                 double *vector, double *res,
00126                                  int *info);
00127 
00138 void dsupralu_vector_dot_matrix_dot_vector_(dsupralu_sparse_type **self, 
00139                                 double *vector1, double *vector2,
00140                                             double *res, int *info);
00141 
00153 void dsupralu_colperm_(dsupralu_sparse_type **self, 
00154                        int *permc_spec, int *info);
00155 
00165 void dsupralu_lu_(dsupralu_sparse_type **self, int *info);
00166 
00177 void dsupralu_determinant_(dsupralu_sparse_type **self,
00178                            double *res_mantissa, int *res_exponent,
00179                            int *info);
00180 
00190 void dsupralu_solve_(dsupralu_sparse_type **self, 
00191                      double *b, int *info);
00192 
00193 
00194 
00195 #endif /* _DSUPRALU_TYPE */

Generated on Tue Jul 26 15:21:34 2005 for Supralu by doxygen 1.3.5