Contents

 1 Introduction
 2 General overview
  2.1 Basic Nomenclature
  2.2 Library contents
  2.3 Application structure
   2.3.1 User-defined index mappings
  2.4 Programming model
 3 Data Structures and Classes
  3.1 Descriptor data structure
   3.1.1 Descriptor Methods
   3.1.2 get_local_rows — Get number of local rows
   3.1.3 get_local_cols — Get number of local cols
   3.1.4 get_global_rows — Get number of global rows
   3.1.5 get_global_cols — Get number of global cols
   3.1.6 get_global_indices — Get vector of global indices
   3.1.7 get_context — Get communication context
   3.1.8 Clone — clone current object
   3.1.9 CNV — convert internal storage format
   3.1.10 psb_cd_get_large_threshold — Get threshold for index mapping switch
   3.1.11 psb_cd_set_large_threshold — Set threshold for index mapping switch
   3.1.12 get_p_adjcncy — Get process adjacency list
   3.1.13 set_p_adjcncy — Set process adjacency list
   3.1.14 fnd_owner — Find the owner process of a set of indices
   3.1.15 Named Constants
  3.2 Sparse Matrix class
   3.2.1 Sparse Matrix Methods
   3.2.2 get_nrows — Get number of rows in a sparse matrix
   3.2.3 get_ncols — Get number of columns in a sparse matrix
   3.2.4 get_nnzeros — Get number of nonzero elements in a sparse matrix
   3.2.5 get_size — Get maximum number of nonzero elements in a sparse matrix
   3.2.6 sizeof — Get memory occupation in bytes of a sparse matrix
   3.2.7 get_fmt — Short description of the dynamic type
   3.2.8 is_bld, is_upd, is_asb — Status check
   3.2.9 is_lower, is_upper, is_triangle, is_unit — Format check
   3.2.10 cscnv — Convert to a different storage format
   3.2.11 csclip — Reduce to a submatrix
   3.2.12 clean_zeros — Eliminate zero coefficients
   3.2.13 get_diag — Get main diagonal
   3.2.14 clip_diag — Cut out main diagonal
   3.2.15 tril — Return the lower triangle
   3.2.16 triu — Return the upper triangle
   3.2.17 psb_set_mat_default — Set default storage format
   3.2.18 clone — Clone current object
   3.2.19 Named Constants
  3.3 Dense Vector Data Structure
   3.3.1 Vector Methods
   3.3.2 get_nrows — Get number of rows in a dense vector
   3.3.3 sizeof — Get memory occupation in bytes of a dense vector
   3.3.4 set — Set contents of the vector
   3.3.5 get_vect — Get a copy of the vector contents
   3.3.6 clone — Clone current object
  3.4 Preconditioner data structure
  3.5 Heap data structure
 4 Computational routines
  4.1 psb_geaxpby — General Dense Matrix Sum
  4.2 psb_gedot — Dot Product
  4.3 psb_gedots — Generalized Dot Product
  4.4 psb_normi — Infinity-Norm of Vector
  4.5 psb_geamaxs — Generalized Infinity Norm
  4.6 psb_norm1 — 1-Norm of Vector
  4.7 psb_geasums — Generalized 1-Norm of Vector
  4.8 psb_norm2 — 2-Norm of Vector
  4.9 psb_genrm2s — Generalized 2-Norm of Vector
  4.10 psb_norm1 — 1-Norm of Sparse Matrix
  4.11 psb_normi — Infinity Norm of Sparse Matrix
  4.12 psb_spmm — Sparse Matrix by Dense Matrix Product
  4.13 psb_spsm — Triangular System Solve
  4.14 psb_gemlt — Entrywise Product
  4.15 psb_gediv — Entrywise Division
  4.16 psb_geinv — Entrywise Inversion
 5 Communication routines
  5.1 psb_halo — Halo Data Communication
  5.2 psb_ovrl — Overlap Update
  5.3 psb_gather — Gather Global Dense Matrix
  5.4 psb_scatter — Scatter Global Dense Matrix
 6 Data management routines
  6.1 psb_cdall — Allocates a communication descriptor
  6.2 psb_cdins — Communication descriptor insert routine
  6.3 psb_cdasb — Communication descriptor assembly routine
  6.4 psb_cdcpy — Copies a communication descriptor
  6.5 psb_cdfree — Frees a communication descriptor
  6.6 psb_cdbldext — Build an extended communication descriptor
  6.7 psb_spall — Allocates a sparse matrix
  6.8 psb_spins — Insert a set of coefficients into a sparse matrix
  6.9 psb_spasb — Sparse matrix assembly routine
  6.10 psb_spfree — Frees a sparse matrix
  6.11 psb_sprn — Reinit sparse matrix structure for psblas routines.
  6.12 psb_geall — Allocates a dense matrix
  6.13 psb_geins — Dense matrix insertion routine
  6.14 psb_geasb — Assembly a dense matrix
  6.15 psb_gefree — Frees a dense matrix
  6.16 psb_gelp — Applies a left permutation to a dense matrix
  6.17 psb_glob_to_loc — Global to local indices convertion
  6.18 psb_loc_to_glob — Local to global indices conversion
  6.19 psb_is_owned —
  6.20 psb_owned_index —
  6.21 psb_is_local —
  6.22 psb_local_index —
  6.23 psb_get_boundary — Extract list of boundary elements
  6.24 psb_get_overlap — Extract list of overlap elements
  6.25 psb_sp_getrow — Extract row(s) from a sparse matrix
  6.26 psb_sizeof — Memory occupation
  6.27 Sorting utilities —
 7 Parallel environment routines
  7.1 psb_init — Initializes PSBLAS parallel environment
  7.2 psb_info — Return information about PSBLAS parallel environment
  7.3 psb_exit — Exit from PSBLAS parallel environment
  7.4 psb_get_mpi_comm — Get the MPI communicator
  7.5 psb_get_mpi_rank — Get the MPI rank
  7.6 psb_wtime — Wall clock timing
  7.7 psb_barrier — Sinchronization point parallel environment
  7.8 psb_abort — Abort a computation
  7.9 psb_bcast — Broadcast data
  7.10 psb_sum — Global sum
  7.11 psb_max — Global maximum
  7.12 psb_min — Global minimum
  7.13 psb_amx — Global maximum absolute value
  7.14 psb_amn — Global minimum absolute value
  7.15 psb_nrm2 — Global 2-norm reduction
  7.16 psb_snd — Send data
  7.17 psb_rcv — Receive data
 8 Error handling
  8.1 psb_errpush — Pushes an error code onto the error stack
  8.2 psb_error — Prints the error stack content and aborts execution
  8.3 psb_set_errverbosity — Sets the verbosity of error messages
  8.4 psb_set_erraction — Set the type of action to be taken upon error condition
 9 Utilities
  9.1 hb_read — Read a sparse matrix from a file in the Harwell–Boeing format
  9.2 hb_write — Write a sparse matrix to a file in the Harwell–Boeing format
  9.3 mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format
  9.4 mm_array_read — Read a dense array from a file in the MatrixMarket format
  9.5 mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format
  9.6 mm_array_write — Write a dense array from a file in the MatrixMarket format
 10 Preconditioner routines
  10.1 init — Initialize a preconditioner
  10.2 build — Builds a preconditioner
  10.3 apply — Preconditioner application routine
  10.4 descr — Prints a description of current preconditioner
  10.5 clone — clone current preconditioner
  10.6 free — Free a preconditioner
 11 Iterative Methods
  11.1 psb_krylov — Krylov Methods Driver Routine
 12 Extensions
  12.1 Using the extensions
  12.2 Extensions’ Data Structures
  12.3 CPU-class extensions
  12.4 CUDA-class extensions
 13 CUDA Environment Routines
  psb_cuda_init
  psb_cuda_exit
  psb_cuda_DeviceSync
  psb_cuda_getDeviceCount
  psb_cuda_getDevice
  psb_cuda_setDevice
  psb_cuda_DeviceHasUVA
  psb_cuda_WarpSize
  psb_cuda_MultiProcessors
  psb_cuda_MaxThreadsPerMP
  psb_cuda_MaxRegisterPerBlock
  psb_cuda_MemoryClockRate
  psb_cuda_MemoryBusWidth
  psb_cuda_MemoryPeakBandwidth