typescript-ds-lib 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +3 -2
  2. package/dist/lib/binary-search-tree.d.ts +12 -34
  3. package/dist/lib/binary-search-tree.js +1 -1
  4. package/dist/lib/binary-search-tree.js.map +1 -1
  5. package/dist/lib/deque.d.ts +6 -32
  6. package/dist/lib/deque.js +1 -1
  7. package/dist/lib/deque.js.map +1 -1
  8. package/dist/lib/hash-table.d.ts +9 -8
  9. package/dist/lib/hash-table.js +1 -1
  10. package/dist/lib/hash-table.js.map +1 -1
  11. package/dist/lib/linked-list.d.ts +8 -34
  12. package/dist/lib/linked-list.js +1 -1
  13. package/dist/lib/linked-list.js.map +1 -1
  14. package/dist/lib/map.d.ts +7 -5
  15. package/dist/lib/map.js +2 -2
  16. package/dist/lib/map.js.map +1 -1
  17. package/dist/lib/matrix.d.ts +35 -0
  18. package/dist/lib/matrix.js +232 -0
  19. package/dist/lib/matrix.js.map +1 -0
  20. package/dist/lib/priority-queue.d.ts +6 -26
  21. package/dist/lib/priority-queue.js +1 -1
  22. package/dist/lib/priority-queue.js.map +1 -1
  23. package/dist/lib/queue.d.ts +9 -2
  24. package/dist/lib/queue.js +1 -1
  25. package/dist/lib/queue.js.map +1 -1
  26. package/dist/lib/red-black-tree.d.ts +12 -10
  27. package/dist/lib/red-black-tree.js +1 -1
  28. package/dist/lib/red-black-tree.js.map +1 -1
  29. package/dist/lib/set.d.ts +10 -26
  30. package/dist/lib/set.js +2 -2
  31. package/dist/lib/set.js.map +1 -1
  32. package/dist/lib/stack.d.ts +6 -23
  33. package/dist/lib/stack.js +1 -1
  34. package/dist/lib/stack.js.map +1 -1
  35. package/dist/tests/binary-search-tree.test.js +2 -2
  36. package/dist/tests/binary-search-tree.test.js.map +1 -1
  37. package/dist/tests/deque.test.js +4 -4
  38. package/dist/tests/deque.test.js.map +1 -1
  39. package/dist/tests/hash-table.test.js +2 -2
  40. package/dist/tests/hash-table.test.js.map +1 -1
  41. package/dist/tests/linked-list.test.js +3 -3
  42. package/dist/tests/linked-list.test.js.map +1 -1
  43. package/dist/tests/map.test.js +4 -4
  44. package/dist/tests/map.test.js.map +1 -1
  45. package/dist/tests/matrix.test.d.ts +1 -0
  46. package/dist/tests/matrix.test.js +188 -0
  47. package/dist/tests/matrix.test.js.map +1 -0
  48. package/dist/tests/priority-queue.test.js +3 -3
  49. package/dist/tests/priority-queue.test.js.map +1 -1
  50. package/dist/tests/queue.test.js +3 -3
  51. package/dist/tests/queue.test.js.map +1 -1
  52. package/dist/tests/red-black-tree.test.js +4 -4
  53. package/dist/tests/red-black-tree.test.js.map +1 -1
  54. package/dist/tests/set.test.js +2 -2
  55. package/dist/tests/set.test.js.map +1 -1
  56. package/dist/tests/stack.test.js +3 -3
  57. package/dist/tests/stack.test.js.map +1 -1
  58. package/dist/types/index.d.ts +0 -90
  59. package/package.json +1 -1
package/README.md CHANGED
@@ -15,9 +15,9 @@ npm install typescript-ds-lib
15
15
 
16
16
  ## Usage
