HPL_pdlaprnt(3)

๐Ÿ“ฆ version 2.2, in fedora 43, fedora 44

๐Ÿ’– HPL_pdlaprnt โ€” bestie, it's from the HPL Library Functions ๐Ÿ’–

okay so real quick, the vibe: this is HPL_pdlaprnt(3), a whole icon in the HPL Library Functions lineup. no cap.


โœจ NAME โœจ

HPL_pdlaprnt โ€” print a distributed matrix A. that's it, that's the whole job, and she does it flawlessly ๐Ÿ’…


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

#include "hpl.h"

void HPL_pdlaprnt( const HPL_T_grid * GRID, const int M, const int N,
const int NB, double * A, const int LDA, const int IAROW, const int
IACOL, const char * CMATNM );

๐ŸŒธ DESCRIPTION ๐ŸŒธ

okay so HPL_pdlaprnt prints a distributed matrix A to standard error. not stdout, bestie โ€” standard error. read that again, i'll wait. ๐Ÿซถ

the way it works is genuinely so cunty: the local pieces of A get sent over to the process at coordinates (0,0) in the grid, and then they get printed. so everybody's little shard of the matrix takes a lil trip to process (0,0) and that one process does the printing. main character energy fr fr ๐Ÿ‘‘


๐ŸŒˆ ARGUMENTS ๐ŸŒˆ

  • GRID (local input) โ€” const HPL_T_grid * on entry, GRID points to the data structure holding all the process grid info. it's the map of who's where, basically. ๐Ÿ—บ๏ธ
  • M (global input) โ€” const int on entry, M says how many rows the coefficient matrix A has. and listen โ€” M must be at least zero. negative rows? not a thing, we don't do that here. ๐Ÿ’€
  • N (global input) โ€” const int on entry, N says how many columns the coefficient matrix A has. same rule, bestie: N must be at least zero. โœจ
  • NB (global input) โ€” const int on entry, NB is the blocking factor used to partition and distribute the matrix. and heads up โ€” NB must be larger than one. not one, not zero, larger than one. periodt. ๐ŸŽ€
  • A (local input) โ€” double * on entry, A points to an array of dimension (LDA,LocQ(N)). this array holds the coefficient matrix that's about to get printed. she's the moment. ๐Ÿ’–
  • LDA (local input) โ€” const int on entry, LDA is the leading dimension of the array A. and it must be at least max(1,LocP(M)). do the math, don't skip it. ๐Ÿงฎ
  • IAROW (global input) โ€” const int on entry, IAROW is the row process coordinate that owns the first row of A. it must be larger than or equal to zero and less than NPROW. stay in your lane, literally. ๐ŸŒธ
  • IACOL (global input) โ€” const int on entry, IACOL is the column process coordinate that owns the first column of A. it must be larger than or equal to zero and less than NPCOL. same energy, different axis. ๐Ÿฆ‹
  • CMATNM (global input) โ€” const char * on entry, CMATNM is the name of the matrix that's getting printed. give her a name, she deserves one. ๐Ÿ’œ
lowkey important: every single one of those "must be" rules? yeah, those are real. ignore them and it's giving undefined behaviour, and not the fun kind. ๐Ÿ˜ญ

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

  • HPL_fprintf (3) โ€” go read her too, she's iconic in her own right.

okay and finally, the lil sign-off moment: this whole page is HPL 2.2, dated February 24, 2016. yeah, she's an older queen but she still ate and left no crumbs. stan forever. ๐Ÿ’…โœจ๐ŸŒˆ

๐Ÿ“ฆ where this page comes from