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

Performs sparse matrix-vector multiplication. More...

#include <math.h>
#include "superlu_sdefs.h"
Include dependency graph for psgsmv_AXglobal.c:

Functions

static void screate_msr_matrix (SuperMatrix *, int_t[], int_t, float **, int_t **)
 
static void sPrintMSRmatrix (int, float[], int_t[], gridinfo_t *)
 
int psgsmv_AXglobal_setup (SuperMatrix *A, Glu_persist_t *Glu_persist, gridinfo_t *grid, int_t *m, int_t *update[], float *val[], int_t *bindx[], int_t *mv_sup_to_proc)
 
int psgsmv_AXglobal (int_t m, int_t update[], float val[], int_t bindx[], float X[], float ax[])
 
int psgsmv_AXglobal_abs (int_t m, int_t update[], float val[], int_t bindx[], float X[], float 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

◆ psgsmv_AXglobal()

int psgsmv_AXglobal ( int_t  m,
int_t  update[],
float  val[],
int_t  bindx[],
float  X[],
float  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

◆ psgsmv_AXglobal_abs()

int psgsmv_AXglobal_abs ( int_t  m,
int_t  update[],
float  val[],
int_t  bindx[],
float  X[],
float  ax[] 
)

◆ psgsmv_AXglobal_setup()

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

◆ screate_msr_matrix()

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

◆ sPrintMSRmatrix()

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