import { Numerical } from "./numerical" import { Matrix } from "../matrix" export interface MatrixInterface { /** * The shape of the matrix. * @type {string} */ shape: string /** * Indicates whether the matrix is square. * @type {boolean} */ isSquare: boolean /** * Indicates whether the matrix is tall (more rows than columns). * @type {boolean} */ isTall: boolean /** * Indicates whether the matrix is wide (more columns than rows). * @type {boolean} */ isWide: boolean /** * The number of rows in the matrix. * @type {number} */ rows: number /** * The number of columns in the matrix. * @type {number} */ columns: number /** * The total number of elements in the matrix. * @type {number} */ size: number /** * The elements of the matrix. * @type {Array} */ mElements: Array /** * The data type of the matrix elements. * @type {string} */ dataType: string /** * The numercal class to use for calculations * @type {Numerical} */ numerical: Numerical add(B: Matrix): Matrix multiply(B: Matrix): Matrix pow(exp: number): Matrix scale(scalar: T): Matrix subtract(B: Matrix): Matrix vMultiply(vector: T[]): Matrix backSubstitution(b: T[]): T[] forwardSubstitution(b: T[]): T[] gaussianElimination(options: { solve?: boolean }): Matrix | T[] gaussJordan(options: { solve?: boolean }): Matrix | T[] QRDecomposition(): { Q: Matrix, R: Matrix } invertSquare(): Matrix invertUpper(): Matrix invertLower(): Matrix augment(B: Matrix): Matrix equal(B: Matrix): boolean gramSmith(): Matrix print(): void toArray(): T[][] transpose(): Matrix toString(): string }