17
17
  ```typescript
18
- import { Stack, StackTy } from 'typescript-ds-lib';
18
+ import { Stack } from 'typescript-ds-lib';
19
19
 
20
- const stack: StackTy<number> = new Stack<number>();
20
+ const stack: Stack<number> = new Stack<number>();
21
21
 
22
22
  stack.push(1);
23
23
  stack.push(2);
@@ -40,6 +40,7 @@ console.log(stack.size()); // 2
40
40
  - Set
41
41
  - Map
42
42
  - Hash Table
43
+ - Matrix
43
44
 
44
45
 
45
46
  ## Documentation and Examples
@@ -1,42 +1,20 @@
1
- import { BinarySearchTreeTy, Comparator } from '../types';
2
- export declare class BinarySearchTree<T> implements BinarySearchTreeTy<T> {
1
+ import { Comparator } from '../types';
2
+ export interface BinarySearchTree<T> {
3
+ insert(element: T): void;
4
+ remove(element: T): void;
5
+ find(element: T): boolean;
6
+ min(): T | undefined;
7
+ max(): T | undefined;
8
+ isEmpty(): boolean;
9
+ clear(): void;
10
+ count(): number;
11
+ }
12
+ export declare class BinarySearchTree<T> implements BinarySearchTree<T> {
3
13
  private root;
4
14
  private comparator;
5
15
  constructor(comparator?: Comparator<T>);
6
- /**
7
- * Inserts a value into the BST
8
- */
9
- insert(value: T): void;
10
- /**
11
- * Searches for a value in the BST. Returns true if found, false otherwise
12
- */
13
- find(value: T): boolean;
14
- /**
15
- * Returns the minimum value in the BST, or undefined if tree is empty
16
- */
17
- min(): T | undefined;
18
- /**
19
- * Returns the maximum value in the BST, or undefined if tree is empty
20
- */
21
- max(): T | undefined;
22
- /**
23
- * Removes a value from the BST if it exists
24
- */
25
- remove(value: T): void;
26
16
  private removeNode;
27
17
  private findMin;
28
18
  private isEqual;
29
- /**
30
- * Returns true if the BST is empty, false otherwise
31
- */
32
- empty(): boolean;
33
- /**
34
- * Removes all nodes from the BST
35
- */
36
- clear(): void;
37
- /**
38
- * Returns the number of nodes in the BST
39
- */
40
- count(): number;
41
19
  private countNodes;
42
20
  }
@@ -136,7 +136,7 @@ class BinarySearchTree {
136
136
  /**
137
137
  * Returns true if the BST is empty, false otherwise
138
138
  */
139
- empty() {
139
+ isEmpty() {
140
140
  return this.root === null;
141
141
  }
142
142
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"binary-search-tree.js","sourceRoot":"","sources":["../../lib/binary-search-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-search-tree.js","sourceRoot":"","sources":["../../lib/binary-search-tree.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,15 @@
1
- import { DequeTy } from '../types';
2
- export declare class Deque<T> implements DequeTy<T> {
3
- private items;
4
- constructor();
5
- /**
6
- * Adds an element to the front of the deque
7
- */
1
+ export interface Deque<T> {
8
2
  pushFront(element: T): void;
9
- /**
10
- * Adds an element to the back of the deque
11
- */
12
3
  pushBack(element: T): void;
13
- /**
14
- * Removes and returns the front element from the deque, or undefined if deque is empty
15
- */
16
4
  popFront(): T | undefined;
17
- /**
18
- * Removes and returns the back element from the deque, or undefined if deque is empty
19
- */
20
5
  popBack(): T | undefined;
21
- /**
22
- * Returns the front element without removing it, or undefined if deque is empty
23
- */
24
6
  front(): T | undefined;
25
- /**
26
- * Returns the back element without removing it, or undefined if deque is empty
27
- */
28
7
  back(): T | undefined;
29
- /**
30
- * Returns true if the deque is empty, false otherwise
31
- */
32
- empty(): boolean;
33
- /**
34
- * Returns the number of elements in the deque
35
- */
8
+ isEmpty(): boolean;
36
9
  size(): number;
37
- /**
38
- * Removes all elements from the deque
39
- */
40
10
  clear(): void;
41
11
  }
12
+ export declare class Deque<T> implements Deque<T> {
13
+ private items;
14
+ constructor();
15
+ }
package/dist/lib/deque.js CHANGED
@@ -45,7 +45,7 @@ class Deque {
45
45
  /**
46
46
  * Returns true if the deque is empty, false otherwise
47
47
  */
48
- empty() {
48
+ isEmpty() {
49
49
  return this.items.length === 0;
50
50
  }
51
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deque.js","sourceRoot":"","sources":["../../lib/deque.ts"],"names":[],"mappings":";;;AAGA,MAAa,KAAK;IACR,KAAK,CAAM;IAEnB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAU;QAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAU;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AArED,sBAqEC"}
1
+ {"version":3,"file":"deque.js","sourceRoot":"","sources":["../../lib/deque.ts"],"names":[],"mappings":";;;AAaA,MAAa,KAAK;IACR,KAAK,CAAM;IAEnB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAU;QAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAU;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AArED,sBAqEC"}
@@ -1,15 +1,16 @@
1
- import { HashTableTy } from '../types';
2
- export declare class HashTable<K, V> implements HashTableTy<K, V> {
1
+ export interface HashTable<K, V> {
2
+ insert(key: K, value: V): void;
3
+ get(key: K): V | undefined;
4
+ remove(key: K): boolean;
5
+ size(): number;
6
+ isEmpty(): boolean;
7
+ clear(): void;
8
+ }
9
+ export declare class HashTable<K, V> implements HashTable<K, V> {
3
10
  private table;
4
11
  private count;
5
12
  private readonly capacity;
6
13
  constructor(capacity?: number);
7
14
  private hash;
8
- insert(key: K, value: V): void;
9
- get(key: K): V | undefined;
10
- remove(key: K): boolean;
11
15
  private keysEqual;
12
- size(): number;
13
- empty(): boolean;
14
- clear(): void;
15
16
  }
@@ -133,7 +133,7 @@ class HashTable {
133
133
  size() {
134
134
  return this.count;
135
135
  }
136
- empty() {
136
+ isEmpty() {
137
137
  return this.count === 0;
138
138
  }
139
139
  clear() {
@@ -1 +1 @@
1
- {"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../lib/hash-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../lib/hash-table.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,17 @@
1
- import { LinkedListTy } from '../types';
2
- export declare class LinkedList<T> implements LinkedListTy<T> {
3
- private head;
4
- private tail;
5
- private length;
6
- constructor();
7
- /**
8
- * Adds an element to the end of the list
9
- */
1
+ export interface LinkedList<T> {
10
2
  pushBack(element: T): void;
11
- /**
12
- * Adds an element to the front of the list
13
- */
14
3
  pushFront(element: T): void;
15
- /**
16
- * Inserts an element at the specified position. Returns true if successful, false if position is invalid
17
- */
18
4
  insert(element: T, position: number): boolean;
19
- /**
20
- * Removes the first element that satisfies the predicate. Returns true if an element was removed, false otherwise.
21
- */
22
5
  removeIf(condition: (element: T) => boolean): boolean;
23
- /**
24
- * Removes and returns the element at the specified position. Returns undefined if position is invalid
25
- */
26
6
  removeAt(position: number): T | undefined;
27
- /**
28
- * Returns the element at the specified position without removing it. Returns undefined if position is invalid
29
- */
30
7
  get(position: number): T | undefined;
31
- /**
32
- * Returns true if the list is empty, false otherwise
33
- */
34
- empty(): boolean;
35
- /**
36
- * Returns the number of elements in the list
37
- */
8
+ isEmpty(): boolean;
38
9
  size(): number;
39
- /**
40
- * Removes all elements from the list
41
- */
42
10
  clear(): void;
43
11
  }
12
+ export declare class LinkedList<T> implements LinkedList<T> {
13
+ private head;
14
+ private tail;
15
+ private length;
16
+ constructor();
17
+ }
@@ -150,7 +150,7 @@ class LinkedList {
150
150
  /**
151
151
  * Returns true if the list is empty, false otherwise
152
152
  */
153
- empty() {
153
+ isEmpty() {
154
154
  return this.length === 0;
155
155
  }
156
156
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"linked-list.js","sourceRoot":"","sources":["../../lib/linked-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linked-list.js","sourceRoot":"","sources":["../../lib/linked-list.ts"],"names":[],"mappings":"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"}
package/dist/lib/map.d.ts CHANGED
@@ -1,11 +1,13 @@
1
- import { MapTy, Comparator } from '../types';
2
- export declare class Map<K, V> implements MapTy<K, V> {
3
- private rbTree;
4
- constructor(comparator?: Comparator<K>);
1
+ import { Comparator } from '../types';
2
+ export interface Map<K, V> {
5
3
  insert(key: K, value: V): void;
6
4
  find(key: K): V | undefined;
7
5
  delete(key: K): void;
8
6
  clear(): void;
7
+ isEmpty(): boolean;
9
8
  size(): number;
10
- empty(): boolean;
9
+ }
10
+ export declare class Map<K, V> implements Map<K, V> {
11
+ private rbTree;
12
+ constructor(comparator?: Comparator<K>);
11
13
  }
package/dist/lib/map.js CHANGED
@@ -22,8 +22,8 @@ class Map {
22
22
  size() {
23
23
  return this.rbTree.size();
24
24
  }
25
- empty() {
26
- return this.rbTree.empty();
25
+ isEmpty() {
26
+ return this.rbTree.isEmpty();
27
27
  }
28
28
  }
29
29
  exports.Map = Map;
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../lib/map.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAGhD,MAAa,GAAG;IACN,MAAM,CAAqB;IAEnC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAY,CAAO,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,GAAM,EAAE,KAAQ;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,GAAM;QACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF;AA9BD,kBA8BC"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../lib/map.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAahD,MAAa,GAAG;IACN,MAAM,CAAqB;IAEnC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAY,CAAO,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,GAAM,EAAE,KAAQ;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,GAAM;QACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF;AA9BD,kBA8BC"}
@@ -0,0 +1,35 @@
1
+ export interface Matrix<T> {
2
+ get(row: number, col: number): T | undefined;
3
+ set(row: number, col: number, value: T): void;
4
+ rows(): number;
5
+ columns(): number;
6
+ fill(value: T): void;
7
+ clear(): void;
8
+ isEmpty(): boolean;
9
+ size(): number;
10
+ transpose(): Matrix<T>;
11
+ add(other: Matrix<T>): Matrix<T>;
12
+ subtract(other: Matrix<T>): Matrix<T>;
13
+ multiply(other: Matrix<T>): Matrix<T>;
14
+ map(fn: (value: T, row: number, col: number) => T): Matrix<T>;
15
+ forEach(fn: (value: T, row: number, col: number) => void): void;
16
+ clone(): Matrix<T>;
17
+ toArray(): T[][];
18
+ getRow(row: number): T[];
19
+ getColumn(col: number): T[];
20
+ setRow(row: number, values: T[]): void;
21
+ setColumn(col: number, values: T[]): void;
22
+ resize(rows: number, cols: number): void;
23
+ }
24
+ /**
25
+ * A generic matrix implementation that supports basic matrix operations.
26
+ */
27
+ export declare class Matrix<T> implements Matrix<T> {
28
+ private data;
29
+ private numRows;
30
+ private numCols;
31
+ /**
32
+ * Creates a new matrix with the specified dimensions.
33
+ */
34
+ constructor(rows: number, cols: number);
35
+ }
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Matrix = void 0;
4
+ /**
5
+ * A generic matrix implementation that supports basic matrix operations.
6
+ */
7
+ class Matrix {
8
+ data; // The 2D array storing matrix elements
9
+ numRows; // Number of rows in the matrix
10
+ numCols; // Number of columns in the matrix
11
+ /**
12
+ * Creates a new matrix with the specified dimensions.
13
+ */
14
+ constructor(rows, cols) {
15
+ this.numRows = rows;
16
+ this.numCols = cols;
17
+ this.data = Array(rows).fill(null).map(() => Array(cols).fill(undefined));
18
+ }
19
+ /**
20
+ * Gets the value at the specified position. The value at [row,col] or undefined if out of bounds.
21
+ */
22
+ get(row, col) {
23
+ if (row < 0 || row >= this.numRows || col < 0 || col >= this.numCols) {
24
+ return undefined;
25
+ }
26
+ return this.data[row][col];
27
+ }
28
+ /**
29
+ * Sets a value at the specified position.
30
+ */
31
+ set(row, col, value) {
32
+ if (row < 0 || row >= this.numRows || col < 0 || col >= this.numCols) {
33
+ return;
34
+ }
35
+ this.data[row][col] = value;
36
+ }
37
+ /**
38
+ * Returns the number of rows in the matrix.
39
+ */
40
+ rows() {
41
+ return this.numRows;
42
+ }
43
+ /**
44
+ * Returns the number of columns in the matrix.
45
+ */
46
+ columns() {
47
+ return this.numCols;
48
+ }
49
+ /**
50
+ * Fills the entire matrix with a value.
51
+ */
52
+ fill(value) {
53
+ this.data = Array(this.numRows).fill(null).map(() => Array(this.numCols).fill(value));
54
+ }
55
+ /**
56
+ * Clears the matrix by setting all elements to undefined.
57
+ */
58
+ clear() {
59
+ this.data = Array(this.numRows).fill(null).map(() => Array(this.numCols).fill(undefined));
60
+ }
61
+ /**
62
+ * Checks if the matrix is empty (has zero dimensions).
63
+ */
64
+ isEmpty() {
65
+ return this.numRows === 0 || this.numCols === 0;
66
+ }
67
+ /**
68
+ * Returns the total number of elements in the matrix.
69
+ */
70
+ size() {
71
+ return this.numRows * this.numCols;
72
+ }
73
+ /**
74
+ * Creates a new matrix that is the transpose of this matrix.
75
+ */
76
+ transpose() {
77
+ const result = new Matrix(this.numCols, this.numRows);
78
+ for (let i = 0; i < this.numRows; i++) {
79
+ for (let j = 0; j < this.numCols; j++) {
80
+ result.set(j, i, this.data[i][j]);
81
+ }
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Adds another matrix to this one.
87
+ */
88
+ add(other) {
89
+ if (this.numRows !== other.rows() || this.numCols !== other.columns()) {
90
+ throw new Error('Matrix dimensions must match for addition');
91
+ }
92
+ const result = new Matrix(this.numRows, this.numCols);
93
+ for (let i = 0; i < this.numRows; i++) {
94
+ for (let j = 0; j < this.numCols; j++) {
95
+ const sum = this.data[i][j] + other.get(i, j);
96
+ result.set(i, j, sum);
97
+ }
98
+ }
99
+ return result;
100
+ }
101
+ /**
102
+ * Subtracts another matrix from this one.
103
+ */
104
+ subtract(other) {
105
+ if (this.numRows !== other.rows() || this.numCols !== other.columns()) {
106
+ throw new Error('Matrix dimensions must match for subtraction');
107
+ }
108
+ const result = new Matrix(this.numRows, this.numCols);
109
+ for (let i = 0; i < this.numRows; i++) {
110
+ for (let j = 0; j < this.numCols; j++) {
111
+ const diff = this.data[i][j] - other.get(i, j);
112
+ result.set(i, j, diff);
113
+ }
114
+ }
115
+ return result;
116
+ }
117
+ /**
118
+ * Multiplies this matrix with another matrix.
119
+ */
120
+ multiply(other) {
121
+ if (this.numCols !== other.rows()) {
122
+ throw new Error('Matrix dimensions must be compatible for multiplication');
123
+ }
124
+ const result = new Matrix(this.numRows, other.columns());
125
+ for (let i = 0; i < this.numRows; i++) {
126
+ for (let j = 0; j < other.columns(); j++) {
127
+ let sum = 0;
128
+ for (let k = 0; k < this.numCols; k++) {
129
+ sum += this.data[i][k] * other.get(k, j);
130
+ }
131
+ result.set(i, j, sum);
132
+ }
133
+ }
134
+ return result;
135
+ }
136
+ /**
137
+ * Applies a function to each element and returns a new matrix.
138
+ */
139
+ map(fn) {
140
+ const result = new Matrix(this.numRows, this.numCols);
141
+ for (let i = 0; i < this.numRows; i++) {
142
+ for (let j = 0; j < this.numCols; j++) {
143
+ result.set(i, j, fn(this.data[i][j], i, j));
144
+ }
145
+ }
146
+ return result;
147
+ }
148
+ /**
149
+ * Executes a function for each element in the matrix.
150
+ */
151
+ forEach(fn) {
152
+ for (let i = 0; i < this.numRows; i++) {
153
+ for (let j = 0; j < this.numCols; j++) {
154
+ fn(this.data[i][j], i, j);
155
+ }
156
+ }
157
+ }
158
+ /**
159
+ * Creates a deep copy of this matrix.
160
+ */
161
+ clone() {
162
+ const result = new Matrix(this.numRows, this.numCols);
163
+ for (let i = 0; i < this.numRows; i++) {
164
+ for (let j = 0; j < this.numCols; j++) {
165
+ result.set(i, j, this.data[i][j]);
166
+ }
167
+ }
168
+ return result;
169
+ }
170
+ /**
171
+ * Converts the matrix to a 2D array.
172
+ */
173
+ toArray() {
174
+ return this.data.map(row => [...row]);
175
+ }
176
+ /**
177
+ * Gets a copy of the specified row.
178
+ */
179
+ getRow(row) {
180
+ if (row < 0 || row >= this.numRows) {
181
+ return [];
182
+ }
183
+ return [...this.data[row]];
184
+ }
185
+ /**
186
+ * Gets a copy of the specified column.
187
+ */
188
+ getColumn(col) {
189
+ if (col < 0 || col >= this.numCols) {
190
+ return [];
191
+ }
192
+ return this.data.map(row => row[col]);
193
+ }
194
+ /**
195
+ * Sets values for an entire row.
196
+ */
197
+ setRow(row, values) {
198
+ if (row < 0 || row >= this.numRows || values.length !== this.numCols) {
199
+ return;
200
+ }
201
+ this.data[row] = [...values];
202
+ }
203
+ /**
204
+ * Sets values for an entire column.
205
+ */
206
+ setColumn(col, values) {
207
+ if (col < 0 || col >= this.numCols || values.length !== this.numRows) {
208
+ return;
209
+ }
210
+ for (let i = 0; i < this.numRows; i++) {
211
+ this.data[i][col] = values[i];
212
+ }
213
+ }
214
+ /**
215
+ * Resizes the matrix to new dimensions, preserving existing values where possible.
216
+ */
217
+ resize(rows, cols) {
218
+ const newData = Array(rows).fill(null).map(() => Array(cols).fill(undefined));
219
+ const minRows = Math.min(rows, this.numRows);
220
+ const minCols = Math.min(cols, this.numCols);
221
+ for (let i = 0; i < minRows; i++) {
222
+ for (let j = 0; j < minCols; j++) {
223
+ newData[i][j] = this.data[i][j];
224
+ }
225
+ }
226
+ this.data = newData;
227
+ this.numRows = rows;
228
+ this.numCols = cols;
229
+ }
230
+ }
231
+ exports.Matrix = Matrix;
232
+ //# sourceMappingURL=matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../lib/matrix.ts"],"names":[],"mappings":"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"}