@johnhenry/math 0.0.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 (242) hide show
  1. package/README.md +165 -0
  2. package/dist/Bivector4.d.ts +52 -0
  3. package/dist/Bivector4.d.ts.map +1 -0
  4. package/dist/Bivector4.js +105 -0
  5. package/dist/Bivector4.js.map +1 -0
  6. package/dist/CellGraph.d.ts +259 -0
  7. package/dist/CellGraph.d.ts.map +1 -0
  8. package/dist/CellGraph.js +637 -0
  9. package/dist/CellGraph.js.map +1 -0
  10. package/dist/Clifford4Internal.d.ts +35 -0
  11. package/dist/Clifford4Internal.d.ts.map +1 -0
  12. package/dist/Clifford4Internal.js +86 -0
  13. package/dist/Clifford4Internal.js.map +1 -0
  14. package/dist/Combinatorics.d.ts +61 -0
  15. package/dist/Combinatorics.d.ts.map +1 -0
  16. package/dist/Combinatorics.js +186 -0
  17. package/dist/Combinatorics.js.map +1 -0
  18. package/dist/CombinatoricsGenerators.d.ts +44 -0
  19. package/dist/CombinatoricsGenerators.d.ts.map +1 -0
  20. package/dist/CombinatoricsGenerators.js +148 -0
  21. package/dist/CombinatoricsGenerators.js.map +1 -0
  22. package/dist/ComplexMath.d.ts +46 -0
  23. package/dist/ComplexMath.d.ts.map +1 -0
  24. package/dist/ComplexMath.js +98 -0
  25. package/dist/ComplexMath.js.map +1 -0
  26. package/dist/ComplexNumber.d.ts +174 -0
  27. package/dist/ComplexNumber.d.ts.map +1 -0
  28. package/dist/ComplexNumber.js +443 -0
  29. package/dist/ComplexNumber.js.map +1 -0
  30. package/dist/Cycle.d.ts +42 -0
  31. package/dist/Cycle.d.ts.map +1 -0
  32. package/dist/Cycle.js +120 -0
  33. package/dist/Cycle.js.map +1 -0
  34. package/dist/Decimal.d.ts +45 -0
  35. package/dist/Decimal.d.ts.map +1 -0
  36. package/dist/Decimal.js +135 -0
  37. package/dist/Decimal.js.map +1 -0
  38. package/dist/Distributions.d.ts +55 -0
  39. package/dist/Distributions.d.ts.map +1 -0
  40. package/dist/Distributions.js +222 -0
  41. package/dist/Distributions.js.map +1 -0
  42. package/dist/DualNumber.d.ts +42 -0
  43. package/dist/DualNumber.d.ts.map +1 -0
  44. package/dist/DualNumber.js +91 -0
  45. package/dist/DualNumber.js.map +1 -0
  46. package/dist/Environment.d.ts +44 -0
  47. package/dist/Environment.d.ts.map +1 -0
  48. package/dist/Environment.js +129 -0
  49. package/dist/Environment.js.map +1 -0
  50. package/dist/Expression.d.ts +19 -0
  51. package/dist/Expression.d.ts.map +1 -0
  52. package/dist/Expression.js +43 -0
  53. package/dist/Expression.js.map +1 -0
  54. package/dist/FFT.d.ts +21 -0
  55. package/dist/FFT.d.ts.map +1 -0
  56. package/dist/FFT.js +136 -0
  57. package/dist/FFT.js.map +1 -0
  58. package/dist/GeometricAlgebra4.d.ts +73 -0
  59. package/dist/GeometricAlgebra4.d.ts.map +1 -0
  60. package/dist/GeometricAlgebra4.js +115 -0
  61. package/dist/GeometricAlgebra4.js.map +1 -0
  62. package/dist/Geometry.d.ts +41 -0
  63. package/dist/Geometry.d.ts.map +1 -0
  64. package/dist/Geometry.js +167 -0
  65. package/dist/Geometry.js.map +1 -0
  66. package/dist/Graph.d.ts +72 -0
  67. package/dist/Graph.d.ts.map +1 -0
  68. package/dist/Graph.js +337 -0
  69. package/dist/Graph.js.map +1 -0
  70. package/dist/Graph3DUtils.d.ts +80 -0
  71. package/dist/Graph3DUtils.d.ts.map +1 -0
  72. package/dist/Graph3DUtils.js +156 -0
  73. package/dist/Graph3DUtils.js.map +1 -0
  74. package/dist/GraphUtils.d.ts +67 -0
  75. package/dist/GraphUtils.d.ts.map +1 -0
  76. package/dist/GraphUtils.js +72 -0
  77. package/dist/GraphUtils.js.map +1 -0
  78. package/dist/GroupTheory.d.ts +73 -0
  79. package/dist/GroupTheory.d.ts.map +1 -0
  80. package/dist/GroupTheory.js +194 -0
  81. package/dist/GroupTheory.js.map +1 -0
  82. package/dist/IntUtils.d.ts +33 -0
  83. package/dist/IntUtils.d.ts.map +1 -0
  84. package/dist/IntUtils.js +185 -0
  85. package/dist/IntUtils.js.map +1 -0
  86. package/dist/Interval.d.ts +44 -0
  87. package/dist/Interval.d.ts.map +1 -0
  88. package/dist/Interval.js +165 -0
  89. package/dist/Interval.js.map +1 -0
  90. package/dist/Lattice.d.ts +48 -0
  91. package/dist/Lattice.d.ts.map +1 -0
  92. package/dist/Lattice.js +65 -0
  93. package/dist/Lattice.js.map +1 -0
  94. package/dist/Logic.d.ts +22 -0
  95. package/dist/Logic.d.ts.map +1 -0
  96. package/dist/Logic.js +34 -0
  97. package/dist/Logic.js.map +1 -0
  98. package/dist/MatrixMath.d.ts +71 -0
  99. package/dist/MatrixMath.d.ts.map +1 -0
  100. package/dist/MatrixMath.js +302 -0
  101. package/dist/MatrixMath.js.map +1 -0
  102. package/dist/NumberTheory.d.ts +49 -0
  103. package/dist/NumberTheory.d.ts.map +1 -0
  104. package/dist/NumberTheory.js +230 -0
  105. package/dist/NumberTheory.js.map +1 -0
  106. package/dist/Numerical.d.ts +85 -0
  107. package/dist/Numerical.d.ts.map +1 -0
  108. package/dist/Numerical.js +343 -0
  109. package/dist/Numerical.js.map +1 -0
  110. package/dist/Permutation.d.ts +43 -0
  111. package/dist/Permutation.d.ts.map +1 -0
  112. package/dist/Permutation.js +142 -0
  113. package/dist/Permutation.js.map +1 -0
  114. package/dist/Polygon.d.ts +64 -0
  115. package/dist/Polygon.d.ts.map +1 -0
  116. package/dist/Polygon.js +221 -0
  117. package/dist/Polygon.js.map +1 -0
  118. package/dist/PolynomialRing.d.ts +74 -0
  119. package/dist/PolynomialRing.d.ts.map +1 -0
  120. package/dist/PolynomialRing.js +231 -0
  121. package/dist/PolynomialRing.js.map +1 -0
  122. package/dist/Quaternion.d.ts +37 -0
  123. package/dist/Quaternion.d.ts.map +1 -0
  124. package/dist/Quaternion.js +106 -0
  125. package/dist/Quaternion.js.map +1 -0
  126. package/dist/Rational.d.ts +34 -0
  127. package/dist/Rational.d.ts.map +1 -0
  128. package/dist/Rational.js +136 -0
  129. package/dist/Rational.js.map +1 -0
  130. package/dist/RealMath.d.ts +112 -0
  131. package/dist/RealMath.d.ts.map +1 -0
  132. package/dist/RealMath.js +262 -0
  133. package/dist/RealMath.js.map +1 -0
  134. package/dist/Rotor4.d.ts +180 -0
  135. package/dist/Rotor4.d.ts.map +1 -0
  136. package/dist/Rotor4.js +388 -0
  137. package/dist/Rotor4.js.map +1 -0
  138. package/dist/SpecialFunctions.d.ts +32 -0
  139. package/dist/SpecialFunctions.d.ts.map +1 -0
  140. package/dist/SpecialFunctions.js +161 -0
  141. package/dist/SpecialFunctions.js.map +1 -0
  142. package/dist/SpecialOperator.d.ts +21 -0
  143. package/dist/SpecialOperator.d.ts.map +1 -0
  144. package/dist/SpecialOperator.js +26 -0
  145. package/dist/SpecialOperator.js.map +1 -0
  146. package/dist/Statistics.d.ts +50 -0
  147. package/dist/Statistics.d.ts.map +1 -0
  148. package/dist/Statistics.js +131 -0
  149. package/dist/Statistics.js.map +1 -0
  150. package/dist/StringEvaluator.d.ts +48 -0
  151. package/dist/StringEvaluator.d.ts.map +1 -0
  152. package/dist/StringEvaluator.js +190 -0
  153. package/dist/StringEvaluator.js.map +1 -0
  154. package/dist/Structure.d.ts +130 -0
  155. package/dist/Structure.d.ts.map +1 -0
  156. package/dist/Structure.js +394 -0
  157. package/dist/Structure.js.map +1 -0
  158. package/dist/Symbolic.d.ts +501 -0
  159. package/dist/Symbolic.d.ts.map +1 -0
  160. package/dist/Symbolic.js +4077 -0
  161. package/dist/Symbolic.js.map +1 -0
  162. package/dist/Type.d.ts +31 -0
  163. package/dist/Type.d.ts.map +1 -0
  164. package/dist/Type.js +47 -0
  165. package/dist/Type.js.map +1 -0
  166. package/dist/Utilities.d.ts +27 -0
  167. package/dist/Utilities.d.ts.map +1 -0
  168. package/dist/Utilities.js +47 -0
  169. package/dist/Utilities.js.map +1 -0
  170. package/dist/Vec4.d.ts +39 -0
  171. package/dist/Vec4.d.ts.map +1 -0
  172. package/dist/Vec4.js +82 -0
  173. package/dist/Vec4.js.map +1 -0
  174. package/dist/Vector.d.ts +83 -0
  175. package/dist/Vector.d.ts.map +1 -0
  176. package/dist/Vector.js +173 -0
  177. package/dist/Vector.js.map +1 -0
  178. package/dist/VectorCalculus.d.ts +42 -0
  179. package/dist/VectorCalculus.d.ts.map +1 -0
  180. package/dist/VectorCalculus.js +82 -0
  181. package/dist/VectorCalculus.js.map +1 -0
  182. package/dist/VectorUtils.d.ts +172 -0
  183. package/dist/VectorUtils.d.ts.map +1 -0
  184. package/dist/VectorUtils.js +706 -0
  185. package/dist/VectorUtils.js.map +1 -0
  186. package/dist/differentiation-rules.d.ts +21 -0
  187. package/dist/differentiation-rules.d.ts.map +1 -0
  188. package/dist/differentiation-rules.js +52 -0
  189. package/dist/differentiation-rules.js.map +1 -0
  190. package/dist/index.d.ts +52 -0
  191. package/dist/index.d.ts.map +1 -0
  192. package/dist/index.js +66 -0
  193. package/dist/index.js.map +1 -0
  194. package/package.json +68 -0
  195. package/src/Bivector4.ts +136 -0
  196. package/src/CellGraph.ts +669 -0
  197. package/src/Clifford4Internal.ts +90 -0
  198. package/src/Combinatorics.ts +183 -0
  199. package/src/CombinatoricsGenerators.ts +144 -0
  200. package/src/ComplexMath.ts +162 -0
  201. package/src/ComplexNumber.ts +491 -0
  202. package/src/Cycle.ts +126 -0
  203. package/src/Decimal.ts +145 -0
  204. package/src/Distributions.ts +269 -0
  205. package/src/DualNumber.ts +105 -0
  206. package/src/Environment.ts +127 -0
  207. package/src/Expression.ts +48 -0
  208. package/src/FFT.ts +146 -0
  209. package/src/GeometricAlgebra4.ts +157 -0
  210. package/src/Geometry.ts +173 -0
  211. package/src/Graph.ts +337 -0
  212. package/src/Graph3DUtils.ts +269 -0
  213. package/src/GraphUtils.ts +159 -0
  214. package/src/GroupTheory.ts +214 -0
  215. package/src/IntUtils.ts +200 -0
  216. package/src/Interval.ts +171 -0
  217. package/src/Lattice.ts +87 -0
  218. package/src/Logic.ts +38 -0
  219. package/src/MatrixMath.ts +326 -0
  220. package/src/NumberTheory.ts +228 -0
  221. package/src/Numerical.ts +390 -0
  222. package/src/Permutation.ts +148 -0
  223. package/src/Polygon.ts +229 -0
  224. package/src/PolynomialRing.ts +242 -0
  225. package/src/Quaternion.ts +125 -0
  226. package/src/Rational.ts +148 -0
  227. package/src/RealMath.ts +346 -0
  228. package/src/Rotor4.ts +440 -0
  229. package/src/SpecialFunctions.ts +152 -0
  230. package/src/SpecialOperator.ts +28 -0
  231. package/src/Statistics.ts +170 -0
  232. package/src/StringEvaluator.ts +208 -0
  233. package/src/Structure.ts +481 -0
  234. package/src/Symbolic.ts +4313 -0
  235. package/src/Type.ts +48 -0
  236. package/src/Utilities.ts +49 -0
  237. package/src/Vec4.ts +98 -0
  238. package/src/Vector.ts +189 -0
  239. package/src/VectorCalculus.ts +87 -0
  240. package/src/VectorUtils.ts +797 -0
  241. package/src/differentiation-rules.ts +73 -0
  242. package/src/index.ts +140 -0
