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

Performs sparse matrix-vector multiplication. More...

#include <math.h>
#include "superlu_ddefs.h"
Include dependency graph for pdgsmv_AXglobal.c:

Functions

static void dcreate_msr_matrix (SuperMatrix *, int_t[], int_t, double **, int_t **)
 
static void dPrintMSRmatrix (int, double[], int_t[], gridinfo_t *)
 
int pdgsmv_AXglobal_setup (SuperMatrix *A, Glu_persist_t *Glu_persist, gridinfo_t *grid, int_t *m, int_t *update[], double *val[], int_t *bindx[], int_t *mv_sup_to_proc)
 
int pdgsmv_AXglobal (int_t m, int_t update[], double val[], int_t bindx[], double X[], double ax[])
 
int pdgsmv_AXglobal_abs (int_t m, int_t update[], double val[], int_t bindx[], double 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

◆ dcreate_msr_matrix()

static void dcreate_msr_matrix ( SuperMatrix A,
int_t  update[],
int_t  N_update,
double **  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:

◆ dPrintMSRmatrix()

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

◆ pdgsmv_AXglobal()

int pdgsmv_AXglobal ( int_t  m,
int_t  update[],
double  val[],
int_t  bindx[],
double  X[],
double  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
Here is the caller graph for this function:

◆ pdgsmv_AXglobal_abs()

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

◆ pdgsmv_AXglobal_setup()

int pdgsmv_AXglobal_setup ( SuperMatrix A,
Glu_persist_t Glu_persist,
gridinfo_t grid,
int_t m,
int_t update[],
double *  val[],
int_t bindx[],
int_t mv_sup_to_proc 
)
Here is the call graph for this function:
Here is the caller graph for this function: