@step-wise/polynomials 0.1.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.
- package/LICENSE +21 -0
- package/README.md +117 -0
- package/dist/checks.d.ts +6 -0
- package/dist/checks.d.ts.map +1 -0
- package/dist/checks.js +49 -0
- package/dist/comparison.d.ts +4 -0
- package/dist/comparison.d.ts.map +1 -0
- package/dist/comparison.js +20 -0
- package/dist/conversion.d.ts +3 -0
- package/dist/conversion.d.ts.map +1 -0
- package/dist/conversion.js +10 -0
- package/dist/creation.d.ts +4 -0
- package/dist/creation.d.ts.map +1 -0
- package/dist/creation.js +31 -0
- package/dist/display.d.ts +3 -0
- package/dist/display.d.ts.map +1 -0
- package/dist/display.js +17 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/manipulation.d.ts +11 -0
- package/dist/manipulation.d.ts.map +1 -0
- package/dist/manipulation.js +76 -0
- package/dist/restructuring.d.ts +6 -0
- package/dist/restructuring.d.ts.map +1 -0
- package/dist/restructuring.js +59 -0
- package/dist/support.d.ts +4 -0
- package/dist/support.d.ts.map +1 -0
- package/dist/support.js +10 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/package.json +47 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Step-Wise
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# @step-wise/polynomials
|
|
2
|
+
|
|
3
|
+
Utilities for representing and manipulating sparse multivariable polynomials such as `2+4*b+3*a+5*a*b`. Only nonzero terms are stored.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install @step-wise/polynomials
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Representation
|
|
14
|
+
|
|
15
|
+
A polynomial contains an ordered list of variables and a sparse list of terms:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import type { Polynomial } from '@step-wise/polynomials'
|
|
19
|
+
|
|
20
|
+
const polynomial: Polynomial = {
|
|
21
|
+
variables: ['a', 'b'],
|
|
22
|
+
terms: [
|
|
23
|
+
{ coefficient: 2, exponents: [0, 0] },
|
|
24
|
+
{ coefficient: 4, exponents: [0, 1] },
|
|
25
|
+
{ coefficient: 3, exponents: [1, 0] },
|
|
26
|
+
{ coefficient: 5, exponents: [1, 1] },
|
|
27
|
+
],
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Each exponent corresponds to the variable at the same index. For example, `{ coefficient: 5, exponents: [1, 1] }` represents `5*a*b`.
|
|
32
|
+
|
|
33
|
+
Polynomials use a canonical shape:
|
|
34
|
+
|
|
35
|
+
- Terms have nonzero, finite coefficients.
|
|
36
|
+
- Exponents are non-negative safe integers.
|
|
37
|
+
- Every term has one exponent per variable.
|
|
38
|
+
- Terms are unique and sorted by their exponent arrays.
|
|
39
|
+
- The zero polynomial has no terms. It may retain a variable list, while `createConstantPolynomial(0)` produces `{ terms: [], variables: [] }`.
|
|
40
|
+
- A nonzero constant has no variables and one term, such as `{ terms: [{ coefficient: 5, exponents: [] }], variables: [] }`.
|
|
41
|
+
|
|
42
|
+
Use `createPolynomial` instead of assembling this shape manually. It validates the input, combines like terms, removes zero terms and sorts the result.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Quick start
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { createPolynomial, evaluatePolynomial, polynomialToString } from '@step-wise/polynomials'
|
|
49
|
+
|
|
50
|
+
const polynomial = createPolynomial([
|
|
51
|
+
{ coefficient: 2, exponents: [0, 0] },
|
|
52
|
+
{ coefficient: 4, exponents: [0, 1] },
|
|
53
|
+
{ coefficient: 3, exponents: [1, 0] },
|
|
54
|
+
{ coefficient: 5, exponents: [1, 1] },
|
|
55
|
+
], ['a', 'b'])
|
|
56
|
+
|
|
57
|
+
polynomialToString(polynomial) // 2+4*b+3*a+5*a*b
|
|
58
|
+
evaluatePolynomial(polynomial, { a: 2, b: 3 }) // 50
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## Creation and validation
|
|
63
|
+
|
|
64
|
+
- `createPolynomial(terms, variables)` creates a canonical sparse polynomial.
|
|
65
|
+
- `createConstantPolynomial(value)` creates a constant polynomial.
|
|
66
|
+
- `ensurePolynomial(value)` validates that a value is a canonical polynomial and returns it.
|
|
67
|
+
- `ensurePolynomialVariables`, `ensurePolynomialExponents` and `ensurePolynomialTerm` validate the corresponding constituent types.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## Manipulation
|
|
71
|
+
|
|
72
|
+
- `negatePolynomial(polynomial)` returns `-f`.
|
|
73
|
+
- `scalePolynomial(polynomial, factor)` multiplies every coefficient by a factor.
|
|
74
|
+
- `addConstantToPolynomial(polynomial, value)` changes the constant term.
|
|
75
|
+
- `oneMinusPolynomial(polynomial)` returns `1-f`.
|
|
76
|
+
- `addPolynomials(polynomials, variables?)` adds one or more polynomials.
|
|
77
|
+
- `subtractPolynomials(a, b, variables?)` returns `a-b`.
|
|
78
|
+
- `multiplyPolynomials(polynomials, variables?)` multiplies one or more polynomials.
|
|
79
|
+
- `raisePolynomialToPower(polynomial, exponent)` expands a non-negative integer power.
|
|
80
|
+
- `getPolynomialPowers(polynomial, maxExponent)` returns powers from zero through the maximum, inclusive.
|
|
81
|
+
|
|
82
|
+
The optional `variables` argument on addition, subtraction and multiplication determines the variable order of the result. Without it, the functions derive an order from their operands.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## Variables, substitution and moments
|
|
86
|
+
|
|
87
|
+
- `alignPolynomialVariables(polynomial, variables)` changes the variable order and can add or remove inactive variables.
|
|
88
|
+
- `substitutePolynomial(polynomial, values)` substitutes the provided variables and returns the remaining polynomial.
|
|
89
|
+
- `evaluatePolynomial(polynomial, values)` requires a value for every variable and returns a number.
|
|
90
|
+
- `substitutePolynomialMoments(polynomial, getMoment, variables?)` substitutes independent moments returned by `getMoment(variable, exponent)`.
|
|
91
|
+
|
|
92
|
+
Moment substitution uses the independence identity `E[X^a * Y^b] = E[X^a] * E[Y^b]`. Moments requested more than once during one substitution are cached.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## Comparison and display
|
|
96
|
+
|
|
97
|
+
- `comparePolynomialTerms(a, b)` compares two canonical term lists with floating-point tolerance for coefficients.
|
|
98
|
+
- `comparePolynomials(a, b, options?)` compares complete polynomials. Variable reordering is allowed by default; pass `{ allowVariableReordering: false }` to require the same order.
|
|
99
|
+
- `polynomialToString(polynomial)` creates a plain-text representation.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## Dense univariate conversion
|
|
103
|
+
|
|
104
|
+
`getUnivariatePolynomialCoefficients(polynomial)` converts a polynomial with exactly one variable to a dense coefficient array ordered by exponent. Missing powers become zeroes:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
import { createPolynomial, getUnivariatePolynomialCoefficients } from '@step-wise/polynomials'
|
|
108
|
+
|
|
109
|
+
const polynomial = createPolynomial([
|
|
110
|
+
{ coefficient: 2, exponents: [0] },
|
|
111
|
+
{ coefficient: 5, exponents: [3] },
|
|
112
|
+
], ['x'])
|
|
113
|
+
|
|
114
|
+
getUnivariatePolynomialCoefficients(polynomial) // [2, 0, 0, 5]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
This helper is intended for interoperability with APIs that require dense univariate coefficients. It rejects constant and multivariable polynomials.
|
package/dist/checks.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Polynomial, type PolynomialExponents, type PolynomialTerm, type PolynomialVariables } from './types.ts';
|
|
2
|
+
export declare function ensurePolynomialVariables(value: unknown): PolynomialVariables;
|
|
3
|
+
export declare function ensurePolynomialExponents(value: unknown, numberOfVariables: number): PolynomialExponents;
|
|
4
|
+
export declare function ensurePolynomialTerm(value: unknown, numberOfVariables: number): PolynomialTerm;
|
|
5
|
+
export declare function ensurePolynomial(value: unknown): Polynomial;
|
|
6
|
+
//# sourceMappingURL=checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGrH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAK7E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,mBAAmB,CAMxG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAO9F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAY3D"}
|
package/dist/checks.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { comparePolynomialExponents } from './support.js';
|
|
2
|
+
export function ensurePolynomialVariables(value) {
|
|
3
|
+
if (!Array.isArray(value) || !value.every(variable => typeof variable === 'string'))
|
|
4
|
+
throw new TypeError('Invalid polynomial variables: expected an array of strings.');
|
|
5
|
+
if (value.some(variable => variable.trim().length === 0))
|
|
6
|
+
throw new TypeError('Invalid polynomial variables: variable names cannot be empty.');
|
|
7
|
+
if (new Set(value).size !== value.length)
|
|
8
|
+
throw new RangeError('Invalid polynomial variables: variable names must be unique.');
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
export function ensurePolynomialExponents(value, numberOfVariables) {
|
|
12
|
+
if (!Number.isSafeInteger(numberOfVariables) || numberOfVariables < 0)
|
|
13
|
+
throw new RangeError('Invalid number of polynomial variables: expected a non-negative safe integer.');
|
|
14
|
+
if (!Array.isArray(value))
|
|
15
|
+
throw new TypeError('Invalid polynomial exponents: expected an array.');
|
|
16
|
+
if (value.length !== numberOfVariables)
|
|
17
|
+
throw new RangeError(`Invalid polynomial exponents: expected ${numberOfVariables} exponents, but received ${value.length}.`);
|
|
18
|
+
if (!value.every(exponent => Number.isSafeInteger(exponent) && exponent >= 0))
|
|
19
|
+
throw new RangeError('Invalid polynomial exponents: expected non-negative safe integers.');
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
export function ensurePolynomialTerm(value, numberOfVariables) {
|
|
23
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
24
|
+
throw new TypeError('Invalid polynomial term: expected an object.');
|
|
25
|
+
const term = value;
|
|
26
|
+
if (typeof term.coefficient !== 'number' || !Number.isFinite(term.coefficient))
|
|
27
|
+
throw new TypeError('Invalid polynomial term: coefficient must be a finite number.');
|
|
28
|
+
if (term.coefficient === 0)
|
|
29
|
+
throw new RangeError('Invalid polynomial term: coefficient cannot be zero.');
|
|
30
|
+
ensurePolynomialExponents(term.exponents, numberOfVariables);
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
export function ensurePolynomial(value) {
|
|
34
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
35
|
+
throw new TypeError('Invalid polynomial: expected an object.');
|
|
36
|
+
const polynomial = value;
|
|
37
|
+
const variables = ensurePolynomialVariables(polynomial.variables);
|
|
38
|
+
if (!Array.isArray(polynomial.terms))
|
|
39
|
+
throw new TypeError('Invalid polynomial: terms must be an array.');
|
|
40
|
+
const terms = polynomial.terms.map(term => ensurePolynomialTerm(term, variables.length));
|
|
41
|
+
terms.slice(1).forEach((term, index) => {
|
|
42
|
+
const comparison = comparePolynomialExponents(terms[index].exponents, term.exponents);
|
|
43
|
+
if (comparison === 0)
|
|
44
|
+
throw new RangeError('Invalid polynomial: terms cannot have duplicate exponent vectors.');
|
|
45
|
+
if (comparison > 0)
|
|
46
|
+
throw new RangeError('Invalid polynomial: terms must be ordered by their exponent vectors.');
|
|
47
|
+
});
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Polynomial, type PolynomialComparisonOptions, type PolynomialTerms } from './types.ts';
|
|
2
|
+
export declare function comparePolynomialTerms(terms1: PolynomialTerms, terms2: PolynomialTerms): boolean;
|
|
3
|
+
export declare function comparePolynomials(polynomial1: Polynomial, polynomial2: Polynomial, options?: PolynomialComparisonOptions): boolean;
|
|
4
|
+
//# sourceMappingURL=comparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison.d.ts","sourceRoot":"","sources":["../src/comparison.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,2BAA2B,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAIpG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAOhG;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAMvI"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { approximatelyEqual } from '@step-wise/js-utils';
|
|
2
|
+
import { ensurePolynomial } from './checks.js';
|
|
3
|
+
import { alignPolynomialVariables } from './restructuring.js';
|
|
4
|
+
export function comparePolynomialTerms(terms1, terms2) {
|
|
5
|
+
return terms1.length === terms2.length && terms1.every((term1, termIndex) => {
|
|
6
|
+
const term2 = terms2[termIndex];
|
|
7
|
+
return term1.exponents.length === term2.exponents.length
|
|
8
|
+
&& term1.exponents.every((exponent, exponentIndex) => exponent === term2.exponents[exponentIndex])
|
|
9
|
+
&& approximatelyEqual(term1.coefficient, term2.coefficient);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export function comparePolynomials(polynomial1, polynomial2, options = {}) {
|
|
13
|
+
ensurePolynomial(polynomial1);
|
|
14
|
+
ensurePolynomial(polynomial2);
|
|
15
|
+
if (polynomial1.variables.length !== polynomial2.variables.length || polynomial1.variables.some(variable => !polynomial2.variables.includes(variable)))
|
|
16
|
+
return false;
|
|
17
|
+
if (options.allowVariableReordering === false)
|
|
18
|
+
return polynomial1.variables.every((variable, index) => variable === polynomial2.variables[index]) && comparePolynomialTerms(polynomial1.terms, polynomial2.terms);
|
|
19
|
+
return comparePolynomialTerms(polynomial1.terms, alignPolynomialVariables(polynomial2, polynomial1.variables).terms);
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,wBAAgB,mCAAmC,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAOpF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ensurePolynomial } from './checks.js';
|
|
2
|
+
export function getUnivariatePolynomialCoefficients(polynomial) {
|
|
3
|
+
ensurePolynomial(polynomial);
|
|
4
|
+
if (polynomial.variables.length !== 1)
|
|
5
|
+
throw new RangeError(`Cannot get univariate polynomial coefficients: expected exactly one variable, but received ${polynomial.variables.length}.`);
|
|
6
|
+
const degree = polynomial.terms.at(-1)?.exponents[0] ?? 0;
|
|
7
|
+
const coefficients = Array.from({ length: degree + 1 }).fill(0);
|
|
8
|
+
polynomial.terms.forEach(term => { coefficients[term.exponents[0]] = term.coefficient; });
|
|
9
|
+
return coefficients;
|
|
10
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Polynomial, type PolynomialTerms, type PolynomialVariables } from './types.ts';
|
|
2
|
+
export declare function createPolynomial(terms: PolynomialTerms, variables: PolynomialVariables): Polynomial;
|
|
3
|
+
export declare function createConstantPolynomial(value: number): Polynomial;
|
|
4
|
+
//# sourceMappingURL=creation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../src/creation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAA4B,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAItH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,GAAG,UAAU,CAmBnG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAGlE"}
|
package/dist/creation.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ensureNumber } from '@step-wise/js-utils';
|
|
2
|
+
import { comparePolynomialExponents, getPolynomialExponentsKey } from './support.js';
|
|
3
|
+
import { ensurePolynomial, ensurePolynomialExponents, ensurePolynomialVariables } from './checks.js';
|
|
4
|
+
export function createPolynomial(terms, variables) {
|
|
5
|
+
ensurePolynomialVariables(variables);
|
|
6
|
+
if (!Array.isArray(terms))
|
|
7
|
+
throw new TypeError('Invalid polynomial terms: expected an array.');
|
|
8
|
+
const termsByExponents = new Map();
|
|
9
|
+
terms.forEach(term => {
|
|
10
|
+
if (typeof term !== 'object' || term === null || Array.isArray(term))
|
|
11
|
+
throw new TypeError('Invalid polynomial term: expected an object.');
|
|
12
|
+
const coefficient = ensureNumber(term.coefficient);
|
|
13
|
+
const exponents = [...ensurePolynomialExponents(term.exponents, variables.length)];
|
|
14
|
+
if (coefficient === 0)
|
|
15
|
+
return;
|
|
16
|
+
const key = getPolynomialExponentsKey(exponents);
|
|
17
|
+
const combinedCoefficient = (termsByExponents.get(key)?.coefficient ?? 0) + coefficient;
|
|
18
|
+
if (!Number.isFinite(combinedCoefficient))
|
|
19
|
+
throw new RangeError('Invalid polynomial: combining terms produced a non-finite coefficient.');
|
|
20
|
+
if (combinedCoefficient === 0)
|
|
21
|
+
termsByExponents.delete(key);
|
|
22
|
+
else
|
|
23
|
+
termsByExponents.set(key, { coefficient: combinedCoefficient, exponents });
|
|
24
|
+
});
|
|
25
|
+
const canonicalTerms = [...termsByExponents.values()].sort((term1, term2) => comparePolynomialExponents(term1.exponents, term2.exponents));
|
|
26
|
+
return ensurePolynomial({ terms: canonicalTerms, variables });
|
|
27
|
+
}
|
|
28
|
+
export function createConstantPolynomial(value) {
|
|
29
|
+
const coefficient = ensureNumber(value);
|
|
30
|
+
return createPolynomial(coefficient === 0 ? [] : [{ coefficient, exponents: [] }], []);
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAiD,MAAM,YAAY,CAAA;AAG3F,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAKjE"}
|
package/dist/display.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ensurePolynomial } from './checks.js';
|
|
2
|
+
export function polynomialToString(polynomial) {
|
|
3
|
+
ensurePolynomial(polynomial);
|
|
4
|
+
if (polynomial.terms.length === 0)
|
|
5
|
+
return '0';
|
|
6
|
+
const result = polynomial.terms.map(term => termToString(term, polynomial.variables)).join('');
|
|
7
|
+
return result[0] === '+' ? result.slice(1) : result;
|
|
8
|
+
}
|
|
9
|
+
function termToString(term, variables) {
|
|
10
|
+
const variablePart = term.exponents
|
|
11
|
+
.map((exponent, index) => exponent === 0 ? undefined : exponent === 1 ? variables[index] : `${variables[index]}^${exponent}`)
|
|
12
|
+
.filter(factor => factor !== undefined)
|
|
13
|
+
.join('*');
|
|
14
|
+
if (Math.abs(term.coefficient) === 1)
|
|
15
|
+
return `${term.coefficient > 0 ? '+' : '-'}${variablePart === '' ? '1' : variablePart}`;
|
|
16
|
+
return `${term.coefficient > 0 ? '+' : ''}${term.coefficient}${variablePart === '' ? '' : '*'}${variablePart}`;
|
|
17
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './types.ts';
|
|
2
|
+
export * from './checks.ts';
|
|
3
|
+
export * from './creation.ts';
|
|
4
|
+
export * from './conversion.ts';
|
|
5
|
+
export * from './display.ts';
|
|
6
|
+
export * from './restructuring.ts';
|
|
7
|
+
export * from './comparison.ts';
|
|
8
|
+
export * from './manipulation.ts';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './checks.js';
|
|
3
|
+
export * from './creation.js';
|
|
4
|
+
export * from './conversion.js';
|
|
5
|
+
export * from './display.js';
|
|
6
|
+
export * from './restructuring.js';
|
|
7
|
+
export * from './comparison.js';
|
|
8
|
+
export * from './manipulation.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Polynomial, type PolynomialVariables } from './types.ts';
|
|
2
|
+
export declare function negatePolynomial(polynomial: Polynomial): Polynomial;
|
|
3
|
+
export declare function addConstantToPolynomial(polynomial: Polynomial, addition: number): Polynomial;
|
|
4
|
+
export declare function scalePolynomial(polynomial: Polynomial, factor: number): Polynomial;
|
|
5
|
+
export declare function oneMinusPolynomial(polynomial: Polynomial): Polynomial;
|
|
6
|
+
export declare function addPolynomials(polynomials: readonly Polynomial[], variables?: PolynomialVariables): Polynomial;
|
|
7
|
+
export declare function subtractPolynomials(minuend: Polynomial, subtrahend: Polynomial, variables?: PolynomialVariables): Polynomial;
|
|
8
|
+
export declare function multiplyPolynomials(polynomials: readonly Polynomial[], variables?: PolynomialVariables): Polynomial;
|
|
9
|
+
export declare function raisePolynomialToPower(polynomial: Polynomial, exponent: number): Polynomial;
|
|
10
|
+
export declare function getPolynomialPowers(polynomial: Polynomial, maxExponent: number): Polynomial[];
|
|
11
|
+
//# sourceMappingURL=manipulation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manipulation.d.ts","sourceRoot":"","sources":["../src/manipulation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAwB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAK5F,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAEnE;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO5F;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAIlF;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAErE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAM9G;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAE5H;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAQnH;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAW3F;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,EAAE,CAS7F"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ensureInteger, ensureNumber, repeat, union } from '@step-wise/js-utils';
|
|
2
|
+
import { ensurePolynomial, ensurePolynomialVariables } from './checks.js';
|
|
3
|
+
import { createPolynomial } from './creation.js';
|
|
4
|
+
import { alignPolynomialVariables } from './restructuring.js';
|
|
5
|
+
export function negatePolynomial(polynomial) {
|
|
6
|
+
return scalePolynomial(polynomial, -1);
|
|
7
|
+
}
|
|
8
|
+
export function addConstantToPolynomial(polynomial, addition) {
|
|
9
|
+
ensurePolynomial(polynomial);
|
|
10
|
+
const ensuredAddition = ensureNumber(addition);
|
|
11
|
+
return createPolynomial([
|
|
12
|
+
...polynomial.terms,
|
|
13
|
+
{ coefficient: ensuredAddition, exponents: polynomial.variables.map(() => 0) },
|
|
14
|
+
], polynomial.variables);
|
|
15
|
+
}
|
|
16
|
+
export function scalePolynomial(polynomial, factor) {
|
|
17
|
+
ensurePolynomial(polynomial);
|
|
18
|
+
const ensuredFactor = ensureNumber(factor);
|
|
19
|
+
return createPolynomial(polynomial.terms.map(term => ({ coefficient: term.coefficient * ensuredFactor, exponents: term.exponents })), polynomial.variables);
|
|
20
|
+
}
|
|
21
|
+
export function oneMinusPolynomial(polynomial) {
|
|
22
|
+
return addConstantToPolynomial(negatePolynomial(polynomial), 1);
|
|
23
|
+
}
|
|
24
|
+
export function addPolynomials(polynomials, variables) {
|
|
25
|
+
if (polynomials.length === 0)
|
|
26
|
+
throw new RangeError('Cannot add polynomials: expected at least one polynomial.');
|
|
27
|
+
polynomials.forEach(ensurePolynomial);
|
|
28
|
+
variables ??= [...union(...polynomials.map(polynomial => new Set(polynomial.variables)))];
|
|
29
|
+
ensurePolynomialVariables(variables);
|
|
30
|
+
return createPolynomial(polynomials.flatMap(polynomial => alignPolynomialVariables(polynomial, variables).terms), variables);
|
|
31
|
+
}
|
|
32
|
+
export function subtractPolynomials(minuend, subtrahend, variables) {
|
|
33
|
+
return addPolynomials([minuend, negatePolynomial(subtrahend)], variables);
|
|
34
|
+
}
|
|
35
|
+
export function multiplyPolynomials(polynomials, variables) {
|
|
36
|
+
if (polynomials.length === 0)
|
|
37
|
+
throw new RangeError('Cannot multiply polynomials: expected at least one polynomial.');
|
|
38
|
+
polynomials.forEach(ensurePolynomial);
|
|
39
|
+
variables ??= [...union(...polynomials.map(polynomial => new Set(polynomial.variables)))];
|
|
40
|
+
ensurePolynomialVariables(variables);
|
|
41
|
+
const alignedPolynomials = polynomials.map(polynomial => alignPolynomialVariables(polynomial, variables));
|
|
42
|
+
const identity = createPolynomial([{ coefficient: 1, exponents: variables.map(() => 0) }], variables);
|
|
43
|
+
return alignedPolynomials.reduce(multiplyAlignedPolynomials, identity);
|
|
44
|
+
}
|
|
45
|
+
export function raisePolynomialToPower(polynomial, exponent) {
|
|
46
|
+
ensurePolynomial(polynomial);
|
|
47
|
+
let remainingExponent = ensureInteger(exponent, { nonNegative: true, safe: true });
|
|
48
|
+
let result = createPolynomial([{ coefficient: 1, exponents: polynomial.variables.map(() => 0) }], polynomial.variables);
|
|
49
|
+
let factor = polynomial;
|
|
50
|
+
while (remainingExponent > 0) {
|
|
51
|
+
if (remainingExponent % 2 === 1)
|
|
52
|
+
result = multiplyAlignedPolynomials(result, factor);
|
|
53
|
+
remainingExponent = Math.floor(remainingExponent / 2);
|
|
54
|
+
if (remainingExponent > 0)
|
|
55
|
+
factor = multiplyAlignedPolynomials(factor, factor);
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
export function getPolynomialPowers(polynomial, maxExponent) {
|
|
60
|
+
ensurePolynomial(polynomial);
|
|
61
|
+
const ensuredMaxExponent = ensureInteger(maxExponent, { nonNegative: true, safe: true });
|
|
62
|
+
const identity = createPolynomial([{ coefficient: 1, exponents: polynomial.variables.map(() => 0) }], polynomial.variables);
|
|
63
|
+
let power = identity;
|
|
64
|
+
return repeat(ensuredMaxExponent + 1, exponent => {
|
|
65
|
+
if (exponent > 0)
|
|
66
|
+
power = multiplyAlignedPolynomials(power, polynomial);
|
|
67
|
+
return power;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function multiplyAlignedPolynomials(polynomial1, polynomial2) {
|
|
71
|
+
const terms = polynomial1.terms.flatMap(term1 => polynomial2.terms.map(term2 => ({
|
|
72
|
+
coefficient: term1.coefficient * term2.coefficient,
|
|
73
|
+
exponents: term1.exponents.map((exponent, index) => exponent + term2.exponents[index]),
|
|
74
|
+
})));
|
|
75
|
+
return createPolynomial(terms, polynomial1.variables);
|
|
76
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Polynomial, type PolynomialValues, type PolynomialVariable, type PolynomialVariables } from './types.ts';
|
|
2
|
+
export declare function alignPolynomialVariables(polynomial: Polynomial, variables: PolynomialVariables): Polynomial;
|
|
3
|
+
export declare function substitutePolynomial(polynomial: Polynomial, values: PolynomialValues): Polynomial;
|
|
4
|
+
export declare function evaluatePolynomial(polynomial: Polynomial, values: PolynomialValues): number;
|
|
5
|
+
export declare function substitutePolynomialMoments(polynomial: Polynomial, getMoment: (variable: PolynomialVariable, exponent: number) => number, variables?: PolynomialVariables): Polynomial;
|
|
6
|
+
//# sourceMappingURL=restructuring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restructuring.d.ts","sourceRoot":"","sources":["../src/restructuring.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAItH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,GAAG,UAAU,CAa3G;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAKjG;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAM3F;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,SAAS,GAAE,mBAA0C,GAAG,UAAU,CAc5M"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ensureNumber } from '@step-wise/js-utils';
|
|
2
|
+
import { ensurePolynomial, ensurePolynomialVariables } from './checks.js';
|
|
3
|
+
import { createPolynomial } from './creation.js';
|
|
4
|
+
export function alignPolynomialVariables(polynomial, variables) {
|
|
5
|
+
ensurePolynomial(polynomial);
|
|
6
|
+
ensurePolynomialVariables(variables);
|
|
7
|
+
polynomial.variables.forEach((variable, variableIndex) => {
|
|
8
|
+
if (!variables.includes(variable) && polynomial.terms.some(term => term.exponents[variableIndex] !== 0))
|
|
9
|
+
throw new Error(`Cannot align polynomial variables: the active variable "${variable}" is absent from the destination variables.`);
|
|
10
|
+
});
|
|
11
|
+
return createPolynomial(polynomial.terms.map(term => ({
|
|
12
|
+
coefficient: term.coefficient,
|
|
13
|
+
exponents: variables.map(variable => {
|
|
14
|
+
const oldIndex = polynomial.variables.indexOf(variable);
|
|
15
|
+
return oldIndex === -1 ? 0 : term.exponents[oldIndex];
|
|
16
|
+
}),
|
|
17
|
+
})), variables);
|
|
18
|
+
}
|
|
19
|
+
export function substitutePolynomial(polynomial, values) {
|
|
20
|
+
ensurePolynomial(polynomial);
|
|
21
|
+
const variables = polynomial.variables.filter(variable => Object.hasOwn(values, variable));
|
|
22
|
+
const ensuredValues = Object.fromEntries(variables.map(variable => [variable, ensureNumber(values[variable])]));
|
|
23
|
+
return substitutePolynomialMoments(polynomial, (variable, exponent) => ensuredValues[variable] ** exponent, variables);
|
|
24
|
+
}
|
|
25
|
+
export function evaluatePolynomial(polynomial, values) {
|
|
26
|
+
ensurePolynomial(polynomial);
|
|
27
|
+
const missingVariable = polynomial.variables.find(variable => !Object.hasOwn(values, variable));
|
|
28
|
+
if (missingVariable !== undefined)
|
|
29
|
+
throw new Error(`Cannot evaluate polynomial: no value was provided for variable "${missingVariable}".`);
|
|
30
|
+
const result = substitutePolynomial(polynomial, values);
|
|
31
|
+
return result.terms[0]?.coefficient ?? 0;
|
|
32
|
+
}
|
|
33
|
+
export function substitutePolynomialMoments(polynomial, getMoment, variables = polynomial.variables) {
|
|
34
|
+
ensurePolynomial(polynomial);
|
|
35
|
+
ensurePolynomialVariables(variables);
|
|
36
|
+
const knownVariables = variables.filter(variable => polynomial.variables.includes(variable));
|
|
37
|
+
const moments = new Map();
|
|
38
|
+
const getEnsuredMoment = (variable, exponent) => {
|
|
39
|
+
const key = `${variable}:${exponent}`;
|
|
40
|
+
const cachedMoment = moments.get(key);
|
|
41
|
+
if (cachedMoment !== undefined)
|
|
42
|
+
return cachedMoment;
|
|
43
|
+
const moment = ensureNumber(getMoment(variable, exponent));
|
|
44
|
+
moments.set(key, moment);
|
|
45
|
+
return moment;
|
|
46
|
+
};
|
|
47
|
+
return substitutePolynomialJointMoments(polynomial, (momentVariables, exponents) => momentVariables.reduce((product, variable, index) => product * getEnsuredMoment(variable, exponents[index]), 1), knownVariables);
|
|
48
|
+
}
|
|
49
|
+
function substitutePolynomialJointMoments(polynomial, getMoment, variables) {
|
|
50
|
+
const knownVariables = variables.filter(variable => polynomial.variables.includes(variable));
|
|
51
|
+
if (knownVariables.length === 0)
|
|
52
|
+
return polynomial;
|
|
53
|
+
const unknownVariables = polynomial.variables.filter(variable => !knownVariables.includes(variable));
|
|
54
|
+
return createPolynomial(polynomial.terms.map(term => {
|
|
55
|
+
const knownExponents = knownVariables.map(variable => term.exponents[polynomial.variables.indexOf(variable)]);
|
|
56
|
+
const unknownExponents = unknownVariables.map(variable => term.exponents[polynomial.variables.indexOf(variable)]);
|
|
57
|
+
return { coefficient: term.coefficient * ensureNumber(getMoment(knownVariables, knownExponents)), exponents: unknownExponents };
|
|
58
|
+
}), unknownVariables);
|
|
59
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PolynomialExponents } from './types.ts';
|
|
2
|
+
export declare function comparePolynomialExponents(exponents1: PolynomialExponents, exponents2: PolynomialExponents): number;
|
|
3
|
+
export declare function getPolynomialExponentsKey(exponents: PolynomialExponents): string;
|
|
4
|
+
//# sourceMappingURL=support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAKnH;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CAEhF"}
|
package/dist/support.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function comparePolynomialExponents(exponents1, exponents2) {
|
|
2
|
+
for (let index = 0; index < exponents1.length; index++) {
|
|
3
|
+
if (exponents1[index] !== exponents2[index])
|
|
4
|
+
return exponents1[index] - exponents2[index];
|
|
5
|
+
}
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
export function getPolynomialExponentsKey(exponents) {
|
|
9
|
+
return exponents.join(',');
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"7.0.2","root":[[70,72],[117,123]],"packageJsons":["../../../node_modules/@types/node/package.json","../../../node_modules/punycode/package.json","../../../node_modules/undici-types/package.json","../../js-utils/package.json","../package.json"],"missingPackageJsons":["../../../node_modules/@types/assert/package.json","../../../node_modules/@types/assert/strict/package.json","../../../node_modules/@types/async_hooks/package.json","../../../node_modules/@types/buffer/package.json","../../../node_modules/@types/child_process/package.json","../../../node_modules/@types/cluster/package.json","../../../node_modules/@types/console/package.json","../../../node_modules/@types/constants/package.json","../../../node_modules/@types/crypto/package.json","../../../node_modules/@types/dgram/package.json","../../../node_modules/@types/diagnostics_channel/package.json","../../../node_modules/@types/dns/package.json","../../../node_modules/@types/dns/promises/package.json","../../../node_modules/@types/domain/package.json","../../../node_modules/@types/events/package.json","../../../node_modules/@types/fs/package.json","../../../node_modules/@types/fs/promises/package.json","../../../node_modules/@types/http/package.json","../../../node_modules/@types/http2/package.json","../../../node_modules/@types/https/package.json","../../../node_modules/@types/inspector/package.json","../../../node_modules/@types/inspector/promises/package.json","../../../node_modules/@types/module/package.json","../../../node_modules/@types/net/package.json","../../../node_modules/@types/node/assert/package.json","../../../node_modules/@types/node/compatibility/package.json","../../../node_modules/@types/node/dns/package.json","../../../node_modules/@types/node/fs/package.json","../../../node_modules/@types/node/readline/package.json","../../../node_modules/@types/node/stream/package.json","../../../node_modules/@types/node/timers/package.json","../../../node_modules/@types/node/web-globals/package.json","../../../node_modules/@types/os/package.json","../../../node_modules/@types/path/package.json","../../../node_modules/@types/path/posix/package.json","../../../node_modules/@types/path/win32/package.json","../../../node_modules/@types/perf_hooks/package.json","../../../node_modules/@types/process/package.json","../../../node_modules/@types/punycode/package.json","../../../node_modules/@types/querystring/package.json","../../../node_modules/@types/readline/package.json","../../../node_modules/@types/readline/promises/package.json","../../../node_modules/@types/repl/package.json","../../../node_modules/@types/stream/consumers/package.json","../../../node_modules/@types/stream/package.json","../../../node_modules/@types/stream/promises/package.json","../../../node_modules/@types/stream/web/package.json","../../../node_modules/@types/string_decoder/package.json","../../../node_modules/@types/timers/package.json","../../../node_modules/@types/timers/promises/package.json","../../../node_modules/@types/tls/package.json","../../../node_modules/@types/trace_events/package.json","../../../node_modules/@types/tty/package.json","../../../node_modules/@types/url/package.json","../../../node_modules/@types/util/package.json","../../../node_modules/@types/util/types/package.json","../../../node_modules/@types/v8/package.json","../../../node_modules/@types/vm/package.json","../../../node_modules/@types/wasi/package.json","../../../node_modules/@types/worker_threads/package.json","../../../node_modules/@types/zlib/package.json","../../../node_modules/assert/package.json","../../../node_modules/assert/strict/package.json","../../../node_modules/async_hooks/package.json","../../../node_modules/buffer/package.json","../../../node_modules/child_process/package.json","../../../node_modules/cluster/package.json","../../../node_modules/console/package.json","../../../node_modules/constants/package.json","../../../node_modules/crypto/package.json","../../../node_modules/dgram/package.json","../../../node_modules/diagnostics_channel/package.json","../../../node_modules/dns/package.json","../../../node_modules/dns/promises/package.json","../../../node_modules/domain/package.json","../../../node_modules/events/package.json","../../../node_modules/fs/package.json","../../../node_modules/fs/promises/package.json","../../../node_modules/http/package.json","../../../node_modules/http2/package.json","../../../node_modules/https/package.json","../../../node_modules/inspector/package.json","../../../node_modules/inspector/promises/package.json","../../../node_modules/module/package.json","../../../node_modules/net/package.json","../../../node_modules/os/package.json","../../../node_modules/path/package.json","../../../node_modules/path/posix/package.json","../../../node_modules/path/win32/package.json","../../../node_modules/perf_hooks/package.json","../../../node_modules/process/package.json","../../../node_modules/querystring/package.json","../../../node_modules/readline/package.json","../../../node_modules/readline/promises/package.json","../../../node_modules/repl/package.json","../../../node_modules/stream/consumers/package.json","../../../node_modules/stream/package.json","../../../node_modules/stream/promises/package.json","../../../node_modules/stream/web/package.json","../../../node_modules/string_decoder/package.json","../../../node_modules/timers/package.json","../../../node_modules/timers/promises/package.json","../../../node_modules/tls/package.json","../../../node_modules/trace_events/package.json","../../../node_modules/tty/package.json","../../../node_modules/url/package.json","../../../node_modules/util/package.json","../../../node_modules/util/types/package.json","../../../node_modules/v8/package.json","../../../node_modules/vm/package.json","../../../node_modules/wasi/package.json","../../../node_modules/worker_threads/package.json","../../../node_modules/zlib/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.dom.d.ts","lib.dom.iterable.d.ts","lib.dom.asynciterable.d.ts","lib.webworker.importscripts.d.ts","lib.scripthost.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2025.float16.d.ts","lib.esnext.disposable.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","lib.es2023.full.d.ts","../src/types.ts","../src/support.ts","../src/checks.ts","../../js-utils/dist/objects/checks.d.ts","../../js-utils/dist/objects/plainnesschecks.d.ts","../../js-utils/dist/objects/comparisons.d.ts","../../js-utils/dist/objects/nesting.d.ts","../../js-utils/dist/objects/creation.d.ts","../../js-utils/dist/objects/manipulation.d.ts","../../js-utils/dist/objects/index.d.ts","../../js-utils/dist/numbers/checks.d.ts","../../js-utils/dist/numbers/comparisons.d.ts","../../js-utils/dist/numbers/limiting.d.ts","../../js-utils/dist/numbers/rounding.d.ts","../../js-utils/dist/numbers/angles.d.ts","../../js-utils/dist/numbers/random.d.ts","../../js-utils/dist/numbers/index.d.ts","../../js-utils/dist/arrays/checks.d.ts","../../js-utils/dist/arrays/comparisons.d.ts","../../js-utils/dist/arrays/reading.d.ts","../../js-utils/dist/arrays/iteration.d.ts","../../js-utils/dist/arrays/finding.d.ts","../../js-utils/dist/arrays/creation.d.ts","../../js-utils/dist/arrays/manipulation.d.ts","../../js-utils/dist/arrays/shaping.d.ts","../../js-utils/dist/arrays/sorting.d.ts","../../js-utils/dist/arrays/random.d.ts","../../js-utils/dist/arrays/multidimensional.d.ts","../../js-utils/dist/arrays/index.d.ts","../../js-utils/dist/strings/checks.d.ts","../../js-utils/dist/strings/search.d.ts","../../js-utils/dist/strings/manipulation.d.ts","../../js-utils/dist/strings/creation.d.ts","../../js-utils/dist/strings/index.d.ts","../../js-utils/dist/functions/fundamentals.d.ts","../../js-utils/dist/functions/repeating.d.ts","../../js-utils/dist/functions/resolving.d.ts","../../js-utils/dist/functions/index.d.ts","../../js-utils/dist/sets/checks.d.ts","../../js-utils/dist/sets/manipulation.d.ts","../../js-utils/dist/sets/index.d.ts","../../js-utils/dist/errors/interpretationerror.d.ts","../../js-utils/dist/errors/index.d.ts","../../js-utils/dist/dates/checks.d.ts","../../js-utils/dist/dates/formatting.d.ts","../../js-utils/dist/dates/index.d.ts","../../js-utils/dist/index.d.ts","../src/creation.ts","../src/restructuring.ts","../src/comparison.ts","../src/conversion.ts","../src/display.ts","../src/manipulation.ts","../src/index.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7","9443a7f109277ffaa79d893ed2549995",{"version":"aae8996e8b5684814785a42cbbefcd79","affectsGlobalScope":true,"impliedNodeFormat":1},"abad6dd56cc8caf095c165df8124d237","abad6dd56cc8caf095c165df8124d237",{"version":"2a9941db0809c9ad0e8837ed629b1dcc","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d051b93324f36bcc68d152a5ca0988cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8cf777fe00349b71ee9c4b6f3fe7fd19","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"74f96bc192530c9723f572bfff3d3078","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1df91c56b25955c56387426f378173c5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},"e1c7e28ac89b8a663c388c275b41bf44",{"version":"83b72c77511eece835459d4b49b00259","signature":"7d2b7fcbb7a5581eed5375831ca5feef","impliedNodeFormat":99},{"version":"7a7b384a3c2b395cafd80f3aaef7b3cc","signature":"ae30da103af6abc5b7b9ef1392e1f35d","impliedNodeFormat":99},{"version":"f3abe2e2cea1a2bc61e324c87488450e","signature":"575d041b58a985203d596895fd5248a4","impliedNodeFormat":99},{"version":"0a5f9ea1a2907d0c3acce959f667e7d6","impliedNodeFormat":99},{"version":"62064d4505a357a7b3bd5fc002f01a6c","impliedNodeFormat":99},{"version":"b261d377ba6cab61b65229f8926d6c96","impliedNodeFormat":99},{"version":"5192a8f4e703e7fde6730938025f5623","impliedNodeFormat":99},{"version":"be9bcaaed12642dcb4f4b544382c0358","impliedNodeFormat":99},{"version":"21ccea272ffdebf648e4836834ea03f0","impliedNodeFormat":99},{"version":"d270959207f8e0d77bc290cb9b9fd246","impliedNodeFormat":99},{"version":"0adefc42b494adacd96ce55e2f64f9da","impliedNodeFormat":99},{"version":"17e818460750c7024b6b3d9ef9d489ca","impliedNodeFormat":99},{"version":"4c488904ad7ff9227d0d8f3704a586f6","impliedNodeFormat":99},{"version":"af0629723a39c856ba0958eb355a5cbe","impliedNodeFormat":99},{"version":"81a34d18a0ae9698642df2775695856d","impliedNodeFormat":99},{"version":"de24a9130664ba61652244cd2a232aed","impliedNodeFormat":99},{"version":"22b5d13c1a4f6516b6d7983939a8afc8","impliedNodeFormat":99},{"version":"72eb493e0bdad7f4ce302f0dbcce2641","impliedNodeFormat":99},{"version":"8ea7ff3dda12c32e077979de0e96715a","impliedNodeFormat":99},{"version":"a72446394410a3b03a7944e1780db6d3","impliedNodeFormat":99},{"version":"ded14b0e81fbadee602d95eba42ff17f","impliedNodeFormat":99},{"version":"ecb00340e935f501e79ab8d899bc370e","impliedNodeFormat":99},{"version":"a087d7ff39aa2c3d8cc870d8f05110e3","impliedNodeFormat":99},{"version":"f1d1cd98c334c216129f02b5f2adf9ee","impliedNodeFormat":99},{"version":"ac9a7aeb0ced50c8f83b661dd3d07a81","impliedNodeFormat":99},{"version":"089d4dd21214ba138c00815377853c5a","impliedNodeFormat":99},{"version":"2e346c22cde3aa31556967609b18c3f1","impliedNodeFormat":99},{"version":"0c0bbfc7dc00995d89bd217b45988ebb","impliedNodeFormat":99},{"version":"3ce013a7452ce40a72df47bd8ec12c0d","impliedNodeFormat":99},{"version":"b96e5eb97d6ed420b3367ca1888799df","impliedNodeFormat":99},{"version":"fa30278ec533c6d335d9aa86c30a8e8c","impliedNodeFormat":99},{"version":"89eac0e3c015c350fe1ebac681a1a743","impliedNodeFormat":99},{"version":"34eeab91b34ead376cdf527ad00a7ca5","impliedNodeFormat":99},{"version":"c3dddbbb572f9063bc1dc3fc4a92eaf2","impliedNodeFormat":99},{"version":"78f92c2ed83abd1fad7a4bd2d60b303e","impliedNodeFormat":99},{"version":"ae7cbf0166aad0aa133e9822dc26111d","impliedNodeFormat":99},{"version":"2458cb653e64298b96bc887a530c517a","impliedNodeFormat":99},{"version":"8cdcb64a3be9d482f7122864d95a9397","impliedNodeFormat":99},{"version":"cca1fe32626ac20ce59f0cb719c8e76a","impliedNodeFormat":99},{"version":"a9132f160817b236f8ed6177f83d83f0","impliedNodeFormat":99},{"version":"c5bcd18cf7ef8e12a0b5622e135b7dd5","impliedNodeFormat":99},{"version":"e2cfa86440881bab6e1c64d446adc5e3","impliedNodeFormat":99},{"version":"1073ad741b156bbaa728b8ccc8445788","impliedNodeFormat":99},{"version":"4c8efa49ef555631b0239d6431361d61","impliedNodeFormat":99},{"version":"ab880af2d4e78f1be40ab8b6672342c4","impliedNodeFormat":99},{"version":"dd03d213f167f308786e240f22f88383","impliedNodeFormat":99},{"version":"7ae7b3c7d629106dbc4d3d9995cd61de","impliedNodeFormat":99},{"version":"ae84ac43b66809d0d5a168794cafc8d4","signature":"10ef376a5e342969ed1750c8b401a3a8","impliedNodeFormat":99},{"version":"e04bd3f7ca98f0e1e23dceb7f16459ee","signature":"698bad7e6593251651adbd94dcd62fa6","impliedNodeFormat":99},{"version":"ece16938cfd9fca7d7e544697e688308","signature":"fd7ef2f6b72a18c311fa1b69a3bd2e11","impliedNodeFormat":99},{"version":"01e661863eda2de22abaf72f2e138107","signature":"b9a4e923b88d96a25e8ed413de9e492b","impliedNodeFormat":99},{"version":"31454925c4e08ed7cdcf6c39dcf2564d","signature":"a85ce260fb438f880d0a680dac1d83ce","impliedNodeFormat":99},{"version":"496d69fd95bcee0d7183f91e835d6050","signature":"acc5b03abc2f25d675a1bd82b9ab9d9e","impliedNodeFormat":99},{"version":"5803485f8aa5e6b4c3fa44c8300cc456","signature":"a1ffb810e1dc45a0f25611a8d5959ae7","impliedNodeFormat":99},{"version":"2514e9a2749c0fc18d2f478e9e1e641e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6ae4c332ecb24e76c1e47c0e21d4663d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"69ee0752d1e70c56ca160360425752a9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf33440030f0a0fae7d1efd6c293a8d2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9af0a7e3ef1c42cd066b9f8d365cc1ba","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7b772cebc7136c34fc77954aef70519d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9eca652586205dc5b07f9ba57b1c8500","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec5f75939754ce94652189ec7d0d3058","affectsGlobalScope":true,"impliedNodeFormat":1},"49133c0dfbc32ab95668c3443dea49e5","85c2cf74d24d4069fac4686501a2d7e3","9f970a4ba4bb3ed6326d46b3ddab3f63","f444b82bb192c8ecc7c9a06cba5c1fba","75de66fc4824402123c0d694ccc0a085","db51f206bae5021bd84c7079251e08e9","fcd1a513c1e5802916fa602e8b8e64bc","aedc93367cdc148d7dd56ef6fd5ef308","8e2bc11d0328ba95e490a741c44a215d","d63481078bffe02fbaf6694a35815dc7","705645fe223430c696f47b708d592ca8","28d57c837c94adb42add03d499793cab","8c01a9bbae8449be21b3e018d59a74ac","44d3b7d58481743f4726cf411e667164","679024f8e9f58a112f4badf119c4d612","74d351e4ed233e82c6d74c444c1a6b86","94d8e37d28e92494f484dd9afe8f043c","79db245997e9261ae21e5f3d93e3493b","c3659054228b00c4e2a22d9ebea8b4f0","d7e5f7a0f1f883f28458f684106e7643","c2364011a80b6a9e3cc0e77895bad577","38da5c670190f4a35cbc204ca6c616bf","d95cc0eb29beed58f5ce72db21398f53","ecd53256b1ec7379c73316eaf392a69c","db5a9211b779628398011a5b8f5b8b5d","69c7bb9c3befe9ae37eed0e6a6310fee","1cba93fafccb7b2655f0e75229185e83","094ecadae30f65a82b77343dde77a666","f75df12d75dd783b03a0329b95abdb25","b438b08b2f0ed94a95a75c8990d9021b","f2becd2589591db92ab14e803eb8bdd5","8dec66ce34e6fe771e58a92b7068edc0","30f12c2660896a33bd3c3a126392c80a","0468c0ccd0ec7770b76481b165564d62","188234d616a4f50ed9b14c8f84a39f33","4c116bcf0a47ea8fbf4072f380925fa7","22111ccb71c0e95ff0796144b40eed2b","add85ec26ba695fc99c698dbec065f8c","5bfde23f96fc502b5413d772c35e1abf","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","acaa6ef6fcd5ba662929d6036121a616",{"version":"dd1cf1cc3aa21cd78b4869a44d98c6d9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"292c9398a407b33b1d9c9812b673387a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d352f71d1b1bcc12c79dd0e4597537c","affectsGlobalScope":true,"impliedNodeFormat":1},"db11b80743ed5356b81d763a708788e6","39078ea063fcaf72bd3cca7e0d13d017","f81aa09811fa65ac6f354ab0018d3c38",{"version":"282318b178d190157a4deacb14f3040a","affectsGlobalScope":true,"impliedNodeFormat":1},"aafe512c4216100fd65028f9b2afce83","54c5c3dcfdb5f7cf5fbbccfff6ead3fa",{"version":"dc14f078230582a2f8fb2138bfcf4f85","affectsGlobalScope":true,"impliedNodeFormat":1},"b2b472cd0bf0f8d5f022e00ca1c401f4","370d966b810b687a9e58851208cb3d4c","39b3089f3df8d14e0f2ddac0479872d9","cc7a57e86f908c313649aea8d90377e1","5c271f10d8a9b9a1206bc82a4fe5b84d","fbe31979333ec391d8b59e8f42236e8e","6751c8c175fac6bbe7b935582cdfdca7",{"version":"a3f111d2a29b6cdd04fc4b41aa560c86","affectsGlobalScope":true,"impliedNodeFormat":1},"5f4ac576bcdc670a8489c881b23a2b17","a500e7362abeae2d2f1fefea525dc869","02a1ccf1ef65bfbf65865ac4ce346974","d589d01c82f6793f20d2f5c838462e3d","dbe700f7f1fa52fd220c7ee2c6617ebc","579675a2c3b0f8c532a82ad9cbd5d384","b2e8f93606aeb2dee2a4cc9272c56973",{"version":"a8e5d3e42303570b1114b6cd9ef9f38a","affectsGlobalScope":true,"impliedNodeFormat":1},"0003c8459d069181cc4856724fcf2832","c9053dbbe4fa2853f2d3f73b9a2fee81","4e458316a6083cbd2bba2fd29f674dd5",{"version":"3cccee1f2c106192d18ac4e08119f872","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"057189402e597cd50262b082723f21ff","affectsGlobalScope":true,"impliedNodeFormat":1},"6b26581aa2587701d570206a0db8c9ee","88a29e2aac8082c0910733950159e1ca","10282f14d9c2a5cbf3bcf2b1c8cebeaf","0f80958d77cd6301b43c1d7904e3e4bc","3bdc645524ab0d2f6795d3a008833bd7","deb50b47eb75a5566532a763fa1324fa","6e61cd09c2e15845909de3ed59a00b37","3e4ffe5f2733e0589b2612bd86f6cec3","c8206d568b54e5ea06131963eecd576a","15878f4f50c2e562c0768eb735c2aed5",{"version":"cb8f7733bee3d973c152a75fad9f6da6","affectsGlobalScope":true,"impliedNodeFormat":1},"dd404118e8bd70aff746f7d31e46270b","a0fa4618173795c74b488178ea77f951",{"version":"6b8649a280031d9e86955db721cfad87","affectsGlobalScope":true,"impliedNodeFormat":1},"4bc8f13c472858fb74f77388c0c5d885","75ab229142dad0ca2ff14d02d52f11f9","c72d2516d1e8910caca33c4dff75fcd4","f0231f36cb7117fbe9271ff19ef0f5f4",{"version":"8a642eed2a45ac7028479b6089a04842","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1e6ddb6b86dc5d86e75ba797d5324346","affectsGlobalScope":true,"impliedNodeFormat":1},"701aef085585b152042aa216b06bb4b8","e9bc5b1de50e48fa9857b64091673883","9268959cff1006c82e6abbd73824db97",{"version":"8f1c048bd5761910f5ea340fe4d792cd","affectsGlobalScope":true,"impliedNodeFormat":1},"6b1f3649b0eabeaca20c778fcc5f270c","eb567c7b5824aab578f75bbccf9f4b05"],"fileIdsList":[[126,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,173,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[124,125,126,127,128,129,130,131,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,229,230],[126,173,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,173,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],[126,138,141,144,145,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,145,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,135,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,139,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,137,138,141,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231],[126,135,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231],[126,137,141,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,132,133,134,136,140,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,150,158,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,133,139,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,167,168,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,133,136,141,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231],[126,132,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,135,136,137,139,140,141,142,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,160,163,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,150,151,152,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,139,141,151,153,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,140,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,133,135,141,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,145,151,153,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,145,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,139,141,144,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,133,137,141,150,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,141,160,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,153,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[126,135,141,167,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231],[86,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[87,88,89,90,91,92,93,94,95,96,97,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[79,89,91,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[91,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[113,114,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[111,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[104,105,106,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[98,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[79,86,98,103,107,110,112,115,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[80,81,82,83,84,85,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[73,74,75,76,77,78,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[108,109,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[99,100,101,102,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,71,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,72,116,118,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,72,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,71,72,116,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,72,117,118,119,120,121,122,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,72,116,117,118,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,72,116,117,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[70,126,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230]],"options":{"composite":true,"declaration":true,"declarationMap":true,"module":199,"outDir":"./","rewriteRelativeImportExtensions":true,"rootDir":"../src","skipLibCheck":true,"strict":true,"target":10,"tsBuildInfoFile":"./tsconfig.tsbuildinfo","esModuleInterop":true},"referencedMap":[[178,1],[179,2],[180,3],[126,4],[181,5],[182,6],[183,7],[124,8],[184,9],[185,10],[186,11],[187,12],[188,13],[189,14],[190,15],[191,16],[192,17],[193,18],[194,19],[127,8],[125,8],[195,20],[196,21],[197,22],[231,23],[198,24],[199,25],[200,26],[201,27],[202,28],[203,29],[204,30],[205,31],[206,32],[207,33],[208,34],[209,35],[210,36],[211,37],[212,38],[213,39],[215,40],[214,41],[216,42],[217,43],[218,44],[219,45],[220,46],[221,47],[222,48],[223,49],[224,50],[225,51],[226,52],[227,53],[228,54],[128,8],[129,8],[130,8],[131,8],[174,55],[175,8],[176,8],[177,8],[229,56],[230,57],[67,8],[68,8],[13,8],[11,8],[12,8],[17,8],[16,8],[2,8],[18,8],[19,8],[20,8],[21,8],[22,8],[23,8],[24,8],[25,8],[3,8],[26,8],[27,8],[4,8],[28,8],[32,8],[29,8],[30,8],[31,8],[33,8],[34,8],[35,8],[5,8],[36,8],[37,8],[38,8],[39,8],[6,8],[43,8],[40,8],[41,8],[42,8],[44,8],[7,8],[45,8],[50,8],[51,8],[46,8],[47,8],[48,8],[49,8],[8,8],[55,8],[52,8],[53,8],[54,8],[56,8],[9,8],[57,8],[58,8],[59,8],[61,8],[60,8],[62,8],[63,8],[10,8],[69,8],[64,8],[65,8],[1,8],[66,8],[15,8],[14,8],[150,58],[162,59],[147,60],[163,8],[172,61],[138,62],[139,63],[137,8],[171,64],[166,65],[170,66],[141,67],[159,68],[140,69],[169,70],[135,71],[136,65],[142,59],[143,8],[149,66],[146,59],[133,72],[173,73],[164,74],[153,75],[152,59],[154,76],[157,77],[151,78],[155,79],[167,64],[144,80],[145,81],[158,82],[134,8],[161,83],[160,59],[148,81],[156,84],[165,8],[132,8],[168,85],[87,86],[88,8],[92,8],[91,8],[98,87],[90,8],[93,8],[97,88],[96,8],[89,8],[94,89],[95,8],[113,8],[114,8],[115,90],[112,91],[111,8],[104,8],[107,92],[105,93],[106,8],[116,94],[84,8],[80,8],[81,8],[86,95],[82,8],[85,8],[83,8],[73,8],[75,8],[77,8],[79,96],[78,8],[76,8],[74,8],[108,8],[110,97],[109,8],[99,8],[102,8],[103,98],[101,8],[100,8],[72,99],[119,100],[120,101],[117,102],[121,101],[123,103],[122,104],[118,105],[71,106],[70,8]],"latestChangedDtsFile":"./index.d.ts"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type PolynomialExponents = readonly number[];
|
|
2
|
+
export type PolynomialTerm = Readonly<{
|
|
3
|
+
coefficient: number;
|
|
4
|
+
exponents: PolynomialExponents;
|
|
5
|
+
}>;
|
|
6
|
+
export type PolynomialTerms = readonly PolynomialTerm[];
|
|
7
|
+
export type PolynomialVariable = string;
|
|
8
|
+
export type PolynomialVariables = readonly PolynomialVariable[];
|
|
9
|
+
export type Polynomial = Readonly<{
|
|
10
|
+
terms: PolynomialTerms;
|
|
11
|
+
variables: PolynomialVariables;
|
|
12
|
+
}>;
|
|
13
|
+
export type PolynomialValues = Readonly<Record<PolynomialVariable, number>>;
|
|
14
|
+
export type PolynomialComparisonOptions = Readonly<{
|
|
15
|
+
allowVariableReordering?: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,SAAS,MAAM,EAAE,CAAA;AACnD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAA;AAC9F,MAAM,MAAM,eAAe,GAAG,SAAS,cAAc,EAAE,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACvC,MAAM,MAAM,mBAAmB,GAAG,SAAS,kBAAkB,EAAE,CAAA;AAE/D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAA;AAE7F,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA;AAE3E,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@step-wise/polynomials",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Utilities for representing and manipulating sparse multivariable polynomials.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/HildoBijl/stepwise.git",
|
|
9
|
+
"directory": "packages/polynomials"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/HildoBijl/stepwise/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/HildoBijl/stepwise/tree/main/packages/polynomials#readme",
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=24.12.0"
|
|
20
|
+
},
|
|
21
|
+
"type": "module",
|
|
22
|
+
"main": "./dist/index.js",
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"import": "./dist/index.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"README.md",
|
|
33
|
+
"LICENSE"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc -b tsconfig.build.json",
|
|
37
|
+
"watch": "tsc -b tsconfig.build.json --watch",
|
|
38
|
+
"test": "vitest run",
|
|
39
|
+
"test:watch": "vitest"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@step-wise/js-utils": "^0.1.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"vitest": "^5.0.0"
|
|
46
|
+
}
|
|
47
|
+
}
|