SuperLU Distributed 8.2.1
Distributed memory sparse direct solver
pzgsmv_AXglobal.c File Reference

Performs sparse matrix-vector multiplication. More...

#include <math.h>
#include "superlu_zdefs.h"
Include dependency graph for pzgsmv_AXglobal.c:

Functions

static void zcreate_msr_matrix (SuperMatrix *, int_t[], int_t, doublecomplex **, int_t **)
 
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

Performs sparse matrix-vector multiplication.

Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)

All rights reserved.

The source code is distributed under BSD license, see the file License.txt at the top-level directory.

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

Function Documentation

◆ pzgsmv_AXglobal()

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

◆ pzgsmv_AXglobal_abs()

int pzgsmv_AXglobal_abs ( int_t  m,
int_t  update[],
doublecomplex  val[],
int_t  bindx[],
doublecomplex  X[],
double  ax[] 
)
Here is the call graph for this function:

◆ pzgsmv_AXglobal_setup()

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 
)
Here is the call graph for this function:

◆ zcreate_msr_matrix()

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.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zPrintMSRmatrix()

static void zPrintMSRmatrix ( int  m,
doublecomplex  val[],
int_t  bindx[],
gridinfo_t grid 
)
static
Here is the call graph for this function:
Here is the caller graph for this function: