@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.
Files changed (97) hide show
  1. package/README.ja.md +124 -22
  2. package/README.md +124 -22
  3. package/README.zh-CN.md +124 -22
  4. package/dist/browser/browser-runtime-D13gHOT5.js +4189 -0
  5. package/dist/browser/highs-worker.js +21 -0
  6. package/dist/{lib/demo → browser}/highs.wasm +0 -0
  7. package/dist/browser/highs.wasm.LICENSE +22 -0
  8. package/dist/browser/loader-CVt4CloI.js +58 -0
  9. package/dist/browser/solvers/glpk.js +1057 -0
  10. package/dist/browser/solvers/glpk.min.js +1 -0
  11. package/dist/browser/solvers/z3-built.js +8245 -0
  12. package/dist/browser/solvers/z3-built.wasm +4 -0
  13. package/dist/browser/solvers/z3.js +7528 -0
  14. package/dist/browser/solvers/z3.min.js +5 -0
  15. package/dist/browser/washi.js +1213 -0
  16. package/dist/browser/washi.min.js +5 -0
  17. package/dist/lib/async-mutex-Duo4jwzn.js +195 -0
  18. package/dist/lib/constraint-XWdn0ID9.js +93 -0
  19. package/dist/lib/highs-assets.js +1 -0
  20. package/dist/lib/highs-browser-runtime.js +4189 -0
  21. package/dist/lib/highs-node-runtime.js +1 -0
  22. package/dist/lib/highs-worker-factory.js +1 -0
  23. package/dist/lib/highs-worker.js +21 -0
  24. package/dist/lib/highs.wasm +0 -0
  25. package/dist/lib/loader-Dti0v9yC.js +50 -0
  26. package/dist/lib/registry-DksqCSjI.js +32 -0
  27. package/dist/lib/solvers/glpk.js +153 -2
  28. package/dist/lib/solvers/z3-assets.js +1 -0
  29. package/dist/lib/solvers/z3-built.js +8245 -0
  30. package/dist/lib/solvers/z3-built.wasm +4 -0
  31. package/dist/lib/solvers/z3.js +451 -2
  32. package/dist/lib/washi.js +388 -78
  33. package/dist/types/index.d.ts +2 -3
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/modeler/index.d.ts +1 -1
  36. package/dist/types/modeler/index.d.ts.map +1 -1
  37. package/dist/types/modeler/model.d.ts +1 -1
  38. package/dist/types/modeler/model.d.ts.map +1 -1
  39. package/dist/types/modeler/solvers/glpk/index.d.ts +3 -0
  40. package/dist/types/modeler/solvers/glpk/index.d.ts.map +1 -0
  41. package/dist/types/modeler/solvers/glpk/loader.d.ts +16 -0
  42. package/dist/types/modeler/solvers/glpk/loader.d.ts.map +1 -0
  43. package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -0
  44. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -0
  45. package/dist/types/modeler/solvers/glpk.d.ts +1 -21
  46. package/dist/types/modeler/solvers/glpk.d.ts.map +1 -1
  47. package/dist/types/modeler/solvers/highs/assets.d.ts +3 -0
  48. package/dist/types/modeler/solvers/highs/assets.d.ts.map +1 -0
  49. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -0
  50. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -0
  51. package/dist/types/modeler/solvers/highs/index.d.ts +6 -0
  52. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -0
  53. package/dist/types/{highs-loader.d.ts → modeler/solvers/highs/loader.d.ts} +3 -3
  54. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -0
  55. package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -0
  56. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -0
  57. package/dist/types/modeler/solvers/highs/solver.d.ts +33 -0
  58. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -0
  59. package/dist/types/modeler/solvers/highs/worker-client.d.ts +13 -0
  60. package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -0
  61. package/dist/types/modeler/solvers/highs/worker-factory.d.ts +3 -0
  62. package/dist/types/modeler/solvers/highs/worker-factory.d.ts.map +1 -0
  63. package/dist/types/modeler/solvers/highs/worker.d.ts +2 -0
  64. package/dist/types/modeler/solvers/highs/worker.d.ts.map +1 -0
  65. package/dist/types/modeler/solvers/highs.d.ts +1 -25
  66. package/dist/types/modeler/solvers/highs.d.ts.map +1 -1
  67. package/dist/types/modeler/solvers/index.d.ts +0 -2
  68. package/dist/types/modeler/solvers/index.d.ts.map +1 -1
  69. package/dist/types/modeler/solvers/mock.d.ts +1 -0
  70. package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
  71. package/dist/types/modeler/solvers/registry.d.ts +1 -2
  72. package/dist/types/modeler/solvers/registry.d.ts.map +1 -1
  73. package/dist/types/modeler/solvers/types.d.ts +1 -1
  74. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  75. package/dist/types/modeler/solvers/z3/assets.d.ts +11 -0
  76. package/dist/types/modeler/solvers/z3/assets.d.ts.map +1 -0
  77. package/dist/types/modeler/solvers/z3/index.d.ts +3 -0
  78. package/dist/types/modeler/solvers/z3/index.d.ts.map +1 -0
  79. package/dist/types/modeler/solvers/z3/loader.d.ts +44 -0
  80. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -0
  81. package/dist/types/modeler/solvers/z3/solver.d.ts +34 -0
  82. package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -0
  83. package/dist/types/modeler/solvers/z3.d.ts +1 -36
  84. package/dist/types/modeler/solvers/z3.d.ts.map +1 -1
  85. package/package.json +35 -9
  86. package/dist/lib/assets/highs-worker-DeDWU6KI.js +0 -3
  87. package/dist/lib/glpk-BC32ZaPG.js +0 -126
  88. package/dist/lib/washi-logo.png +0 -0
  89. package/dist/lib/washi-logo.svg +0 -70
  90. package/dist/lib/z3-C8g-PtmP.js +0 -582
  91. package/dist/types/glpk-loader.d.ts +0 -8
  92. package/dist/types/glpk-loader.d.ts.map +0 -1
  93. package/dist/types/highs-loader.d.ts.map +0 -1
  94. package/dist/types/highs-worker-client.d.ts +0 -12
  95. package/dist/types/highs-worker-client.d.ts.map +0 -1
  96. package/dist/types/highs-worker.d.ts +0 -2
  97. 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 };
Binary file
@@ -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>