matrix order (rows/cols read by the triangular routine)
leading dimension; throws if lda < n
Optionaluplo: "lower" | "upper"
'lower' to fill the lower triangle, 'upper' to fill the upper triangle (default: 'lower')
Optionallow: number
lower bound for off-diagonal entries (default: -1)
Optionalhigh: number
upper bound for off-diagonal entries (default: 1)
OptionaldiagLow: number
lower bound for diagonal entries (default: 5)
OptionaldiagHigh: number
upper bound for diagonal entries (default: 15)
Optionallayout: "column-major" | "row-major"
'row-major' or 'column-major' storage order (default: 'row-major')
import { randomTriangularFloat32Array } from "wgblas";
const n = 4,
lda = n;
const A = randomTriangularFloat32Array(n, lda, "lower");
console.log(A);
Column-major storage:
import { randomTriangularFloat32Array } from "wgblas";
const n = 4,
lda = n;
const A = randomTriangularFloat32Array(
n,
lda,
"lower",
-1,
1,
5,
15,
"column-major",
);
console.log(A);
Returns a Float32Array of n*lda elements, with leading dimension
ldaunder the givenlayout, representing an actual lower- or upper-triangular matrix for a triangular routine (strmv/strsv) example: entries in theuplotriangle are uniform in[low, high), the n diagonal entries are uniform in[diagLow, diagHigh)— kept well away from 0 so a triangular solve doesn't divide by a near-zero pivot — and every entry in the other triangle is 0.uploalways describes the logical triangle, regardless of storage order: only the flat index each (row, col) maps to changes between layouts (A[row*lda+col]for row-major,A[col*lda+row]for column-major).