@ohtaman/washi 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +124 -22
- package/README.md +124 -22
- package/README.zh-CN.md +124 -22
- package/dist/browser/browser-runtime-D13gHOT5.js +4189 -0
- package/dist/browser/highs-worker.js +21 -0
- package/dist/{lib/demo → browser}/highs.wasm +0 -0
- package/dist/browser/highs.wasm.LICENSE +22 -0
- package/dist/browser/loader-CVt4CloI.js +58 -0
- package/dist/browser/solvers/glpk.js +1057 -0
- package/dist/browser/solvers/glpk.min.js +1 -0
- package/dist/browser/solvers/z3-built.js +8245 -0
- package/dist/browser/solvers/z3-built.wasm +4 -0
- package/dist/browser/solvers/z3.js +7528 -0
- package/dist/browser/solvers/z3.min.js +5 -0
- package/dist/browser/washi.js +1213 -0
- package/dist/browser/washi.min.js +5 -0
- package/dist/lib/async-mutex-Duo4jwzn.js +195 -0
- package/dist/lib/constraint-XWdn0ID9.js +93 -0
- package/dist/lib/highs-assets.js +1 -0
- package/dist/lib/highs-browser-runtime.js +4189 -0
- package/dist/lib/highs-node-runtime.js +1 -0
- package/dist/lib/highs-worker-factory.js +1 -0
- package/dist/lib/highs-worker.js +21 -0
- package/dist/lib/highs.wasm +0 -0
- package/dist/lib/loader-Dti0v9yC.js +50 -0
- package/dist/lib/registry-DksqCSjI.js +32 -0
- package/dist/lib/solvers/glpk.js +153 -2
- package/dist/lib/solvers/z3-assets.js +1 -0
- package/dist/lib/solvers/z3-built.js +8245 -0
- package/dist/lib/solvers/z3-built.wasm +4 -0
- package/dist/lib/solvers/z3.js +451 -2
- package/dist/lib/washi.js +388 -78
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modeler/index.d.ts +1 -1
- package/dist/types/modeler/index.d.ts.map +1 -1
- package/dist/types/modeler/model.d.ts +1 -1
- package/dist/types/modeler/model.d.ts.map +1 -1
- package/dist/types/modeler/solvers/glpk/index.d.ts +3 -0
- package/dist/types/modeler/solvers/glpk/index.d.ts.map +1 -0
- package/dist/types/modeler/solvers/glpk/loader.d.ts +16 -0
- package/dist/types/modeler/solvers/glpk/loader.d.ts.map +1 -0
- package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -0
- package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -0
- package/dist/types/modeler/solvers/glpk.d.ts +1 -21
- package/dist/types/modeler/solvers/glpk.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/assets.d.ts +3 -0
- package/dist/types/modeler/solvers/highs/assets.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -0
- package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/index.d.ts +6 -0
- package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -0
- package/dist/types/{highs-loader.d.ts → modeler/solvers/highs/loader.d.ts} +3 -3
- package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -0
- package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/solver.d.ts +33 -0
- package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/worker-client.d.ts +13 -0
- package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/worker-factory.d.ts +3 -0
- package/dist/types/modeler/solvers/highs/worker-factory.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/worker.d.ts +2 -0
- package/dist/types/modeler/solvers/highs/worker.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs.d.ts +1 -25
- package/dist/types/modeler/solvers/highs.d.ts.map +1 -1
- package/dist/types/modeler/solvers/index.d.ts +0 -2
- package/dist/types/modeler/solvers/index.d.ts.map +1 -1
- package/dist/types/modeler/solvers/mock.d.ts +1 -0
- package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
- package/dist/types/modeler/solvers/registry.d.ts +1 -2
- package/dist/types/modeler/solvers/registry.d.ts.map +1 -1
- package/dist/types/modeler/solvers/types.d.ts +1 -1
- package/dist/types/modeler/solvers/types.d.ts.map +1 -1
- package/dist/types/modeler/solvers/z3/assets.d.ts +11 -0
- package/dist/types/modeler/solvers/z3/assets.d.ts.map +1 -0
- package/dist/types/modeler/solvers/z3/index.d.ts +3 -0
- package/dist/types/modeler/solvers/z3/index.d.ts.map +1 -0
- package/dist/types/modeler/solvers/z3/loader.d.ts +44 -0
- package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -0
- package/dist/types/modeler/solvers/z3/solver.d.ts +34 -0
- package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -0
- package/dist/types/modeler/solvers/z3.d.ts +1 -36
- package/dist/types/modeler/solvers/z3.d.ts.map +1 -1
- package/package.json +35 -9
- package/dist/lib/assets/highs-worker-DeDWU6KI.js +0 -3
- package/dist/lib/glpk-BC32ZaPG.js +0 -126
- package/dist/lib/washi-logo.png +0 -0
- package/dist/lib/washi-logo.svg +0 -70
- package/dist/lib/z3-C8g-PtmP.js +0 -582
- package/dist/types/glpk-loader.d.ts +0 -8
- package/dist/types/glpk-loader.d.ts.map +0 -1
- package/dist/types/highs-loader.d.ts.map +0 -1
- package/dist/types/highs-worker-client.d.ts +0 -12
- package/dist/types/highs-worker-client.d.ts.map +0 -1
- package/dist/types/highs-worker.d.ts +0 -2
- package/dist/types/highs-worker.d.ts.map +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
//#region src/glpk-loader.ts
|
|
2
|
-
var e = null;
|
|
3
|
-
async function t() {
|
|
4
|
-
return e || (e = (async () => {
|
|
5
|
-
if (typeof process < "u" && process.versions && process.versions.node && process.type !== "renderer") {
|
|
6
|
-
let e = await import("glpk.js/node");
|
|
7
|
-
return await (e.default || e)();
|
|
8
|
-
}
|
|
9
|
-
let e = await import("glpk.js");
|
|
10
|
-
return await (e.default || e)();
|
|
11
|
-
})(), e);
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/modeler/solvers/glpk.ts
|
|
15
|
-
var n = class e {
|
|
16
|
-
static capabilities = {
|
|
17
|
-
supportsMIP: !0,
|
|
18
|
-
supportsQP: !1
|
|
19
|
-
};
|
|
20
|
-
name = "GLPK";
|
|
21
|
-
version = "5.0.0";
|
|
22
|
-
capabilities = e.capabilities;
|
|
23
|
-
options;
|
|
24
|
-
constructor(e = {}) {
|
|
25
|
-
this.options = e;
|
|
26
|
-
}
|
|
27
|
-
async solve(e, n, r = {}) {
|
|
28
|
-
let i = {
|
|
29
|
-
...this.options,
|
|
30
|
-
...r
|
|
31
|
-
}, a = await t(), { nameToVar: o, nameToConstraint: s } = n, c = /* @__PURE__ */ new Map();
|
|
32
|
-
for (let [e, t] of o.entries()) c.set(t, e);
|
|
33
|
-
let l = /* @__PURE__ */ new Map();
|
|
34
|
-
for (let [e, t] of s.entries()) l.set(t, e);
|
|
35
|
-
let u = [], d = "linearTerms" in e.objective ? e.objective.linearTerms : e.objective.terms;
|
|
36
|
-
if (d) for (let [e, t] of d) {
|
|
37
|
-
if (Math.abs(t) < 1e-12) continue;
|
|
38
|
-
let n = c.get(e) || e.name;
|
|
39
|
-
u.push({
|
|
40
|
-
name: n,
|
|
41
|
-
coef: Number(t)
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
let f = [];
|
|
45
|
-
for (let t of e.constraints) {
|
|
46
|
-
let e = l.get(t) || t.name || `c_${f.length + 1}`, n = [];
|
|
47
|
-
for (let [e, r] of t.lhs.terms) {
|
|
48
|
-
if (Math.abs(r) < 1e-12) continue;
|
|
49
|
-
let t = c.get(e) || e.name;
|
|
50
|
-
n.push({
|
|
51
|
-
name: t,
|
|
52
|
-
coef: Number(r)
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
let r;
|
|
56
|
-
r = t.sense === "==" ? {
|
|
57
|
-
type: a.GLP_FX,
|
|
58
|
-
lb: t.rhs,
|
|
59
|
-
ub: t.rhs
|
|
60
|
-
} : t.sense === "<=" ? {
|
|
61
|
-
type: a.GLP_UP,
|
|
62
|
-
lb: -Infinity,
|
|
63
|
-
ub: t.rhs
|
|
64
|
-
} : {
|
|
65
|
-
type: a.GLP_LO,
|
|
66
|
-
lb: t.rhs,
|
|
67
|
-
ub: Infinity
|
|
68
|
-
}, f.push({
|
|
69
|
-
name: e,
|
|
70
|
-
vars: n,
|
|
71
|
-
bnds: r
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
let p = [], m = [], h = [];
|
|
75
|
-
for (let t of e.variables) {
|
|
76
|
-
let e = c.get(t) || t.name;
|
|
77
|
-
t.type === "Binary" ? p.push(e) : t.type === "Integer" && m.push(e);
|
|
78
|
-
let n = t.lb, r = t.ub, i;
|
|
79
|
-
i = n === -Infinity && r === Infinity ? a.GLP_FR : n !== -Infinity && r === Infinity ? a.GLP_LO : n === -Infinity && r !== Infinity ? a.GLP_UP : n === r ? a.GLP_FX : a.GLP_DB, h.push({
|
|
80
|
-
name: e,
|
|
81
|
-
type: i,
|
|
82
|
-
lb: n === -Infinity ? 0 : n,
|
|
83
|
-
ub: r === Infinity ? 0 : r
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
let g = {
|
|
87
|
-
name: e.name || "GLPK_Model",
|
|
88
|
-
objective: {
|
|
89
|
-
direction: e.sense === "Maximize" ? a.GLP_MAX : a.GLP_MIN,
|
|
90
|
-
name: "obj",
|
|
91
|
-
vars: u
|
|
92
|
-
},
|
|
93
|
-
subjectTo: f
|
|
94
|
-
};
|
|
95
|
-
h.length > 0 && (g.bounds = h), p.length > 0 && (g.binaries = p), m.length > 0 && (g.generals = m);
|
|
96
|
-
let _ = {
|
|
97
|
-
msglev: i.verbose ? a.GLP_MSG_ALL : a.GLP_MSG_OFF,
|
|
98
|
-
presol: i.presolve !== "off"
|
|
99
|
-
};
|
|
100
|
-
typeof i.timeLimit == "number" && (_.tmlim = i.timeLimit), typeof i.mipGap == "number" && (_.mipgap = i.mipGap);
|
|
101
|
-
let v = performance.now(), y = await a.solve(g, _), b = (performance.now() - v) / 1e3, x = y?.result?.status, S;
|
|
102
|
-
S = x === a.GLP_OPT ? "Optimal" : x === a.GLP_FEAS ? "Feasible" : x === a.GLP_INFEAS || x === a.GLP_NOFEAS ? "Infeasible" : x === a.GLP_UNBND ? "Unbounded" : "Optimal";
|
|
103
|
-
let C = y?.result?.z, w = typeof C == "number" ? C + e.objective.constant : null, T = {}, E = y?.result?.vars || {};
|
|
104
|
-
for (let [e, t] of Object.entries(E)) {
|
|
105
|
-
let n = o.get(e), r = n ? n.name : e;
|
|
106
|
-
T[r] = typeof t == "number" ? Math.abs(t) < 1e-9 ? 0 : t : 0;
|
|
107
|
-
}
|
|
108
|
-
for (let t of e.variables) T[t.name] === void 0 && (T[t.name] = 0);
|
|
109
|
-
let D = {};
|
|
110
|
-
if (y?.result?.dual) for (let [e, t] of Object.entries(y.result.dual)) {
|
|
111
|
-
let n = s.get(e), r = n ? n.name : e;
|
|
112
|
-
D[r] = Number(t);
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
status: S,
|
|
116
|
-
objectiveValue: w,
|
|
117
|
-
values: T,
|
|
118
|
-
duals: D,
|
|
119
|
-
runTime: y?.time || b,
|
|
120
|
-
logs: [`GLPK solved in ${(y?.time || b) * 1e3} ms.`],
|
|
121
|
-
raw: y
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
//#endregion
|
|
126
|
-
export { t as n, n as t };
|
package/dist/lib/washi-logo.png
DELETED
|
Binary file
|
package/dist/lib/washi-logo.svg
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" fill="none">
|
|
2
|
-
<defs>
|
|
3
|
-
<!-- Facet 1: Crimson Red (Warm / Craft) -->
|
|
4
|
-
<linearGradient id="craneRedTop" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
5
|
-
<stop offset="0%" stop-color="#FF385C" />
|
|
6
|
-
<stop offset="100%" stop-color="#E11D48" />
|
|
7
|
-
</linearGradient>
|
|
8
|
-
<linearGradient id="craneRedBottom" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
9
|
-
<stop offset="0%" stop-color="#BE123C" />
|
|
10
|
-
<stop offset="100%" stop-color="#881337" />
|
|
11
|
-
</linearGradient>
|
|
12
|
-
<linearGradient id="craneRedNeck" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
13
|
-
<stop offset="0%" stop-color="#FB7185" />
|
|
14
|
-
<stop offset="100%" stop-color="#E11D48" />
|
|
15
|
-
</linearGradient>
|
|
16
|
-
|
|
17
|
-
<!-- Facet 2: Center Origami Transition (Purple / Logic) -->
|
|
18
|
-
<linearGradient id="craneBodyLeft" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
19
|
-
<stop offset="0%" stop-color="#E11D48" />
|
|
20
|
-
<stop offset="100%" stop-color="#9333EA" />
|
|
21
|
-
</linearGradient>
|
|
22
|
-
<linearGradient id="craneBodyRight" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
23
|
-
<stop offset="0%" stop-color="#9333EA" />
|
|
24
|
-
<stop offset="100%" stop-color="#4F46E5" />
|
|
25
|
-
</linearGradient>
|
|
26
|
-
|
|
27
|
-
<!-- Facet 3: Electric Indigo (Cool / Tech & Solver) -->
|
|
28
|
-
<linearGradient id="craneIndigoTop" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
29
|
-
<stop offset="0%" stop-color="#6366F1" />
|
|
30
|
-
<stop offset="100%" stop-color="#4F46E5" />
|
|
31
|
-
</linearGradient>
|
|
32
|
-
<linearGradient id="craneIndigoBottom" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
33
|
-
<stop offset="0%" stop-color="#4338CA" />
|
|
34
|
-
<stop offset="100%" stop-color="#312E81" />
|
|
35
|
-
</linearGradient>
|
|
36
|
-
<linearGradient id="craneIndigoTail" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
37
|
-
<stop offset="0%" stop-color="#818CF8" />
|
|
38
|
-
<stop offset="100%" stop-color="#4F46E5" />
|
|
39
|
-
</linearGradient>
|
|
40
|
-
</defs>
|
|
41
|
-
|
|
42
|
-
<g id="washi-origami-symbol" stroke="#FFFFFF" stroke-opacity="0.2" stroke-width="0.8" stroke-linejoin="round">
|
|
43
|
-
<!-- 1. Left Neck & Head (Origami fold) -->
|
|
44
|
-
<polygon points="120,110 75,35 60,50 95,120" fill="url(#craneRedNeck)" />
|
|
45
|
-
<polygon points="75,35 60,50 50,42" fill="#E11D48" />
|
|
46
|
-
|
|
47
|
-
<!-- 2. Right Tail (Origami fold) -->
|
|
48
|
-
<polygon points="120,110 165,35 145,120" fill="url(#craneIndigoTail)" />
|
|
49
|
-
|
|
50
|
-
<!-- 3. Left Wing (Main Upper Facet) -->
|
|
51
|
-
<polygon points="120,110 15,55 95,145" fill="url(#craneRedTop)" />
|
|
52
|
-
<!-- Left Wing (Under Facet) -->
|
|
53
|
-
<polygon points="15,55 95,145 70,170" fill="url(#craneRedBottom)" />
|
|
54
|
-
|
|
55
|
-
<!-- 4. Right Wing (Main Upper Facet) -->
|
|
56
|
-
<polygon points="120,110 225,55 145,145" fill="url(#craneIndigoTop)" />
|
|
57
|
-
<!-- Right Wing (Under Facet) -->
|
|
58
|
-
<polygon points="225,55 145,145 170,170" fill="url(#craneIndigoBottom)" />
|
|
59
|
-
|
|
60
|
-
<!-- 5. Center Diamond Keel (Polytope Core) -->
|
|
61
|
-
<polygon points="120,110 95,145 120,195" fill="url(#craneBodyLeft)" />
|
|
62
|
-
<polygon points="120,110 145,145 120,195" fill="url(#craneBodyRight)" />
|
|
63
|
-
|
|
64
|
-
<!-- 6. Extreme Points / Optimal Mathematical Vertices -->
|
|
65
|
-
<circle cx="15" cy="55" r="4" fill="#FFFFFF" stroke="#E11D48" stroke-width="2" />
|
|
66
|
-
<circle cx="225" cy="55" r="4" fill="#FFFFFF" stroke="#4F46E5" stroke-width="2" />
|
|
67
|
-
<circle cx="120" cy="195" r="4" fill="#FFFFFF" stroke="#9333EA" stroke-width="2" />
|
|
68
|
-
<circle cx="120" cy="110" r="3" fill="#FFFFFF" stroke="#C026D3" stroke-width="1.5" />
|
|
69
|
-
</g>
|
|
70
|
-
</svg>
|