UNPKG

typescript-ds-lib

Version:

A collection of TypeScript data structure implementations

52 lines (51 loc) 1.78 kB
import { BaseCollection } from './base-collection'; export interface Matrix<T> { get(row: number, col: number): T | undefined; set(row: number, col: number, value: T): void; rows(): number; columns(): number; fill(value: T): void; resize(rows: number, cols: number): void; isSquare(): boolean; isSymmetric(): boolean; getRow(row: number): T[]; getColumn(col: number): T[]; setRow(row: number, values: T[]): void; setColumn(col: number, values: T[]): void; swapRows(row1: number, row2: number): void; swapColumns(col1: number, col2: number): void; transpose(): Matrix<T>; add(other: Matrix<T>): Matrix<T>; subtract(other: Matrix<T>): Matrix<T>; multiply(other: Matrix<T>): Matrix<T>; scalarMultiply(scalar: number): Matrix<T>; map(fn: (value: T, row: number, col: number) => T): Matrix<T>; forEach(fn: (value: T, row: number, col: number) => void): void; clone(): Matrix<T>; toArray(): T[][]; equals(other: Matrix<T>): boolean; submatrix(startRow: number, startCol: number, endRow: number, endCol: number): Matrix<T>; insertMatrix(other: Matrix<T>, startRow: number, startCol: number): void; getDiagonal(): T[]; setDiagonal(values: T[]): void; trace(): T; } export declare class Matrix<T> extends BaseCollection<T> implements Matrix<T> { private data; private numRows; private numCols; constructor(rows: number, cols: number); /** * Clears the matrix by setting all elements to undefined. */ clear(): void; /** * Checks if the matrix is empty (has zero dimensions). */ isEmpty(): boolean; /** * Returns the total number of elements in the matrix. */ size(): number; private isValidPosition; }