binary-decision-diagram 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/.github/workflows/main.yml +2 -2
  2. package/dist/es/abstract-node.js +45 -51
  3. package/dist/es/abstract-node.js.map +1 -1
  4. package/dist/es/branches.js +20 -22
  5. package/dist/es/branches.js.map +1 -1
  6. package/dist/es/create-bdd-from-truth-table.js +19 -57
  7. package/dist/es/create-bdd-from-truth-table.js.map +1 -1
  8. package/dist/es/ensure-correct-bdd.js +26 -27
  9. package/dist/es/ensure-correct-bdd.js.map +1 -1
  10. package/dist/es/fill-truth-table.js +3 -3
  11. package/dist/es/fill-truth-table.js.map +1 -1
  12. package/dist/es/find-similar-node.js +3 -3
  13. package/dist/es/find-similar-node.js.map +1 -1
  14. package/dist/es/internal-node.js +15 -35
  15. package/dist/es/internal-node.js.map +1 -1
  16. package/dist/es/leaf-node.js +14 -34
  17. package/dist/es/leaf-node.js.map +1 -1
  18. package/dist/es/minimal-string/bdd-to-minimal-string.js +15 -15
  19. package/dist/es/minimal-string/bdd-to-minimal-string.js.map +1 -1
  20. package/dist/es/minimal-string/bdd-to-simple-bdd.js +2 -2
  21. package/dist/es/minimal-string/bdd-to-simple-bdd.js.map +1 -1
  22. package/dist/es/minimal-string/minimal-string-to-simple-bdd.js +27 -27
  23. package/dist/es/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
  24. package/dist/es/minimal-string/resolve-with-simple-bdd.js +4 -4
  25. package/dist/es/minimal-string/resolve-with-simple-bdd.js.map +1 -1
  26. package/dist/es/minimal-string/string-format.js +7 -7
  27. package/dist/es/minimal-string/string-format.js.map +1 -1
  28. package/dist/es/optimize-brute-force.d.ts +4 -4
  29. package/dist/es/optimize-brute-force.js +88 -186
  30. package/dist/es/optimize-brute-force.js.map +1 -1
  31. package/dist/es/parents.js +19 -47
  32. package/dist/es/parents.js.map +1 -1
  33. package/dist/es/root-node.js +79 -133
  34. package/dist/es/root-node.js.map +1 -1
  35. package/dist/es/types.d.ts +9 -9
  36. package/dist/es/util.js +21 -39
  37. package/dist/es/util.js.map +1 -1
  38. package/dist/lib/abstract-node.js +48 -57
  39. package/dist/lib/abstract-node.js.map +1 -1
  40. package/dist/lib/branches.js +21 -27
  41. package/dist/lib/branches.js.map +1 -1
  42. package/dist/lib/create-bdd-from-truth-table.js +24 -66
  43. package/dist/lib/create-bdd-from-truth-table.js.map +1 -1
  44. package/dist/lib/ensure-correct-bdd.js +27 -33
  45. package/dist/lib/ensure-correct-bdd.js.map +1 -1
  46. package/dist/lib/fill-truth-table.js +6 -10
  47. package/dist/lib/fill-truth-table.js.map +1 -1
  48. package/dist/lib/find-similar-node.js +4 -8
  49. package/dist/lib/find-similar-node.js.map +1 -1
  50. package/dist/lib/index.js +13 -25
  51. package/dist/lib/index.js.map +1 -1
  52. package/dist/lib/internal-node.js +18 -41
  53. package/dist/lib/internal-node.js.map +1 -1
  54. package/dist/lib/leaf-node.js +17 -40
  55. package/dist/lib/leaf-node.js.map +1 -1
  56. package/dist/lib/minimal-string/bdd-to-minimal-string.js +21 -26
  57. package/dist/lib/minimal-string/bdd-to-minimal-string.js.map +1 -1
  58. package/dist/lib/minimal-string/bdd-to-simple-bdd.js +4 -9
  59. package/dist/lib/minimal-string/bdd-to-simple-bdd.js.map +1 -1
  60. package/dist/lib/minimal-string/index.js +5 -17
  61. package/dist/lib/minimal-string/index.js.map +1 -1
  62. package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js +30 -34
  63. package/dist/lib/minimal-string/minimal-string-to-simple-bdd.js.map +1 -1
  64. package/dist/lib/minimal-string/resolve-with-simple-bdd.js +6 -10
  65. package/dist/lib/minimal-string/resolve-with-simple-bdd.js.map +1 -1
  66. package/dist/lib/minimal-string/string-format.js +12 -19
  67. package/dist/lib/minimal-string/string-format.js.map +1 -1
  68. package/dist/lib/optimize-brute-force.d.ts +4 -4
  69. package/dist/lib/optimize-brute-force.js +93 -199
  70. package/dist/lib/optimize-brute-force.js.map +1 -1
  71. package/dist/lib/parents.js +19 -50
  72. package/dist/lib/parents.js.map +1 -1
  73. package/dist/lib/root-node.js +84 -141
  74. package/dist/lib/root-node.js.map +1 -1
  75. package/dist/lib/types.d.ts +9 -9
  76. package/dist/lib/types.js +1 -2
  77. package/dist/lib/util.js +36 -72
  78. package/dist/lib/util.js.map +1 -1
  79. package/package.json +8 -8
  80. package/tsconfig.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../../src/minimal-string/string-format.ts"],"names":[],"mappings":";AAAA;;;;;;;EAOE;;;AAEF;;;;;;;;;;;;;;;;;;EAkBE;AAEF,6DAA6D;AAChD,QAAA,gBAAgB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAGtE,SAAgB,cAAc,CAAC,KAAa;IACxC,IAAM,QAAQ,GAAG,wBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAHD,wCAGC;AAED,SAAgB,eAAe,CAAC,IAAY;IACxC,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,QAAQ,GAAG,wBAAgB,CAAC;AACvC,CAAC;AAHD,0CAGC;AAED,SAAgB,cAAc,CAAC,KAAa;IACxC,IAAM,QAAQ,GAAG,wBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAHD,wCAGC;AAGY,QAAA,sBAAsB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAE5E,SAAgB,aAAa,CAAC,QAAgB;IAK1C,6CAA6C;IAC7C,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE;QACpC,QAAQ,GAAG,GAAG,CAAC;KAClB;IAED,IAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACH,IAAI,MAAA;QACJ,QAAQ,EAAE,QAAQ,GAAG,CAAC;KACzB,CAAC;AACN,CAAC;AAfD,sCAeC"}
