HPL_dlaswp01T(3)
π NAME π
HPL_dlaswp01T β copies rows of A into itself and into U. (she's from the HPL Library Functions lineup, bestie π
)
β¨ SYNOPSIS β¨
#include "hpl.h"
void HPL_dlaswp01T( const int M, const int N, double * A, const int LDA,
double * U, const int LDU, const int * LINDXA, const int * LINDXAU );
π¦ DESCRIPTION π¦
Okay so real talk: HPL_dlaswp01T takes scattered rows of A and copies them into A itself and into an array U. Like, both. At once. Multitasking queen π
The row offsets in A of the source rows? Those are specified by LINDXA. And where those rows are headed? That's LINDXAU's whole job.
Here's the vibe check on LINDXAU: a positive value means the destination is U. Anything else means it's A. Periodt.
And the lil plot twist πΈ β rows of A are stored as columns in U. Yes bestie, transposed, we love a layout switcheroo.
π ARGUMENTS π
M(local input) βconst int. On entry,Msays how many rows ofAshould be moved withinAor copied intoU.Mmust be at least zero. No negatives, she doesn't do that πN(local input) βconst int. On entry,Nis the length of the rows ofAthat should be moved withinAor copied intoU.Nmust be at least zero too. Rules are rules πA(local input/output) βdouble *. On entry,Apoints to an array of dimension(LDA,N). The rows of this array specified byLINDXAshould be moved withinAor copied intoU. She's both the source and the destination, main character energy fr fr β¨LDA(local input) βconst int. On entry,LDAis the leading dimension of the arrayA.LDAmust be at leastMAX(1,M). Do not skip this, the math will simply not math πU(local input/output) βdouble *. On entry,Upoints to an array of dimension(LDU,M). The rows ofAspecified byLINDXAare copied within this arrayUat the positions indicated by positive values ofLINDXAU. The rows ofAare stored as columns inU. Iconic behaviour honestly πLDU(local input) βconst int. On entry,LDUis the leading dimension of the arrayU.LDUmust be at leastMAX(1,N). Yes it'sNhere andMup there forLDAβ that's not a typo, that's just the assignment bestie πLINDXA(local input) βconst int *. On entry,LINDXAis an array of dimensionMthat contains the local row indexes ofAthat should be moved withinAor copied intoU. She's the "where from" list πLINDXAU(local input) βconst int *. On entry,LINDXAUis an array of dimensionMthat contains the local row indexes ofUwhere the rows ofAshould be copied at. This array also contains the local row offsets inAwhere some of the rows ofAshould be moved to. A positive value ofLINDXAU[i]indicates that the rowLINDXA[i]ofAshould be copied intoUat the positionLINDXAU[i]; otherwise the rowLINDXA[i]ofAshould be moved at the position-LINDXAU[i]withinA. She's the "where to" list and she's carrying a sign bit like a lil secret π§
Ngl theLINDXAUsign thing is the whole trick of this function. Positive β intoU. Otherwise β moved insideAat-LINDXAU[i]. Read it twice if you need to, no shame π
π SEE ALSO π
The whole friend group, go say hi π
HPL_dlaswp00N(3)HPL_dlaswp10N(3)HPL_dlaswp01N(3)HPL_dlaswp01T(3)HPL_dlaswp02N(3)HPL_dlaswp03N(3)HPL_dlaswp03T(3)HPL_dlaswp04N(3)HPL_dlaswp04T(3)HPL_dlaswp05N(3)HPL_dlaswp05T(3)HPL_dlaswp06N(3)HPL_dlaswp06T(3)
That's the whole page, bestie, you ate it up π«Ά This one's from HPL 2.2, dated February 24, 2016 β old enough to have a driver's license but still slaying β
π¦ 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