HPL_pdlange(3)

πŸ“¦ version 2.2, in fedora 43, fedora 44

πŸ’– HPL_pdlange β€” it's giving norms, bestie πŸ’–

okay so this is a page from the HPL Library Functions manual (the whole HPL 2.2 situation), and today's main character is HPL_pdlange. Sit down, hydrate, and let's compute a matrix norm together. 🫢


✨ NAME ✨

HPL_pdlange β€” Compute ||A||. that's it, that's the whole job, she computes a norm and she does it flawlessly πŸ’…


🌸 SYNOPSIS 🌸

#include "hpl.h"

double HPL_pdlange( const HPL_T_grid * GRID, const HPL_T_NORM NORM,
const int M, const int N, const int NB, const double * A, const int LDA
);

πŸ¦‹ DESCRIPTION πŸ¦‹

so HPL_pdlange hands you back the value of the one norm, or the infinity norm, or the element of largest absolute value of a distributed matrix A, depending on the vibe you requested:

  • max(abs(A(i,j))) when NORM = HPL_NORM_A,
  • norm1(A), when NORM = HPL_NORM_1,
  • normI(A), when NORM = HPL_NORM_I,

where norm1 is the one norm of a matrix (maximum column sum) and normI is the infinity norm of a matrix (maximum row sum).

okay important lore drop πŸ”₯ β€” max(abs(A(i,j))) is not a matrix norm. like, technically speaking, not a norm. she's just the biggest absolute value hanging out in there. don't let anyone tell you otherwise, no cap.

πŸ‘‘ ARGUMENTS πŸ‘‘

every single one of these, in order, because we respect the interface in this house πŸŽ€

  • GRID β€” (local input) const HPL_T_grid * β€” on entry, GRID points to the data structure containing the process grid information. it's the map, bestie πŸ—ΊοΈ
  • NORM β€” (global input) const HPL_T_NORM β€” on entry, NORM specifies the value to be returned by this function, as described up above. you pick the flavor, she picks the math ✨
  • M β€” (global input) const int β€” on entry, M specifies the number of rows of the matrix A. M must be at least zero.
  • N β€” (global input) const int β€” on entry, N specifies the number of columns of the matrix A. N must be at least zero.
  • NB β€” (global input) const int β€” on entry, NB specifies the blocking factor used to partition and distribute the matrix. NB must be larger than one.
  • A β€” (local input) const double * β€” on entry, A points to an array of dimension (LDA,LocQ(N)), that contains the local pieces of the distributed matrix A. local pieces only, she's distributed, that's the whole point πŸ’€
  • LDA β€” (local input) const int β€” on entry, LDA specifies the leading dimension of the array A. LDA must be at least max(1,LocP(M)).

🌈 SEE ALSO 🌈

the girlies she runs with:

  • HPL_pdlaprnt (3)
  • HPL_fprintf (3)

πŸ’œ and that's the page πŸ’œ

written up as part of HPL 2.2, dated February 24, 2016 β€” and yeah, she still eats. go forth, compute your norms, and remember: max(abs(A(i,j))) is not a matrix norm, iykyk. periodt. πŸ’…πŸŒΈβœ¨

πŸ“¦ where this page comes from