1
+ {"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../../src/minimal-string/string-format.ts"],"names":[],"mappings":"AAAA;;;;;;;EAOE;AAEF;;;;;;;;;;;;;;;;;;EAkBE;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAGtE,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,gBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,QAAQ,GAAG,gBAAgB,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,MAAM,QAAQ,GAAG,gBAAgB,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAGD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,kCAAkC;AAE5E,MAAM,UAAU,aAAa,CAAC,QAAgB;IAK1C,6CAA6C;IAC7C,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,EAAE;QACpC,QAAQ,GAAG,GAAG,CAAC;KAClB;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACH,IAAI;QACJ,QAAQ,EAAE,QAAQ,GAAG,CAAC;KACzB,CAAC;AACN,CAAC"}
@@ -4,12 +4,12 @@ import { RootNode } from './root-node';
4
4
  * a function that is called each time
5
5
  * a 'better' bdd was found
6
6
  */
7
- export declare type OptmisiationCallback = (bdd: OptimisationResult) => void;
7
+ export type OptmisiationCallback = (bdd: OptimisationResult) => void;
8
8
  export interface OptimisationResult {
9
9
  bdd: RootNode;
10
10
  truthTable: TruthTable;
11
11
  }
12
- export declare type CompareResultsFunction = (a: RootNode, b: RootNode) => RootNode | Promise<RootNode>;
12
+ export type CompareResultsFunction = (a: RootNode, b: RootNode) => RootNode | Promise<RootNode>;
13
13
  /**
14
14
  * returns the bdd with less nodes
15
15
  */
