kusano 7d535a
kusano 7d535a
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
kusano 7d535a
<title>SuperLU: SRC/slu_sdefs.h Source File</title>
kusano 7d535a
<link href="doxygen.css" rel="stylesheet" type="text/css">
kusano 7d535a
<link href="tabs.css" rel="stylesheet" type="text/css">
kusano 7d535a
kusano 7d535a
kusano 7d535a
kusano 7d535a
  
kusano 7d535a
    
    kusano 7d535a
          
  • Main Page
  • kusano 7d535a
          
  • Data Structures
  • kusano 7d535a
          
  • Files
  • kusano 7d535a
        
    kusano 7d535a
      
    kusano 7d535a

    SRC/slu_sdefs.h

    Go to the documentation of this file.
    00001 
    kusano 7d535a
    00063 #ifndef __SUPERLU_sSP_DEFS /* allow multiple inclusions */
    kusano 7d535a
    00064 #define __SUPERLU_sSP_DEFS
    kusano 7d535a
    00065 
    kusano 7d535a
    00066 /*
    kusano 7d535a
    00067  * File name:           ssp_defs.h
    kusano 7d535a
    00068  * Purpose:             Sparse matrix types and function prototypes
    kusano 7d535a
    00069  * History:
    kusano 7d535a
    00070  */
    kusano 7d535a
    00071 
    kusano 7d535a
    00072 #ifdef _CRAY
    kusano 7d535a
    00073 #include <fortran.h>
    kusano 7d535a
    00074 #include <string.h>
    kusano 7d535a
    00075 #endif
    kusano 7d535a
    00076 
    kusano 7d535a
    00077 /* Define my integer type int_t */
    kusano 7d535a
    00078 typedef int int_t; /* default */
    kusano 7d535a
    00079 
    kusano 7d535a
    00080 #include <math.h>
    kusano 7d535a
    00081 #include <limits.h>
    kusano 7d535a
    00082 #include "slu_Cnames.h"
    kusano 7d535a
    00083 #include "supermatrix.h"
    kusano 7d535a
    00084 #include "slu_util.h"
    kusano 7d535a
    00085 
    kusano 7d535a
    00086 
    kusano 7d535a
    00087 
    kusano 7d535a
    00088 typedef struct {
    kusano 7d535a
    00089     int     *xsup;    /* supernode and column mapping */
    kusano 7d535a
    00090     int     *supno;   
    kusano 7d535a
    00091     int     *lsub;    /* compressed L subscripts */
    kusano 7d535a
    00092     int     *xlsub;
    kusano 7d535a
    00093     float  *lusup;   /* L supernodes */
    kusano 7d535a
    00094     int     *xlusup;
    kusano 7d535a
    00095     float  *ucol;    /* U columns */
    kusano 7d535a
    00096     int     *usub;
    kusano 7d535a
    00097     int     *xusub;
    kusano 7d535a
    00098     int     nzlmax;   /* current max size of lsub */
    kusano 7d535a
    00099     int     nzumax;   /*    "    "    "      ucol */
    kusano 7d535a
    00100     int     nzlumax;  /*    "    "    "     lusup */
    kusano 7d535a
    00101     int     n;        /* number of columns in the matrix */
    kusano 7d535a
    00102     LU_space_t MemModel; /* 0 - system malloc'd; 1 - user provided */
    kusano 7d535a
    00103     int     num_expansions;
    kusano 7d535a
    00104     ExpHeader *expanders; /* Array of pointers to 4 types of memory */
    kusano 7d535a
    00105     LU_stack_t stack;     /* use user supplied memory */
    kusano 7d535a
    00106 } GlobalLU_t;
    kusano 7d535a
    00107 
    kusano 7d535a
    00108 
    kusano 7d535a
    00109 /* -------- Prototypes -------- */
    kusano 7d535a
    00110 
    kusano 7d535a
    00111 #ifdef __cplusplus
    kusano 7d535a
    00112 extern "C" {
    kusano 7d535a
    00113 #endif
    kusano 7d535a
    00114 
    kusano 7d535a
    00116 extern void
    kusano 7d535a
    00117 sgssv(superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *,
    kusano 7d535a
    00118       SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *);
    kusano 7d535a
    00119 extern void
    kusano 7d535a
    00120 sgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
    kusano 7d535a
    00121        char *, float *, float *, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00122        void *, int, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00123        float *, float *, float *, float *,
    kusano 7d535a
    00124        mem_usage_t *, SuperLUStat_t *, int *);
    kusano 7d535a
    00125     /* ILU */
    kusano 7d535a
    00126 extern void
    kusano 7d535a
    00127 sgsisv(superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *,
    kusano 7d535a
    00128       SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *);
    kusano 7d535a
    00129 extern void
    kusano 7d535a
    00130 sgsisx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
    kusano 7d535a
    00131        char *, float *, float *, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00132        void *, int, SuperMatrix *, SuperMatrix *, float *, float *,
    kusano 7d535a
    00133        mem_usage_t *, SuperLUStat_t *, int *);
    kusano 7d535a
    00134 
    kusano 7d535a
    00135 
    kusano 7d535a
    00137 extern void
    kusano 7d535a
    00138 sCreate_CompCol_Matrix(SuperMatrix *, int, int, int, float *,
    kusano 7d535a
    00139                        int *, int *, Stype_t, Dtype_t, Mtype_t);
    kusano 7d535a
    00140 extern void
    kusano 7d535a
    00141 sCreate_CompRow_Matrix(SuperMatrix *, int, int, int, float *,
    kusano 7d535a
    00142                        int *, int *, Stype_t, Dtype_t, Mtype_t);
    kusano 7d535a
    00143 extern void
    kusano 7d535a
    00144 sCopy_CompCol_Matrix(SuperMatrix *, SuperMatrix *);
    kusano 7d535a
    00145 extern void
    kusano 7d535a
    00146 sCreate_Dense_Matrix(SuperMatrix *, int, int, float *, int,
    kusano 7d535a
    00147                      Stype_t, Dtype_t, Mtype_t);
    kusano 7d535a
    00148 extern void
    kusano 7d535a
    00149 sCreate_SuperNode_Matrix(SuperMatrix *, int, int, int, float *, 
    kusano 7d535a
    00150                          int *, int *, int *, int *, int *,
    kusano 7d535a
    00151                          Stype_t, Dtype_t, Mtype_t);
    kusano 7d535a
    00152 extern void
    kusano 7d535a
    00153 sCopy_Dense_Matrix(int, int, float *, int, float *, int);
    kusano 7d535a
    00154 
    kusano 7d535a
    00155 extern void    countnz (const int, int *, int *, int *, GlobalLU_t *);
    kusano 7d535a
    00156 extern void    ilu_countnz (const int, int *, int *, GlobalLU_t *);
    kusano 7d535a
    00157 extern void    fixupL (const int, const int *, GlobalLU_t *);
    kusano 7d535a
    00158 
    kusano 7d535a
    00159 extern void    sallocateA (int, int, float **, int **, int **);
    kusano 7d535a
    00160 extern void    sgstrf (superlu_options_t*, SuperMatrix*,
    kusano 7d535a
    00161                        int, int, int*, void *, int, int *, int *, 
    kusano 7d535a
    00162                        SuperMatrix *, SuperMatrix *, SuperLUStat_t*, int *);
    kusano 7d535a
    00163 extern int     ssnode_dfs (const int, const int, const int *, const int *,
    kusano 7d535a
    00164                              const int *, int *, int *, GlobalLU_t *);
    kusano 7d535a
    00165 extern int     ssnode_bmod (const int, const int, const int, float *,
    kusano 7d535a
    00166                               float *, GlobalLU_t *, SuperLUStat_t*);
    kusano 7d535a
    00167 extern void    spanel_dfs (const int, const int, const int, SuperMatrix *,
    kusano 7d535a
    00168                            int *, int *, float *, int *, int *, int *,
    kusano 7d535a
    00169                            int *, int *, int *, int *, GlobalLU_t *);
    kusano 7d535a
    00170 extern void    spanel_bmod (const int, const int, const int, const int,
    kusano 7d535a
    00171                            float *, float *, int *, int *,
    kusano 7d535a
    00172                            GlobalLU_t *, SuperLUStat_t*);
    kusano 7d535a
    00173 extern int     scolumn_dfs (const int, const int, int *, int *, int *, int *,
    kusano 7d535a
    00174                            int *, int *, int *, int *, int *, GlobalLU_t *);
    kusano 7d535a
    00175 extern int     scolumn_bmod (const int, const int, float *,
    kusano 7d535a
    00176                            float *, int *, int *, int,
    kusano 7d535a
    00177                            GlobalLU_t *, SuperLUStat_t*);
    kusano 7d535a
    00178 extern int     scopy_to_ucol (int, int, int *, int *, int *,
    kusano 7d535a
    00179                               float *, GlobalLU_t *);         
    kusano 7d535a
    00180 extern int     spivotL (const int, const double, int *, int *, 
    kusano 7d535a
    00181                          int *, int *, int *, GlobalLU_t *, SuperLUStat_t*);
    kusano 7d535a
    00182 extern void    spruneL (const int, const int *, const int, const int,
    kusano 7d535a
    00183                           const int *, const int *, int *, GlobalLU_t *);
    kusano 7d535a
    00184 extern void    sreadmt (int *, int *, int *, float **, int **, int **);
    kusano 7d535a
    00185 extern void    sGenXtrue (int, int, float *, int);
    kusano 7d535a
    00186 extern void    sFillRHS (trans_t, int, float *, int, SuperMatrix *,
    kusano 7d535a
    00187                           SuperMatrix *);
    kusano 7d535a
    00188 extern void    sgstrs (trans_t, SuperMatrix *, SuperMatrix *, int *, int *,
    kusano 7d535a
    00189                         SuperMatrix *, SuperLUStat_t*, int *);
    kusano 7d535a
    00190 /* ILU */
    kusano 7d535a
    00191 extern void    sgsitrf (superlu_options_t*, SuperMatrix*, int, int, int*,
    kusano 7d535a
    00192                         void *, int, int *, int *, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00193                         SuperLUStat_t*, int *);
    kusano 7d535a
    00194 extern int     sldperm(int, int, int, int [], int [], float [],
    kusano 7d535a
    00195                         int [], float [], float []);
    kusano 7d535a
    00196 extern int     ilu_ssnode_dfs (const int, const int, const int *, const int *,
    kusano 7d535a
    00197                                const int *, int *, GlobalLU_t *);
    kusano 7d535a
    00198 extern void    ilu_spanel_dfs (const int, const int, const int, SuperMatrix *,
    kusano 7d535a
    00199                                int *, int *, float *, float *, int *, int *,
    kusano 7d535a
    00200                                int *, int *, int *, int *, GlobalLU_t *);
    kusano 7d535a
    00201 extern int     ilu_scolumn_dfs (const int, const int, int *, int *, int *,
    kusano 7d535a
    00202                                 int *, int *, int *, int *, int *,
    kusano 7d535a
    00203                                 GlobalLU_t *);
    kusano 7d535a
    00204 extern int     ilu_scopy_to_ucol (int, int, int *, int *, int *,
    kusano 7d535a
    00205                                   float *, int, milu_t, double, int,
    kusano 7d535a
    00206                                   float *, int *, GlobalLU_t *, float *);
    kusano 7d535a
    00207 extern int     ilu_spivotL (const int, const double, int *, int *, int, int *,
    kusano 7d535a
    00208                             int *, int *, int *, double, milu_t,
    kusano 7d535a
    00209                             float, GlobalLU_t *, SuperLUStat_t*);
    kusano 7d535a
    00210 extern int     ilu_sdrop_row (superlu_options_t *, int, int, double,
    kusano 7d535a
    00211                               int, int *, double *, GlobalLU_t *, 
    kusano 7d535a
    00212                               float *, float *, int);
    kusano 7d535a
    00213 
    kusano 7d535a
    00214 
    kusano 7d535a
    00217 extern void    sgsequ (SuperMatrix *, float *, float *, float *,
    kusano 7d535a
    00218                         float *, float *, int *);
    kusano 7d535a
    00219 extern void    slaqgs (SuperMatrix *, float *, float *, float,
    kusano 7d535a
    00220                         float, float, char *);
    kusano 7d535a
    00221 extern void    sgscon (char *, SuperMatrix *, SuperMatrix *, 
    kusano 7d535a
    00222                          float, float *, SuperLUStat_t*, int *);
    kusano 7d535a
    00223 extern float   sPivotGrowth(int, SuperMatrix *, int *, 
    kusano 7d535a
    00224                             SuperMatrix *, SuperMatrix *);
    kusano 7d535a
    00225 extern void    sgsrfs (trans_t, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00226                        SuperMatrix *, int *, int *, char *, float *, 
    kusano 7d535a
    00227                        float *, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00228                        float *, float *, SuperLUStat_t*, int *);
    kusano 7d535a
    00229 
    kusano 7d535a
    00230 extern int     sp_strsv (char *, char *, char *, SuperMatrix *,
    kusano 7d535a
    00231                         SuperMatrix *, float *, SuperLUStat_t*, int *);
    kusano 7d535a
    00232 extern int     sp_sgemv (char *, float, SuperMatrix *, float *,
    kusano 7d535a
    00233                         int, float, float *, int);
    kusano 7d535a
    00234 
    kusano 7d535a
    00235 extern int     sp_sgemm (char *, char *, int, int, int, float,
    kusano 7d535a
    00236                         SuperMatrix *, float *, int, float, 
    kusano 7d535a
    00237                         float *, int);
    kusano 7d535a
    00238 extern         float slamch_(char *);
    kusano 7d535a
    00239 
    kusano 7d535a
    00240 
    kusano 7d535a
    00242 extern int     sLUMemInit (fact_t, void *, int, int, int, int, int,
    kusano 7d535a
    00243                             float, SuperMatrix *, SuperMatrix *,
    kusano 7d535a
    00244                             GlobalLU_t *, int **, float **);
    kusano 7d535a
    00245 extern void    sSetRWork (int, int, float *, float **, float **);
    kusano 7d535a
    00246 extern void    sLUWorkFree (int *, float *, GlobalLU_t *);
    kusano 7d535a
    00247 extern int     sLUMemXpand (int, int, MemType, int *, GlobalLU_t *);
    kusano 7d535a
    00248 
    kusano 7d535a
    00249 extern float  *floatMalloc(int);
    kusano 7d535a
    00250 extern float  *floatCalloc(int);
    kusano 7d535a
    00251 extern int     smemory_usage(const int, const int, const int, const int);
    kusano 7d535a
    00252 extern int     sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
    kusano 7d535a
    00253 extern int     ilu_sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
    kusano 7d535a
    00254 
    kusano 7d535a
    00256 extern void    sreadhb(int *, int *, int *, float **, int **, int **);
    kusano 7d535a
    00257 extern void    sreadrb(int *, int *, int *, float **, int **, int **);
    kusano 7d535a
    00258 extern void    sreadtriple(int *, int *, int *, float **, int **, int **);
    kusano 7d535a
    00259 extern void    sCompRow_to_CompCol(int, int, int, float*, int*, int*,
    kusano 7d535a
    00260                                    float **, int **, int **);
    kusano 7d535a
    00261 extern void    sfill (float *, int, float);
    kusano 7d535a
    00262 extern void    sinf_norm_error (int, SuperMatrix *, float *);
    kusano 7d535a
    00263 extern void    PrintPerf (SuperMatrix *, SuperMatrix *, mem_usage_t *,
    kusano 7d535a
    00264                          float, float, float *, float *, char *);
    kusano 7d535a
    00265 extern float  sqselect(int, float *, int);
    kusano 7d535a
    00266 
    kusano 7d535a
    00267 
    kusano 7d535a
    00269 extern void    sPrint_CompCol_Matrix(char *, SuperMatrix *);
    kusano 7d535a
    00270 extern void    sPrint_SuperNode_Matrix(char *, SuperMatrix *);
    kusano 7d535a
    00271 extern void    sPrint_Dense_Matrix(char *, SuperMatrix *);
    kusano 7d535a
    00272 extern void    sprint_lu_col(char *, int, int, int *, GlobalLU_t *);
    kusano 7d535a
    00273 extern int     print_double_vec(char *, int, double *);
    kusano 7d535a
    00274 extern void    check_tempv(int, float *);
    kusano 7d535a
    00275 
    kusano 7d535a
    00276 #ifdef __cplusplus
    kusano 7d535a
    00277   }
    kusano 7d535a
    00278 #endif
    kusano 7d535a
    00279 
    kusano 7d535a
    00280 #endif /* __SUPERLU_sSP_DEFS */
    kusano 7d535a
    00281 
    kusano 7d535a
    kusano 7d535a

    <address style="text-align: right;"><small>Generated on Mon Nov 22 10:23:47 2010 for SuperLU by </small></address>
    kusano 7d535a
    kusano 7d535a
    doxygen 1.5.5 
    kusano 7d535a
    kusano 7d535a