type Vec = readonly number[] | Float64Array; /** * Generalized eigenvalues of the pencil `A x = λ B x` (B nonsingular), via the * eigendecomposition of `B⁻¹A` — reusing `inv`, `multiply`, and the corrected * `eigs` (Hessenberg + Francis double-shift). Eigenvalues match * `scipy.linalg.eig(A, B)` across real, complex-pair and clustered spectra. For * a *singular* or numerically near-singular `B` this squaring-free QZ formulation * breaks down; extracting the pencil eigenvalues directly from the {@link qz} * factors (`diag AA / diag BB`, with 2×2-block handling for complex pairs) is the * future enhancement for that regime. */ export declare function generalizedEig(A: readonly number[][], B: readonly number[][]): { values: Array; eigenvectors?: unknown; }; /** Lower-triangular part of `A`, zeroing entries above the `k`-th diagonal. */ export declare function tril(A: readonly number[][], k?: number): number[][]; /** Upper-triangular part of `A`, zeroing entries below the `k`-th diagonal. */ export declare function triu(A: readonly number[][], k?: number): number[][]; /** * Vandermonde matrix of `x`: column `j` is `xᵢ` to a power. With `increasing` * false (default, NumPy convention) column `j` is `xᵢ^(N-1-j)`; `N` defaults to * `x.length`. */ export declare function vander(x: Vec, n?: number, increasing?: boolean): number[][]; /** * Toeplitz matrix: first column `c`, first row `r` (defaults to `c`). Constant * along each diagonal. `T[i][j] = c[i-j]` for `i ≥ j`, else `r[j-i]`. */ export declare function toeplitz(c: Vec, r?: Vec): number[][]; /** Circulant matrix: each row is the previous one rotated right by one. */ export declare function circulant(c: Vec): number[][]; /** * Companion matrix of a monic-normalized polynomial given by coefficients * `[a₀, a₁, …, a_n]` (highest degree first, NumPy `np.companion` convention). * Its eigenvalues are the polynomial's roots. */ export declare function companion(coeffs: Vec): number[][]; /** * Graph Laplacian of an adjacency matrix (bridge graph ↔ linear algebra — spectral * graph theory). Combinatorial `L = D − A` by default (D = diagonal degree matrix); * with `{ normalized: true }`, the symmetric normalized Laplacian * `L_sym = I − D^(−1/2) A D^(−1/2)`. Eigen-analysis of `L` (via `eigs`) gives the * Fiedler vector / spectral clustering. */ export declare function laplacianMatrix(adjacency: readonly number[][], opts?: { normalized?: boolean; }): number[][]; /** * Natural log of the absolute determinant via LU (the `logabsdet` component of * `numpy.linalg.slogdet`), stable where `log(det(A))` would overflow. Returns * `{ sign, value }` with `det = sign · exp(value)`. */ export declare function logdet(A: readonly number[][]): { sign: number; value: number; }; /** * Generalized (QZ) Schur decomposition of the pencil `(A, B)` with `B` nonsingular: * returns orthogonal `Q`, `Z` and upper-(quasi-)triangular `AA`, `BB` with * `A = Q·AA·Zᵀ` and `B = Q·BB·Zᵀ`. Built from the real Schur of `B⁻¹A` (= Z S Zᵀ) and * the QR of `B·Z` (= Q·BB): then `AA = Qᵀ·A·Z`. The Schur step is the hardened * Hessenberg + Francis double-shift `matrixSchur` (see {@link realSchur}), so `qz` * no longer stalls on non-symmetric `B⁻¹A` pencils; matches the decomposition * contract of `scipy.linalg.qz` (the factors are not unique). */ export declare function qz(A: readonly number[][], B: readonly number[][]): { AA: number[][]; BB: number[][]; Q: number[][]; Z: number[][]; }; export {}; //# sourceMappingURL=linalg-extra.d.ts.map