import type BigNumber from 'bignumber.js'; import type { Complex } from 'complex.js'; /** Scalar types supported by complex eigenvalue computation */ type Scalar = number | BigNumber | Complex; /** Result for a single eigenvector with its corresponding eigenvalue */ interface EigenvectorResult { value: Scalar; vector: Scalar[]; } /** Result of complex eigenvalue computation */ interface ComplexEigsResult { values: Scalar[]; eigenvectors?: EigenvectorResult[]; } /** Result of QR decomposition */ interface QRResult { Q: Scalar[][]; R: Scalar[][]; } /** Dependencies for createComplexEigs */ interface Dependencies { addScalar: (a: Scalar, b: Scalar) => Scalar; subtract: (a: Scalar | Scalar[], b: Scalar | Scalar[]) => Scalar | Scalar[]; flatten: (arr: T[][] | T[]) => T[]; multiply: (a: Scalar | Scalar[][], b: Scalar | Scalar[][]) => Scalar | Scalar[][]; multiplyScalar: (a: Scalar, b: Scalar) => Scalar; divideScalar: (a: Scalar, b: Scalar) => Scalar; sqrt: (x: Scalar) => Scalar; abs: (x: Scalar) => number | BigNumber; bignumber: (x: number | string) => BigNumber; diag: (arr: Scalar[]) => Scalar[][]; size: (arr: Scalar[]) => number[]; reshape: (arr: Scalar[], shape: number[]) => Scalar[]; inv: (x: Scalar[][]) => Scalar[][]; qr: (x: Scalar[][]) => QRResult; usolve: (A: Scalar[][], b: Scalar[]) => Scalar[]; usolveAll: (A: Scalar[][], b: Scalar[]) => Scalar[][]; equal: (a: Scalar, b: Scalar) => boolean; complex: (re: number | Scalar, im?: number) => Complex; larger: (a: Scalar, b: Scalar) => boolean; smaller: (a: Scalar, b: Scalar) => boolean; matrixFromColumns: (...cols: Scalar[][]) => Scalar[][]; dot: (a: Scalar[], b: Scalar[]) => Scalar; } /** Supported data types for eigenvalue computation */ type DataType = 'number' | 'BigNumber' | 'Complex'; /** * Create the `complexEigs` function, which computes the eigenvalues and the optional * eigenvectors of a matrix that is not real symmetric. */ export declare function createComplexEigs({ addScalar, subtract, flatten, multiply, multiplyScalar, divideScalar, sqrt, abs, bignumber, diag, size, reshape, inv, qr, usolve, usolveAll, equal, complex, larger, smaller, matrixFromColumns: _matrixFromColumns, dot, }: Dependencies): (arr: Scalar[][], N: number, prec: number | BigNumber, type: DataType, findVectors?: boolean) => ComplexEigsResult; export {}; //# sourceMappingURL=complexEigs.d.ts.map