@@ -0,0 +1,172 @@
1
+ import { Vector } from "./Vector.ts";
2
+ /**
3
+ * VectorUtils — a large toolbox of static operations over {@link Vector}s and,
4
+ * when they are nested (a vector of equal-length vectors), matrices.
5
+ *
6
+ * Ported from Mallory's ActionScript `VectorUtils`. Method names are camelCased
7
+ * (the AS3 originals were PascalCase). AS3 `Object`-typed callback parameters
8
+ * become proper function types.
9
+ *
10
+ * Bug fixes relative to the AS3 original:
11
+ * - `merge`: when only the *second* argument is a vector, the AS3 code inserted
12
+ * `vectorB` into itself; it now correctly prepends `vectorA`.
13
+ * - `arithmeticBounds`: the AS3 call passed (seed, step, limit) in the wrong
14
+ * slots; it now produces a proper `size`-step sequence from `lower` to `upper`.
15
+ * - `combine`: the AS3 code tested element *truthiness*, so a stored `0` was
16
+ * treated as "missing". It now tests index presence.
17
+ * - `modes`: guards against an empty input instead of dereferencing `counts[0]`.
18
+ * - `Diagnoal`/`MinorDiagnoal` typos corrected to `diagonal`/`minorDiagonal`.
19
+ */
20
+ /** A matrix is a vector whose elements are equal-length vectors. */
21
+ export type Matrix<T> = Vector<Vector<T>>;
22
+ type Predicate<T> = (value: T) => boolean;
23
+ type Unary<T, R> = (value: T) => R;
24
+ type Binary<A, B, R> = (a: A, b: B) => R;
25
+ export declare class VectorUtils {
26
+ static isVector(e: unknown): e is Vector<unknown>;
27
+ static isNotVector(e: unknown): boolean;
28
+ /**
29
+ * True when the vector contains at least one element satisfying
30
+ * `vectorCriterion` (default: is a Vector).
31
+ *
32
+ * Bug fix: the AS3 implementation returned true only when *every* element was
33
+ * a vector, contradicting the library's own glossary ("multi-dimensional … if
34
+ * it contains elements which are also vectors") and breaking {@link flatten}
35
+ * on ragged/mixed vectors. The documented semantics are used here.
36
+ */
37
+ static isMultiDimensional(vector: Vector<unknown>, vectorCriterion?: Predicate<unknown>): boolean;
38
+ /** True when `element` is present, optionally by a custom equality function. */
39
+ static contains<T>(vector: Vector<T>, element: T, equalityFunction?: Binary<T, T, boolean>): boolean;
40
+ /** The longer of two vectors; ties return the first. */
41
+ static longer<T>(alpha: Vector<T>, beta: Vector<T>): Vector<T>;
42
+ /** The shorter of two vectors; ties return the second. */
43
+ static shorter<T>(alpha: Vector<T>, beta: Vector<T>): Vector<T>;
44
+ static isNotMultiDimensional(vector: Vector<unknown>, vectorCriterion?: Predicate<unknown>): boolean;
45
+ static isFlat(vector: Vector<unknown>, vectorCriterion?: Predicate<unknown>): boolean;
46
+ /** Arithmetic sequence `seed, seed+step, …` bounded by `limit`. */
47
+ static arithmeticSequence(seed?: number, limit?: number, step?: number): Vector<number>;
48
+ /** `size` equally-spaced steps from `lower` to `upper` (inclusive). */
49
+ static arithmeticBounds(lower: number, upper: number, size: number): Vector<number>;
50
+ /** Geometric sequence `seed, seed*step, …` bounded by `|limit|`. */
51
+ static geometricSequence(seed?: number, limit?: number, step?: number): Vector<number>;
52
+ /** A vector of `length` copies of `e`. */
53
+ static constantVector<T>(length: number | undefined, e: T): Vector<T>;
54
+ /** Wrap an array into a Vector. */
55
+ static fromArray<T>(array: Iterable<T>): Vector<T>;
56
+ /**
57
+ * Merge two elements into a single vector. Vectors are concatenated; a
58
+ * non-vector is folded into a vector partner; two non-vectors become a pair.
59
+ */
60
+ static merge(vectorA?: unknown, vectorB?: unknown): Vector<unknown>;
61
+ /**
62
+ * Build a sequence recursively. With `keep`, the growing result feeds itself;
63
+ * otherwise a fixed-length sliding window of `seeds` is used. Neither the
64
+ * caller's `seeds` array is mutated (a bug avoided from the AS3 original).
65
+ */
66
+ static recursiveSequence<T>(seeds: readonly T[], formula: (seeds: T[]) => T, endCondition: (seeds: T[] | Vector<T>) => boolean, keep?: boolean): Vector<T>;
67
+ /** Wrap `element` inside `depth` nested vectors. Returns `element` if depth 0. */
68
+ static wrap(element: unknown, depth?: number): unknown;
69
+ /**
70
+ * Placeholder for the AS3 On-Line Encyclopedia of Integer Sequences fetch,
71
+ * which was itself only a hard-coded stub (it "required an internet
72
+ * connection" but never actually made one).
73
+ */
74
+ static fromOEIS(selection?: number): Vector<number>;
75
+ /** Fill a length-`v.length` vector with `unary(i)` for each index. */
76
+ static fillByIndex<R>(v: Vector<unknown>, unaryOperation: Unary<number, R>): Vector<R>;
77
+ /** Map `unaryOperation` over each element. */
78
+ static transform<T, R>(vector: Vector<T>, unaryOperation: Unary<T, R>): Vector<R>;
79
+ /** Replace every element with `element`. */
80
+ static replace<T>(vector: Vector<unknown>, element: T): Vector<T>;
81
+ /** Map `unaryOperation` over every end node (non-vector leaf), recursively. */
82
+ static transformEndNodes(vector: Vector<unknown>, unaryOperation: Unary<unknown, unknown>, endNodeCriterion?: Predicate<unknown>): Vector<unknown>;
83
+ /** Replace every end node with `element`, recursively. */
84
+ static replaceEndNodes(vector: Vector<unknown>, element: unknown, endNodeCriterion?: Predicate<unknown>): Vector<unknown>;
85
+ /** Remove `first` elements from the front and `last` from the back. */
86
+ static trim<T>(vector: Vector<T>, first?: number, last?: number): Vector<T>;
87
+ /** Remove every occurrence of any of `remove` (strict equality). */
88
+ static removeElements<T>(vector: Vector<T>, ...remove: T[]): Vector<T>;
89
+ /** Keep the elements matching `matchCriterion`. */
90
+ static filter<T>(vector: Vector<T>, matchCriterion: Predicate<T>): Vector<T>;
91
+ /** The most frequently occurring element(s). */
92
+ static modes<T>(list: Vector<T>): Vector<T>;
93
+ /** Fully flatten a nested vector of arbitrary, possibly ragged depth. */
94
+ static flatten(vector: Vector<unknown>): Vector<unknown>;
95
+ /** Flatten one level of a vector whose elements share the same depth. */
96
+ static flattenSD(vector: Vector<unknown>): Vector<unknown>;
97
+ /** Flatten a same-depth vector by `depth` levels (fully if `depth` is 0). */
98
+ static flattenSDLevels(vector: Vector<unknown>, depth?: number): Vector<unknown>;
99
+ /** Replace end nodes with copies of the whole vector (one fractal step). */
100
+ static fractal(vector: Vector<unknown>): Vector<unknown>;
101
+ /** Apply {@link fractal} `level` times. */
102
+ static fractalLevels(vector: Vector<unknown>, level?: number): Vector<unknown>;
103
+ /** Insert the elements of `newVector` into `target` at `index`. */
104
+ static insert<T>(target: Vector<T>, newVector: Vector<T>, index?: number): Vector<T>;
105
+ /**
106
+ * Combine two vectors element-wise via `binaryOperation`. Where only one
107
+ * vector has an element, `defaultValue` is used if supplied, otherwise the
108
+ * present element. (Bug fix: presence is tested by index, not truthiness.)
109
+ */
110
+ static combine<A, B, R>(alpha: Vector<A>, beta: Vector<B>, binaryOperation: Binary<A, B, R>, defaultValue?: R): Vector<R | A | B>;
111
+ static length(list: Vector<unknown>): number;
112
+ /** Reduce a vector to a single value via a binary operation (left fold). */
113
+ static collapse<T>(vector: Vector<T>, binaryOperation: Binary<T, T, T>, defaultObject?: T | null): T | null;
114
+ /** Count elements satisfying `matchCriterion`. */
115
+ static matches<T>(vector: Vector<T>, matchCriterion: Predicate<T>): number;
116
+ /** Count occurrences of `matchElement` (strict equality). */
117
+ static count<T>(vector: Vector<T>, matchElement: T): number;
118
+ /**
119
+ * Lengths of consecutive runs matching `matchCriterion`. Unlike the AS3
120
+ * original, a spurious trailing `0` (left over when the input ends on a
121
+ * non-matching run) is trimmed.
122
+ */
123
+ static consecutiveMatches<T>(vector: Vector<T>, matchCriterion: Predicate<T>): number[];
124
+ /** Depth of a same-depth nested vector. */
125
+ static nestedDepthSD(vector: Vector<unknown>, initialDepth?: number): number;
126
+ /** Row separator used by {@link matrixString}. */
127
+ static readonly RowSeperator = ",\r";
128
+ /** True when `vector` is a matrix (rows are equal-length vectors). */
129
+ static isMatrix(vector: Vector<unknown>): boolean;
130
+ static width(vector: Matrix<unknown>): number;
131
+ static height(vector: Matrix<unknown>): number;
132
+ /** An `height`×`width` matrix filled with `e`. */
133
+ static constantMatrix<T>(height: number | undefined, width: number | undefined, e: T): Matrix<T>;
134
+ /** Identity-like matrix with `one` on the diagonal and `zero` elsewhere. */
135
+ static generateIdentity<T>(height: number | undefined, width: number | undefined, one: T, zero: T): Matrix<T>;
136
+ /** Wrap a vector as a single-row matrix. */
137
+ static vectorToMatrixRow<T>(vector: Vector<T>): Matrix<T>;
138
+ /** Wrap a vector as a single-column matrix. */
139
+ static vectorToMatrixColumn<T>(vector: Vector<T>): Matrix<T>;
140
+ /** Fill each cell of a matrix with `binaryOperation(i, j)`. */
141
+ static fillMatrixByIndex<R>(m: Matrix<unknown>, binaryOperation: Binary<number, number, R>): Matrix<R>;
142
+ /** Replace every cell of a matrix with `element`. */
143
+ static replaceMatrix<T>(m: Matrix<unknown>, element: T): Matrix<T>;
144
+ /** Transpose a matrix. */
145
+ static transpose<T>(vector: Matrix<T>): Matrix<T>;
146
+ /** Return the `index`-th row as a single-row matrix. */
147
+ static getRow<T>(m: Matrix<T>, index?: number): Matrix<T>;
148
+ /** Return the `index`-th column as a single-row matrix. */
149
+ static getColumn<T>(m: Matrix<T>, index?: number): Matrix<T>;
150
+ static rowRemoved<T>(m: Matrix<T>, index?: number): Matrix<T>;
151
+ static columnRemoved<T>(m: Matrix<T>, index?: number): Matrix<T>;
152
+ static rowInserted<T>(target: Matrix<T>, inserted: Vector<T>, index?: number): Matrix<T>;
153
+ static columnInserted<T>(target: Matrix<T>, inserted: Vector<T>, index?: number): Matrix<T>;
154
+ static mergeRows<T>(vectorA: Vector<T>, vectorB: Vector<T>): Matrix<T>;
155
+ static mergeColumns<T>(vectorA: Matrix<T>, vectorB: Matrix<T>): Matrix<T>;
156
+ static rowSet<T>(target: Matrix<T>, newVector: Vector<T>, index?: number): Matrix<T>;
157
+ static columnSet<T>(target: Matrix<T>, newVector: Vector<T>, index?: number): Matrix<T>;
158
+ /** Overlay `block` onto `target` with its top-left corner at (i, j). */
159
+ static placeBlock<T>(target: Matrix<T>, block: Matrix<T>, i: number, j: number): Matrix<T>;
160
+ /** Expand a block matrix (matrix of matrices) into a flat matrix. */
161
+ static breakBlock<T>(M: Matrix<Matrix<T>>): Matrix<T>;
162
+ /** Pad a matrix with `element`, optionally interleaving and/or bordering. */
163
+ static pad<T>(matrix: Matrix<T>, element?: T | null, padRows?: boolean, padCols?: boolean, top?: boolean, bottom?: boolean, left?: boolean, right?: boolean): Matrix<T>;
164
+ /** The main (or `off`-set) diagonal of a matrix as a vector. */
165
+ static diagonal<T>(M: Matrix<T>, off?: number): Vector<T>;
166
+ /** The anti-diagonal (or `off`-set) of a matrix as a vector. */
167
+ static minorDiagonal<T>(M: Matrix<T>, off?: number): Vector<T>;
168
+ /** Render a matrix as a nicely aligned multi-line string. */
169
+ static matrixString(vector: Matrix<unknown>, minSpace?: number, center?: number, seperator?: string, leftBracket?: string, rightBracket?: string, rowSeperator?: string, openingBracket?: string, closingBracket?: string): string;
170
+ }
171
+ export {};
172
+ //# sourceMappingURL=VectorUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorUtils.d.ts","sourceRoot":"","sources":["../src/VectorUtils.ts"],"names":[],"mappings":"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"}