typescript-ds-lib
Version:
A collection of TypeScript data structure implementations
52 lines (51 loc) • 1.78 kB
TypeScript
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;
}