HPL_infog2l(3)
π HPL_infog2l β from the HPL Library Functions manual, bestie π
okay so like, welcome to HPL_infog2l(3), the little routine that does global to local index translation. yes queen, it converts. it translates. it's giving multilingual but for indexes. π¦
β¨ NAME β¨
HPL_infog2l β global to local index translation. that's it, that's the whole vibe. no cap. π
πΈ SYNOPSIS πΈ
#include "hpl.h"
void HPL_infog2l( int I, int J, const int IMB, const int MB, const int
INB, const int NB, const int RSRC, const int CSRC, const int MYROW,
const int MYCOL, const int NPROW, const int NPCOL, int * II, int * JJ,
int * PROW, int * PCOL );
look at all those arguments bestie π she's thorough. she's committed. she knows what she wants.
π DESCRIPTION π
so HPL_infog2l computes the starting local index II, JJ corresponding to the submatrix starting globally at the entry pointed by I, J. lowkey iconic behaviour.
and THEN β plot twist β this routine also returns the coordinates in the grid of the process owning the matrix entry of global indexes I, J, namely PROW and PCOL. so it's like, "here's your local spot AND here's who's holding the bag." main character energy fr fr π
π¦ ARGUMENTS π¦
I(global input) βintβ on entry,Ispecifies the global row index of the matrix entry.Imust be at least zero. like, zero or more, bestie, don't be negative, that's not the vibe πJ(global input) βintβ on entry,Jspecifies the global column index of the matrix entry.Jmust be at least zero. same energy. no negativity allowed. β¨IMB(global input) βconst intβ on entry,IMBspecifies the size of the first row block of the global matrix.IMBmust be at least one. one or more, periodt.MB(global input) βconst intβ on entry,MBspecifies the blocking factor used to partition and distribute the rows of the matrixA.MBmust be larger than one. strictly larger. she's picky and honestly? valid. πINB(global input) βconst intβ on entry,INBspecifies the size of the first column block of the global matrix.INBmust be at least one. again: one or more. we love consistency. πNB(global input) βconst intβ on entry,NBspecifies the blocking factor used to partition and distribute the columns of the matrixA.NBmust be larger than one. bigger than one, no exceptions, that's the rule bestie.RSRC(global input) βconst intβ on entry,RSRCspecifies the row coordinate of the process that possesses the rowI.RSRCmust be at least zero and strictly less thanNPROW. so like, in-bounds, okay? don't come for me with out-of-range values πCSRC(global input) βconst intβ on entry,CSRCspecifies the column coordinate of the process that possesses the columnJ.CSRCmust be at least zero and strictly less thanNPCOL. same deal, stay in your lane (affectionately). πΈMYROW(local input) βconst intβ on entry,MYROWspecifies my row process coordinate in the grid.MYROWis greater than or equal to zero and less thanNPROW. it's giving "know thyself." πͺMYCOL(local input) βconst intβ on entry,MYCOLspecifies my column process coordinate in the grid.MYCOLis greater than or equal to zero and less thanNPCOL. yes, your column. yours specifically. πNPROW(global input) βconst intβ on entry,NPROWspecifies the number of process rows in the grid.NPROWis at least one. at least one row, always. βNPCOL(global input) βconst intβ on entry,NPCOLspecifies the number of process columns in the grid.NPCOLis at least one. and at least one column. the grid stays populated. πII(local output) βint *β on exit,IIspecifies the local starting row index of the submatrix. on exit,IIis at least 0. she comes out non-negative, as she should. π₯JJ(local output) βint *β on exit,JJspecifies the local starting column index of the submatrix. on exit,JJis at least 0. same. non-negative. slay.PROW(global output) βint *β on exit,PROWis the row coordinate of the process owning the entry specified by the global indexI.PROWis at least zero and less thanNPROW. so like, we found the row owner. mystery solved. π΅οΈββοΈPCOL(global output) βint *β on exit,PCOLis the column coordinate of the process owning the entry specified by the global indexJ.PCOLis at least zero and less thanNPCOL. and the column owner too. case closed, bestie. π
π SEE ALSO π
HPL_indxg2l (3)HPL_indxg2p (3)HPL_indxl2g (3)HPL_numroc (3)HPL_numrocI (3)
go read those too, they're the whole friend group, iykyk π«Ά
ngl bestie, remember every single one of those bounds checks. negative values and out-of-range process coordinates are NOT the move, andMBandNBhave to be strictly larger than one. don't test her. π
HPL 2.2 πΈ February 24, 2016 β yeah she's been iconic since 2016 and she's still serving. mwah π β¨ bye bestie, go translate some indexes π¦
π¦ where this page comes from
- fedora 43: hpl-doc 2.2-22.fc43 Β· LicenseRef-Callaway-BSD-with-advertising
- fedora 44: hpl-doc 2.2-23.fc44 Β· LicenseRef-Callaway-BSD-with-advertising
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms