SRC/pzgsmv_AXglobal.c File Reference

Performs sparse matrix-vector multiplication. More...

#include <math.h>
#include "superlu_zdefs.h"

Functions/Subroutines

static void zcreate_msr_matrix (SuperMatrix *A,int_t update[],int_t N_update,doublecomplex **val,int_t **bindx)
static void zPrintMSRmatrix (int, doublecomplex[], int_t[], gridinfo_t *)
int pzgsmv_AXglobal_setup (SuperMatrix *A, Glu_persist_t *Glu_persist, gridinfo_t *grid, int_t *m, int_t *update[], doublecomplex *val[], int_t *bindx[], int_t *mv_sup_to_proc)
int pzgsmv_AXglobal (int_t m, int_t update[], doublecomplex val[], int_t bindx[], doublecomplex X[], doublecomplex ax[])
int pzgsmv_AXglobal_abs (int_t m, int_t update[], doublecomplex val[], int_t bindx[], doublecomplex X[], double ax[])


Detailed Description

 -- Distributed SuperLU routine (version 1.0) --
 Lawrence Berkeley National Lab, Univ. of California Berkeley.
 September 1, 1999
 

Function Documentation

int pzgsmv_AXglobal ( int_t  m,
int_t  update[],
doublecomplex  val[],
int_t  bindx[],
doublecomplex  X[],
doublecomplex  ax[] 
)

 Performs sparse matrix-vector multiplication.
  • val/bindx stores the distributed MSR matrix A
  • X is global
  • ax product is distributed the same way as A

int pzgsmv_AXglobal_abs ( int_t  m,
int_t  update[],
doublecomplex  val[],
int_t  bindx[],
doublecomplex  X[],
double  ax[] 
)

int pzgsmv_AXglobal_setup ( SuperMatrix A,
Glu_persist_t Glu_persist,
gridinfo_t grid,
int_t m,
int_t update[],
doublecomplex val[],
int_t bindx[],
int_t mv_sup_to_proc 
)

static void zcreate_msr_matrix ( SuperMatrix A,
int_t  update[],
int_t  N_update,
doublecomplex **  val,
int_t **  bindx 
) [static]

 Create the distributed modified sparse row (MSR) matrix: bindx/val.
 For a submatrix of size m-by-n, the MSR arrays are as follows:
    bindx[0]      = m + 1
    bindx[0..m]   = pointer to start of each row
    bindx[ks..ke] = column indices of the off-diagonal nonzeros in row k,
                    where, ks = bindx[k], ke = bindx[k+1]-1
    val[k]        = A(k,k), k < m, diagonal elements
    val[m]        = not used
    val[ki]       = A(k, bindx[ki]), where ks <= ki <= ke
 Both arrays are of length nnz + 1.
 

static void zPrintMSRmatrix ( int  m,
doublecomplex  val[],
int_t  bindx[],
gridinfo_t grid 
) [static]


Generated on Wed Nov 24 18:17:32 2010 for SuperLUDistributed by  doxygen 1.5.5