@@ -28,10 +28,10 @@ export interface OptimizeBruteForceInput {
28
28
  * and checking the resulting bdd
29
29
  */
30
30
  export declare function optimizeBruteForce({ truthTable, iterations, onBetterBdd, compareResults, afterBddCreation, log }: OptimizeBruteForceInput): Promise<OptimisationResult>;
31
- export declare type BooleanFunctionReorderMapping = {
31
+ export type BooleanFunctionReorderMapping = {
32
32
  [indexAfter: number]: number;
33
33
  };
34
- export declare type BooleanFunctionReorderMappingReverse = {
34
+ export type BooleanFunctionReorderMappingReverse = {
35
35
  [indexBefore: number]: number;
36
36
  };
37
37
  export declare function shuffleBooleanOrdering(truthTable: TruthTable): {
@@ -1,75 +1,9 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __values = (this && this.__values) || function(o) {
39
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
- if (m) return m.call(o);
41
- if (o && typeof o.length === "number") return {
42
- next: function () {
43
- if (o && i >= o.length) o = void 0;
44
- return { value: o && o[i++], done: !o };
45
- }
46
- };
47
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
- };
49
- var __read = (this && this.__read) || function (o, n) {
50
- var m = typeof Symbol === "function" && o[Symbol.iterator];
51
- if (!m) return o;
52
- var i = m.call(o), r, ar = [], e;
53
- try {
54
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
- }
56
- catch (error) { e = { error: error }; }
57
- finally {
58
- try {
59
- if (r && !r.done && (m = i["return"])) m.call(i);
60
- }
61
- finally { if (e) throw e.error; }
62
- }
63
- return ar;
64
- };
65
- Object.defineProperty(exports, "__esModule", { value: true });
66
- exports.getArrayWithIndexes = exports.changeKeyOrder = exports.shuffleBooleanOrdering = exports.optimizeBruteForce = exports.defaultCompareResults = void 0;
67
- var create_bdd_from_truth_table_1 = require("./create-bdd-from-truth-table");
68
- var util_1 = require("./util");
1
+ import { createBddFromTruthTable } from './create-bdd-from-truth-table';
2
+ import { firstKeyOfMap, shuffleArray, lastOfArray } from './util';
69
3
  /**
70
4
  * returns the bdd with less nodes
71
5
  */
72
- var defaultCompareResults = function (a, b) {
6
+ export const defaultCompareResults = function (a, b) {
73
7
  if (a.countNodes() <= b.countNodes()) {
74
8
  return a;
75
9
  }
@@ -77,162 +11,122 @@ var defaultCompareResults = function (a, b) {
77
11
  return b;
78
12
  }
79
13
  };
80
- exports.defaultCompareResults = defaultCompareResults;
81
14
  /**
82
15
  * optimises the ordering of the boolean functions
83
16
  * by randomly sorting the array
84
17
  * and checking the resulting bdd
85
18
  */
86
- function optimizeBruteForce(_a) {
87
- var truthTable = _a.truthTable, _b = _a.iterations, iterations = _b === void 0 ? Infinity : _b, _c = _a.onBetterBdd, onBetterBdd = _c === void 0 ? function () { return null; } : _c, _d = _a.compareResults, compareResults = _d === void 0 ? exports.defaultCompareResults : _d, _e = _a.afterBddCreation, afterBddCreation = _e === void 0 ? function () { return null; } : _e, _f = _a.log, log = _f === void 0 ? false : _f;
88
- return __awaiter(this, void 0, void 0, function () {
89
- var initialBdd, currentBestResult, t, _loop_1;
90
- return __generator(this, function (_g) {
91
- switch (_g.label) {
92
- case 0:
93
- initialBdd = (0, create_bdd_from_truth_table_1.createBddFromTruthTable)(truthTable);
94
- afterBddCreation(initialBdd);
95
- initialBdd.minimize();
96
- currentBestResult = {
97
- truthTable: truthTable,
98
- bdd: initialBdd
99
- };
100
- if (log) {
101
- initialBdd.log();
102
- console.log('initial nodes amount: ' + initialBdd.countNodes());
103
- }
104
- t = 0;
105
- _loop_1 = function () {
106
- var shuffledOrdering, nextBdd, newNodesByLevel, lastLevel, newSortedLevels, lastLevelSet, betterBdd;
107
- return __generator(this, function (_h) {
108
- switch (_h.label) {
109
- case 0:
110
- t++;
111
- if (log) {
112
- console.log('-'.repeat(50));
113
- console.log('optimizeBruteForce() itterate once');
114
- }
115
- shuffledOrdering = shuffleBooleanOrdering(truthTable);
116
- nextBdd = (0, create_bdd_from_truth_table_1.createBddFromTruthTable)(shuffledOrdering.newTable);
117
- newNodesByLevel = new Map();
118
- lastLevel = (0, util_1.lastOfArray)(nextBdd.getLevels());
119
- newSortedLevels = [];
120
- nextBdd.getLevels()
121
- .filter(function (level) { return level !== lastLevel; })
122
- .forEach(function (level) {
123
- var newLevel = shuffledOrdering.mappingBeforeToAfter[level];
124
- newSortedLevels.push(newLevel);
125
- var levelSet = new Set();
126
- newNodesByLevel.set(newLevel, levelSet);
127
- nextBdd.getNodesOfLevel(level).forEach(function (node) {
128
- node.level = newLevel;
129
- levelSet.add(node);
130
- });
131
- });
132
- lastLevelSet = new Set();
133
- nextBdd.getNodesOfLevel(lastLevel).forEach(function (node) { return lastLevelSet.add(node); });
134
- newNodesByLevel.set(lastLevel, lastLevelSet);
135
- newSortedLevels.push(lastLevel);
136
- nextBdd.nodesByLevel = newNodesByLevel;
137
- nextBdd.levels = newSortedLevels;
138
- afterBddCreation(nextBdd);
139
- nextBdd.minimize();
140
- if (log) {
141
- console.log('got new bdd with nodes amount of ' + nextBdd.countNodes());
142
- // nextBdd.log();
143
- console.dir(shuffledOrdering.mappingBeforeToAfter);
144
- }
145
- return [4 /*yield*/, compareResults(currentBestResult.bdd, nextBdd)];
146
- case 1:
147
- betterBdd = _h.sent();
148
- if (betterBdd.type !== 'RootNode') {
149
- throw new Error('compareResults did not return a bdd');
150
- }
151
- if (betterBdd === nextBdd) {
152
- if (log) {
153
- console.log('#'.repeat(50));
154
- console.log('found better bdd ' + nextBdd.countNodes());
155
- }
156
- currentBestResult = {
157
- bdd: nextBdd,
158
- truthTable: shuffledOrdering.newTable
159
- };
160
- onBetterBdd(currentBestResult);
161
- }
162
- return [2 /*return*/];
163
- }
164
- });
165
- };
166
- _g.label = 1;
167
- case 1:
168
- if (!(t < iterations)) return [3 /*break*/, 3];
169
- return [5 /*yield**/, _loop_1()];
170
- case 2:
171
- _g.sent();
172
- return [3 /*break*/, 1];
173
- case 3: return [2 /*return*/, currentBestResult];
174
- }
19
+ export async function optimizeBruteForce({ truthTable, iterations = Infinity, onBetterBdd = () => null, compareResults = defaultCompareResults, afterBddCreation = () => null, log = false }) {
20
+ const initialBdd = createBddFromTruthTable(truthTable);
21
+ afterBddCreation(initialBdd);
22
+ initialBdd.minimize();
23
+ let currentBestResult = {
24
+ truthTable,
25
+ bdd: initialBdd
26
+ };
27
+ if (log) {
28
+ initialBdd.log();
29
+ console.log('initial nodes amount: ' + initialBdd.countNodes());
30
+ }
31
+ let t = 0;
32
+ while (t < iterations) {
33
+ t++;
34
+ if (log) {
35
+ console.log('-'.repeat(50));
36
+ console.log('optimizeBruteForce() itterate once');
37
+ }
38
+ const shuffledOrdering = shuffleBooleanOrdering(truthTable);
39
+ const nextBdd = createBddFromTruthTable(shuffledOrdering.newTable);
40
+ // change the levels of each node
41
+ const newNodesByLevel = new Map();
42
+ const lastLevel = lastOfArray(nextBdd.getLevels());
43
+ const newSortedLevels = [];
44
+ nextBdd.getLevels()
45
+ .filter(level => level !== lastLevel)
46
+ .forEach(level => {
47
+ const newLevel = shuffledOrdering.mappingBeforeToAfter[level];
48
+ newSortedLevels.push(newLevel);
49
+ const levelSet = new Set();
50
+ newNodesByLevel.set(newLevel, levelSet);
51
+ nextBdd.getNodesOfLevel(level).forEach(node => {
52
+ node.level = newLevel;
53
+ levelSet.add(node);
54
+ });
175
55
  });
176
- });
56
+ const lastLevelSet = new Set();
57
+ nextBdd.getNodesOfLevel(lastLevel).forEach(node => lastLevelSet.add(node));
58
+ newNodesByLevel.set(lastLevel, lastLevelSet);
59
+ newSortedLevels.push(lastLevel);
60
+ nextBdd.nodesByLevel = newNodesByLevel;
61
+ nextBdd.levels = newSortedLevels;
62
+ afterBddCreation(nextBdd);
63
+ nextBdd.minimize();
64
+ if (log) {
65
+ console.log('got new bdd with nodes amount of ' + nextBdd.countNodes());
66
+ // nextBdd.log();
67
+ console.dir(shuffledOrdering.mappingBeforeToAfter);
68
+ }
69
+ const betterBdd = await compareResults(currentBestResult.bdd, nextBdd);
70
+ if (betterBdd.type !== 'RootNode') {
71
+ throw new Error('compareResults did not return a bdd');
72
+ }
73
+ if (betterBdd === nextBdd) {
74
+ if (log) {
75
+ console.log('#'.repeat(50));
76
+ console.log('found better bdd ' + nextBdd.countNodes());
77
+ }
78
+ currentBestResult = {
79
+ bdd: nextBdd,
80
+ truthTable: shuffledOrdering.newTable
81
+ };
82
+ onBetterBdd(currentBestResult);
83
+ }
84
+ }
85
+ return currentBestResult;
177
86
  }
178
- exports.optimizeBruteForce = optimizeBruteForce;
179
- function shuffleBooleanOrdering(truthTable) {
180
- var e_1, _a;
181
- var firstKey = (0, util_1.firstKeyOfMap)(truthTable);
182
- var arrayWithIndexes = getArrayWithIndexes(firstKey.length);
183
- var shuffled = (0, util_1.shuffleArray)(arrayWithIndexes);
184
- var mapping = {};
185
- var mappingBeforeToAfter = {};
186
- shuffled.forEach(function (indexBefore, indexAfter) {
87
+ export function shuffleBooleanOrdering(truthTable) {
88
+ const firstKey = firstKeyOfMap(truthTable);
89
+ const arrayWithIndexes = getArrayWithIndexes(firstKey.length);
90
+ const shuffled = shuffleArray(arrayWithIndexes);
91
+ const mapping = {};
92
+ const mappingBeforeToAfter = {};
93
+ shuffled.forEach((indexBefore, indexAfter) => {
187
94
  mapping[indexAfter] = indexBefore;
188
95
  mappingBeforeToAfter[indexBefore] = indexAfter;
189
96
  });
190
- var newTable = new Map();
191
- try {
192
- for (var _b = __values(truthTable.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
193
- var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
194
- var newKey = changeKeyOrder(key, mapping);
195
- newTable.set(newKey, value);
196
- }
197
- }
198
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
199
- finally {
200
- try {
201
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
202
- }
203
- finally { if (e_1) throw e_1.error; }
97
+ const newTable = new Map();
98
+ for (const [key, value] of truthTable.entries()) {
99
+ const newKey = changeKeyOrder(key, mapping);
100
+ newTable.set(newKey, value);
204
101
  }
205
102
  return {
206
- newTable: newTable,
207
- mapping: mapping,
208
- mappingBeforeToAfter: mappingBeforeToAfter
103
+ newTable,
104
+ mapping,
105
+ mappingBeforeToAfter
209
106
  };
210
107
  }
211
- exports.shuffleBooleanOrdering = shuffleBooleanOrdering;
212
- function changeKeyOrder(oldKey, mappingBeforeToAfter) {
213
- var chars = oldKey
108
+ export function changeKeyOrder(oldKey, mappingBeforeToAfter) {
109
+ const chars = oldKey
214
110
  .split('')
215
- .map(function (char, indexBefore) {
111
+ .map((char, indexBefore) => {
216
112
  return {
217
- char: char,
218
- indexBefore: indexBefore,
113
+ char,
114
+ indexBefore,
219
115
  indexAfter: mappingBeforeToAfter[indexBefore]
220
116
  };
221
117
  })
222
- .sort(function (a, b) { return a.indexAfter - b.indexAfter; })
223
- .map(function (charObj) { return charObj.char; })
118
+ .sort((a, b) => a.indexAfter - b.indexAfter)
119
+ .map(charObj => charObj.char)
224
120
  .join('');
225
121
  return chars;
226
122
  }
227
- exports.changeKeyOrder = changeKeyOrder;
228
- function getArrayWithIndexes(size) {
229
- var ret = [];
230
- var last = 0;
123
+ export function getArrayWithIndexes(size) {
124
+ const ret = [];
125
+ let last = 0;
231
126
  while (last < size) {
232
127
  ret.push(last);
233
128
  last++;
234
129
  }
235
130
  return ret;
236
131
  }
237
- exports.getArrayWithIndexes = getArrayWithIndexes;
238
132
  //# sourceMappingURL=optimize-brute-force.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../src/optimize-brute-force.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimize-brute-force.js","sourceRoot":"","sources":["../../src/optimize-brute-force.ts"],"names":[],"mappings":"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"}
@@ -1,69 +1,38 @@
1
- "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.Parents = void 0;
15
1
  /**
16
2
  * represents the parents of a single node
17
3
  */
18
- var Parents = /** @class */ (function () {
19
- function Parents(node) {
4
+ export class Parents {
5
+ constructor(node) {
20
6
  this.node = node;
21
7
  this.parents = new Set();
22
8
  }
23
- Parents.prototype.remove = function (node) {
9
+ remove(node) {
24
10
  this.parents.delete(node);
25
11
  if (this.parents.size === 0) {
26
12
  this.node.remove();
27
13
  }
28
- };
29
- Parents.prototype.getAll = function () {
14
+ }
15
+ getAll() {
30
16
  return Array.from(this.parents);
31
- };
32
- Parents.prototype.add = function (node) {
17
+ }
18
+ add(node) {
33
19
  if (this.node.level === node.level) {
34
20
  throw new Error('a node cannot be parent of a node with the same level');
35
21
  }
36
22
  this.parents.add(node);
37
- };
38
- Parents.prototype.has = function (node) {
23
+ }
24
+ has(node) {
39
25
  return this.parents.has(node);
40
- };
41
- Parents.prototype.toString = function () {
42
- var e_1, _a;
43
- var ret = [];
44
- try {
45
- for (var _b = __values(this.parents), _c = _b.next(); !_c.done; _c = _b.next()) {
46
- var parent_1 = _c.value;
47
- ret.push(parent_1.id);
48
- }
49
- }
50
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
51
- finally {
52
- try {
53
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
54
- }
55
- finally { if (e_1) throw e_1.error; }
26
+ }
27
+ toString() {
28
+ const ret = [];
29
+ for (const parent of this.parents) {
30
+ ret.push(parent.id);
56
31
  }
57
32
  return ret.join(', ');
58
- };
59
- Object.defineProperty(Parents.prototype, "size", {
60
- get: function () {
61
- return this.parents.size;
62
- },
63
- enumerable: false,
64
- configurable: true
65
- });
66
- return Parents;
67
- }());
68
- exports.Parents = Parents;
33
+ }
34
+ get size() {
35
+ return this.parents.size;
36
+ }
37
+ }
69
38
  //# sourceMappingURL=parents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parents.js","sourceRoot":"","sources":["../../src/parents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA;;GAEG;AACH;IAII,iBACW,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAHpB,YAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IAI1C,CAAC;IAEE,wBAAM,GAAb,UAAc,IAAiB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;IACL,CAAC;IAEM,wBAAM,GAAb;QACI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,qBAAG,GAAV,UAAW,IAAiB;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,qBAAG,GAAV,UAAW,IAAiB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,0BAAQ,GAAR;;QACI,IAAM,GAAG,GAAa,EAAE,CAAC;;YACzB,KAAqB,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA,4BAAE;gBAA9B,IAAM,QAAM,WAAA;gBACb,GAAG,CAAC,IAAI,CAAC,QAAM,CAAC,EAAE,CAAC,CAAC;aACvB;;;;;;;;;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,sBAAI,yBAAI;aAAR;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7B,CAAC;;;OAAA;IACL,cAAC;AAAD,CAAC,AA1CD,IA0CC;AA1CY,0BAAO"}
1
+ {"version":3,"file":"parents.js","sourceRoot":"","sources":["../../src/parents.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,OAAO;IAIhB,YACW,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAHpB,YAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;IAI1C,CAAC;IAEE,MAAM,CAAC,IAAiB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;IACL,CAAC;IAEM,MAAM;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,GAAG,CAAC,IAAiB;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,IAAiB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;CACJ"}