@danielsimonjr/mathts-functions 0.29.0 → 0.30.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/dist/index.d.ts CHANGED
@@ -45,7 +45,11 @@ export type { LinregressResult } from './regression-extra.js';
45
45
  export { nelderMead, gradientDescent, levenbergMarquardt } from './optimization-extra.js';
46
46
  export type { OptimizeResult, LMResult } from './optimization-extra.js';
47
47
  export { kmeans, spectralClustering } from './clustering-extra.js';
48
+ export { bfgs } from './numeric/bfgs.js';
49
+ export type { BfgsOptions, BfgsResult } from './numeric/bfgs.js';
48
50
  export type { KMeansResult } from './clustering-extra.js';
51
+ export { nnls, lsqBounded } from './numeric/nnls.js';
52
+ export type { NnlsOptions, NnlsResult, LsqBoundedOptions, LsqBoundedResult, } from './numeric/nnls.js';
49
53
  export { symbolicIntegral } from './cas-integration.js';
50
54
  export { firwin, butter, lfilter, lfilterZi, filtfilt } from './signal-filter-extra.js';
51
55
  export { haversine, EARTH_RADIUS_KM, slerp, quaternionMultiply, quaternionConjugate, quaternionNormalize, quaternionFromAxisAngle, quaternionRotate, quaternionToRotationMatrix, } from './geometry-extra.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,kBAAkB,CAAC;AAKjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAOzC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGlG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACnF,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,GAAG,EACH,MAAM,EACN,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,GAAG,EACH,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,GACV,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,KAAK,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,eAAe,EACf,cAAc,EACd,EAAE,GACH,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIzF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIlG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKhG,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGxF,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8381,18 +8381,18 @@ import { computePool as computePool7 } from "@danielsimonjr/mathts-parallel";
8381
8381
  var GEOMETRY_WASM_THRESHOLD = 32;
8382
8382
  var HULL3D_WASM_THRESHOLD = 1024;
8383
8383
  function angle2D(v1, v2) {
8384
- const dot3 = v1[0] * v2[0] + v1[1] * v2[1];
8384
+ const dot4 = v1[0] * v2[0] + v1[1] * v2[1];
8385
8385
  const mag1 = Math.sqrt(v1[0] ** 2 + v1[1] ** 2);
8386
8386
  const mag2 = Math.sqrt(v2[0] ** 2 + v2[1] ** 2);
8387
8387
  if (mag1 === 0 || mag2 === 0) return NaN;
8388
- return Math.acos(Math.max(-1, Math.min(1, dot3 / (mag1 * mag2))));
8388
+ return Math.acos(Math.max(-1, Math.min(1, dot4 / (mag1 * mag2))));
8389
8389
  }
8390
8390
  function angle3D(v1, v2) {
8391
- const dot3 = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
8391
+ const dot4 = v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
8392
8392
  const mag1 = Math.sqrt(v1[0] ** 2 + v1[1] ** 2 + v1[2] ** 2);
8393
8393
  const mag2 = Math.sqrt(v2[0] ** 2 + v2[1] ** 2 + v2[2] ** 2);
8394
8394
  if (mag1 === 0 || mag2 === 0) return NaN;
8395
- return Math.acos(Math.max(-1, Math.min(1, dot3 / (mag1 * mag2))));
8395
+ return Math.acos(Math.max(-1, Math.min(1, dot4 / (mag1 * mag2))));
8396
8396
  }
8397
8397
  function cross3D(a, b) {
8398
8398
  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
@@ -8497,14 +8497,14 @@ function reflectVector(v, normal) {
8497
8497
  const mag = Math.sqrt(normal.reduce((s, c) => s + c * c, 0));
8498
8498
  if (mag === 0) return v.slice();
8499
8499
  const n = normal.map((c) => c / mag);
8500
- const dot3 = v.reduce((s, c, i) => s + c * n[i], 0);
8501
- return v.map((c, i) => c - 2 * dot3 * n[i]);
8500
+ const dot4 = v.reduce((s, c, i) => s + c * n[i], 0);
8501
+ return v.map((c, i) => c - 2 * dot4 * n[i]);
8502
8502
  }
8503
8503
  function projectVector(v, onto) {
8504
- const dot3 = v.reduce((s, c, i) => s + c * onto[i], 0);
8504
+ const dot4 = v.reduce((s, c, i) => s + c * onto[i], 0);
8505
8505
  const magSq = onto.reduce((s, c) => s + c * c, 0);
8506
8506
  if (magSq === 0) return onto.map(() => 0);
8507
- const scale = dot3 / magSq;
8507
+ const scale = dot4 / magSq;
8508
8508
  return onto.map((c) => c * scale);
8509
8509
  }
8510
8510
  function distance2D(a, b) {
@@ -13108,7 +13108,7 @@ function quadprog(H, f, A, b) {
13108
13108
  }
13109
13109
  return x;
13110
13110
  }
13111
- function linprog(c, A, b) {
13111
+ function linprogOnePhaseLegacy(c, A, b) {
13112
13112
  const m = A.length;
13113
13113
  const n = c.length;
13114
13114
  const tableau = [];
@@ -13179,6 +13179,285 @@ function linprog(c, A, b) {
13179
13179
  }
13180
13180
  return x;
13181
13181
  }
13182
+ var LINPROG_TOL = 1e-9;
13183
+ function linprogSolveTwoPhase(costWork, Aeq, beq, hasSlack, slackCol) {
13184
+ const m = Aeq.length;
13185
+ const nw = costWork.length;
13186
+ if (m === 0) {
13187
+ for (let j = 0; j < nw; j++) {
13188
+ if (costWork[j] < -LINPROG_TOL) return { xWork: [], status: "unbounded" };
13189
+ }
13190
+ return { xWork: new Array(nw).fill(0), status: "optimal" };
13191
+ }
13192
+ const rows = [];
13193
+ const rhs = [];
13194
+ const flipped = [];
13195
+ for (let i2 = 0; i2 < m; i2++) {
13196
+ let row2 = [...Aeq[i2]];
13197
+ let b = beq[i2];
13198
+ let f = false;
13199
+ if (b < 0) {
13200
+ row2 = row2.map((v) => -v);
13201
+ b = -b;
13202
+ f = true;
13203
+ }
13204
+ rows.push(row2);
13205
+ rhs.push(b);
13206
+ flipped.push(f);
13207
+ }
13208
+ const basis = new Array(m).fill(-1);
13209
+ const artificialCols = [];
13210
+ let nextCol = nw;
13211
+ for (let i2 = 0; i2 < m; i2++) {
13212
+ if (hasSlack[i2] && !flipped[i2]) {
13213
+ basis[i2] = slackCol[i2];
13214
+ } else {
13215
+ const col = nextCol++;
13216
+ artificialCols.push(col);
13217
+ basis[i2] = col;
13218
+ }
13219
+ }
13220
+ const totalCols = nextCol;
13221
+ const isArtificial = new Array(totalCols).fill(false);
13222
+ for (const col of artificialCols) isArtificial[col] = true;
13223
+ const width = totalCols + 1;
13224
+ const tableau = [];
13225
+ for (let i2 = 0; i2 < m; i2++) {
13226
+ const row2 = new Array(width).fill(0);
13227
+ for (let j = 0; j < nw; j++) row2[j] = rows[i2][j];
13228
+ if (isArtificial[basis[i2]]) row2[basis[i2]] = 1;
13229
+ row2[totalCols] = rhs[i2];
13230
+ tableau.push(row2);
13231
+ }
13232
+ const pivot = (pr, pc, objRow) => {
13233
+ const pivotVal = tableau[pr][pc];
13234
+ for (let j = 0; j < width; j++) tableau[pr][j] /= pivotVal;
13235
+ for (let i2 = 0; i2 < tableau.length; i2++) {
13236
+ if (i2 === pr) continue;
13237
+ const factor3 = tableau[i2][pc];
13238
+ if (factor3 === 0) continue;
13239
+ for (let j = 0; j < width; j++) tableau[i2][j] -= factor3 * tableau[pr][j];
13240
+ }
13241
+ const factor2 = objRow[pc];
13242
+ if (factor2 !== 0) {
13243
+ for (let j = 0; j < width; j++) objRow[j] -= factor2 * tableau[pr][j];
13244
+ }
13245
+ };
13246
+ const buildObjRow = (costFull) => {
13247
+ const row2 = new Array(width).fill(0);
13248
+ for (let j = 0; j < totalCols; j++) row2[j] = costFull[j];
13249
+ for (let i2 = 0; i2 < tableau.length; i2++) {
13250
+ const cb = costFull[basis[i2]];
13251
+ if (cb === 0) continue;
13252
+ for (let j = 0; j < width; j++) row2[j] -= cb * tableau[i2][j];
13253
+ }
13254
+ return row2;
13255
+ };
13256
+ const runSimplex = (objRow, excluded, maxIter = 2e3) => {
13257
+ for (let iter = 0; iter < maxIter; iter++) {
13258
+ let pivotCol = -1;
13259
+ let minVal = -LINPROG_TOL;
13260
+ for (let j = 0; j < totalCols; j++) {
13261
+ if (excluded[j]) continue;
13262
+ if (objRow[j] < minVal) {
13263
+ minVal = objRow[j];
13264
+ pivotCol = j;
13265
+ }
13266
+ }
13267
+ if (pivotCol === -1) return "optimal";
13268
+ let pivotRow = -1;
13269
+ let minRatio = Infinity;
13270
+ for (let i2 = 0; i2 < tableau.length; i2++) {
13271
+ if (tableau[i2][pivotCol] > LINPROG_TOL) {
13272
+ const ratio = tableau[i2][totalCols] / tableau[i2][pivotCol];
13273
+ if (ratio < minRatio - 1e-12) {
13274
+ minRatio = ratio;
13275
+ pivotRow = i2;
13276
+ }
13277
+ }
13278
+ }
13279
+ if (pivotRow === -1) return "unbounded";
13280
+ basis[pivotRow] = pivotCol;
13281
+ pivot(pivotRow, pivotCol, objRow);
13282
+ }
13283
+ return "optimal";
13284
+ };
13285
+ const noExclusions = new Array(totalCols).fill(false);
13286
+ const cost1 = new Array(totalCols).fill(0);
13287
+ for (const col of artificialCols) cost1[col] = 1;
13288
+ const objRow1 = buildObjRow(cost1);
13289
+ const phase1Status = runSimplex(objRow1, noExclusions);
13290
+ if (phase1Status === "unbounded") return { xWork: [], status: "infeasible" };
13291
+ let phase1Obj = 0;
13292
+ for (let i2 = 0; i2 < tableau.length; i2++) phase1Obj += cost1[basis[i2]] * tableau[i2][totalCols];
13293
+ if (phase1Obj > 1e-7) return { xWork: [], status: "infeasible" };
13294
+ let i = 0;
13295
+ while (i < tableau.length) {
13296
+ if (!isArtificial[basis[i]]) {
13297
+ i++;
13298
+ continue;
13299
+ }
13300
+ let pc = -1;
13301
+ for (let j = 0; j < nw; j++) {
13302
+ if (Math.abs(tableau[i][j]) > 1e-8) {
13303
+ pc = j;
13304
+ break;
13305
+ }
13306
+ }
13307
+ if (pc === -1) {
13308
+ tableau.splice(i, 1);
13309
+ basis.splice(i, 1);
13310
+ continue;
13311
+ }
13312
+ basis[i] = pc;
13313
+ pivot(i, pc, new Array(width).fill(0));
13314
+ i++;
13315
+ }
13316
+ const costFull2 = new Array(totalCols).fill(0);
13317
+ for (let j = 0; j < nw; j++) costFull2[j] = costWork[j];
13318
+ const objRow2 = buildObjRow(costFull2);
13319
+ const excludeArtificial = isArtificial.slice();
13320
+ const phase2Status = runSimplex(objRow2, excludeArtificial);
13321
+ if (phase2Status === "unbounded") return { xWork: [], status: "unbounded" };
13322
+ const xWork = new Array(nw).fill(0);
13323
+ for (let r = 0; r < tableau.length; r++) {
13324
+ if (basis[r] < nw) xWork[basis[r]] = Math.max(0, tableau[r][totalCols]);
13325
+ }
13326
+ return { xWork, status: "optimal" };
13327
+ }
13328
+ function linprogTwoPhase(c, opts) {
13329
+ const n = c.length;
13330
+ const boundsResolved = [];
13331
+ for (let j = 0; j < n; j++) {
13332
+ const b = opts.bounds?.[j];
13333
+ boundsResolved.push(b ? [b[0], b[1]] : [0, null]);
13334
+ }
13335
+ let col = 0;
13336
+ const expansions = [];
13337
+ for (let j = 0; j < n; j++) {
13338
+ const low = boundsResolved[j][0];
13339
+ if (low === null) {
13340
+ const colPos = col++;
13341
+ const colNeg = col++;
13342
+ expansions.push({ kind: "split", colPos, colNeg });
13343
+ } else {
13344
+ const c0 = col++;
13345
+ expansions.push({ kind: "shift", col: c0, shift: low });
13346
+ }
13347
+ }
13348
+ const nx = col;
13349
+ const expandRow = (row2) => {
13350
+ const out = new Array(nx).fill(0);
13351
+ for (let j = 0; j < n; j++) {
13352
+ const coeff = row2[j] ?? 0;
13353
+ if (coeff === 0) continue;
13354
+ const e = expansions[j];
13355
+ if (e.kind === "shift") out[e.col] += coeff;
13356
+ else {
13357
+ out[e.colPos] += coeff;
13358
+ out[e.colNeg] -= coeff;
13359
+ }
13360
+ }
13361
+ return out;
13362
+ };
13363
+ const shiftedRhs = (row2, rhsVal) => {
13364
+ let r = rhsVal;
13365
+ for (let j = 0; j < n; j++) {
13366
+ const e = expansions[j];
13367
+ if (e.kind === "shift" && e.shift !== 0) r -= (row2[j] ?? 0) * e.shift;
13368
+ }
13369
+ return r;
13370
+ };
13371
+ let constant = 0;
13372
+ const cWork = new Array(nx).fill(0);
13373
+ for (let j = 0; j < n; j++) {
13374
+ const e = expansions[j];
13375
+ if (e.kind === "shift") {
13376
+ cWork[e.col] = c[j];
13377
+ constant += c[j] * e.shift;
13378
+ } else {
13379
+ cWork[e.colPos] = c[j];
13380
+ cWork[e.colNeg] = -c[j];
13381
+ }
13382
+ }
13383
+ const ubRows = [];
13384
+ const ubRhs = [];
13385
+ const A_ub = opts.A_ub ?? [];
13386
+ const b_ub = opts.b_ub ?? [];
13387
+ for (let i = 0; i < A_ub.length; i++) {
13388
+ ubRows.push(expandRow(A_ub[i]));
13389
+ ubRhs.push(shiftedRhs(A_ub[i], b_ub[i]));
13390
+ }
13391
+ for (let j = 0; j < n; j++) {
13392
+ const high = boundsResolved[j][1];
13393
+ if (high === null) continue;
13394
+ const e = expansions[j];
13395
+ const row2 = new Array(nx).fill(0);
13396
+ let rhsVal;
13397
+ if (e.kind === "shift") {
13398
+ row2[e.col] = 1;
13399
+ rhsVal = high - e.shift;
13400
+ } else {
13401
+ row2[e.colPos] = 1;
13402
+ row2[e.colNeg] = -1;
13403
+ rhsVal = high;
13404
+ }
13405
+ ubRows.push(row2);
13406
+ ubRhs.push(rhsVal);
13407
+ }
13408
+ const A_eq = opts.A_eq ?? [];
13409
+ const b_eq = opts.b_eq ?? [];
13410
+ const eqRows = [];
13411
+ const eqRhs = [];
13412
+ for (let i = 0; i < A_eq.length; i++) {
13413
+ eqRows.push(expandRow(A_eq[i]));
13414
+ eqRhs.push(shiftedRhs(A_eq[i], b_eq[i]));
13415
+ }
13416
+ const mUb = ubRows.length;
13417
+ const mEq = eqRows.length;
13418
+ const nw = nx + mUb;
13419
+ const Aeq = [];
13420
+ const beq = [];
13421
+ const hasSlack = [];
13422
+ const slackCol = [];
13423
+ for (let i = 0; i < mUb; i++) {
13424
+ const row2 = new Array(nw).fill(0);
13425
+ for (let j = 0; j < nx; j++) row2[j] = ubRows[i][j];
13426
+ row2[nx + i] = 1;
13427
+ Aeq.push(row2);
13428
+ beq.push(ubRhs[i]);
13429
+ hasSlack.push(true);
13430
+ slackCol.push(nx + i);
13431
+ }
13432
+ for (let i = 0; i < mEq; i++) {
13433
+ const row2 = new Array(nw).fill(0);
13434
+ for (let j = 0; j < nx; j++) row2[j] = eqRows[i][j];
13435
+ Aeq.push(row2);
13436
+ beq.push(eqRhs[i]);
13437
+ hasSlack.push(false);
13438
+ slackCol.push(-1);
13439
+ }
13440
+ const costWorkFull = new Array(nw).fill(0);
13441
+ for (let j = 0; j < nx; j++) costWorkFull[j] = cWork[j];
13442
+ const raw = linprogSolveTwoPhase(costWorkFull, Aeq, beq, hasSlack, slackCol);
13443
+ if (raw.status !== "optimal") {
13444
+ return { x: new Array(n).fill(NaN), fun: NaN, success: false, status: raw.status };
13445
+ }
13446
+ const x = new Array(n).fill(0);
13447
+ for (let j = 0; j < n; j++) {
13448
+ const e = expansions[j];
13449
+ x[j] = e.kind === "shift" ? raw.xWork[e.col] + e.shift : raw.xWork[e.colPos] - raw.xWork[e.colNeg];
13450
+ }
13451
+ let fun = constant;
13452
+ for (let j = 0; j < nx; j++) fun += cWork[j] * raw.xWork[j];
13453
+ return { x, fun, success: true, status: "optimal" };
13454
+ }
13455
+ function linprog(c, arg22, arg3) {
13456
+ if (Array.isArray(arg22)) {
13457
+ return linprogOnePhaseLegacy(c, arg22, arg3);
13458
+ }
13459
+ return linprogTwoPhase(c, arg22);
13460
+ }
13182
13461
  function solvePDE(pde, domain, bc) {
13183
13462
  const { alpha } = pde;
13184
13463
  const { L, nx, nt, T } = domain;
@@ -14118,9 +14397,9 @@ function _aggregateEigenvector(vectors, aggregation) {
14118
14397
  const count2 = vectors.length;
14119
14398
  const ref = vectors[0];
14120
14399
  const aligned = vectors.map((v) => {
14121
- let dot3 = 0;
14122
- for (let i = 0; i < n; i++) dot3 += v[i] * ref[i];
14123
- if (dot3 < 0) {
14400
+ let dot4 = 0;
14401
+ for (let i = 0; i < n; i++) dot4 += v[i] * ref[i];
14402
+ if (dot4 < 0) {
14124
14403
  const flipped = new Float64Array(n);
14125
14404
  for (let i = 0; i < n; i++) flipped[i] = -v[i];
14126
14405
  return flipped;
@@ -15971,9 +16250,9 @@ function principalComponentAnalysis(data, k) {
15971
16250
  const explained = eigenvalues.map((ev) => totalVar > 0 ? Math.abs(ev) / totalVar : 0);
15972
16251
  const scores = centered.map((row2) => {
15973
16252
  return eigenvectors.map((ev) => {
15974
- let dot3 = 0;
15975
- for (let j = 0; j < p; j++) dot3 += row2[j] * ev[j];
15976
- return dot3;
16253
+ let dot4 = 0;
16254
+ for (let j = 0; j < p; j++) dot4 += row2[j] * ev[j];
16255
+ return dot4;
15977
16256
  });
15978
16257
  });
15979
16258
  return { components: eigenvectors, explained, scores };
@@ -16584,30 +16863,30 @@ function hessenbergForm(A) {
16584
16863
  if (normV < 1e-30) continue;
16585
16864
  const beta2 = 2 / normV;
16586
16865
  for (let j = k; j < n; j++) {
16587
- let dot3 = 0;
16866
+ let dot4 = 0;
16588
16867
  for (let i = 0; i < len; i++) {
16589
- dot3 += v[i] * H[k + 1 + i][j];
16868
+ dot4 += v[i] * H[k + 1 + i][j];
16590
16869
  }
16591
16870
  for (let i = 0; i < len; i++) {
16592
- H[k + 1 + i][j] -= beta2 * v[i] * dot3;
16871
+ H[k + 1 + i][j] -= beta2 * v[i] * dot4;
16593
16872
  }
16594
16873
  }
16595
16874
  for (let i = 0; i < n; i++) {
16596
- let dot3 = 0;
16875
+ let dot4 = 0;
16597
16876
  for (let j = 0; j < len; j++) {
16598
- dot3 += H[i][k + 1 + j] * v[j];
16877
+ dot4 += H[i][k + 1 + j] * v[j];
16599
16878
  }
16600
16879
  for (let j = 0; j < len; j++) {
16601
- H[i][k + 1 + j] -= beta2 * dot3 * v[j];
16880
+ H[i][k + 1 + j] -= beta2 * dot4 * v[j];
16602
16881
  }
16603
16882
  }
16604
16883
  for (let i = 0; i < n; i++) {
16605
- let dot3 = 0;
16884
+ let dot4 = 0;
16606
16885
  for (let j = 0; j < len; j++) {
16607
- dot3 += Q2[i][k + 1 + j] * v[j];
16886
+ dot4 += Q2[i][k + 1 + j] * v[j];
16608
16887
  }
16609
16888
  for (let j = 0; j < len; j++) {
16610
- Q2[i][k + 1 + j] -= beta2 * dot3 * v[j];
16889
+ Q2[i][k + 1 + j] -= beta2 * dot4 * v[j];
16611
16890
  }
16612
16891
  }
16613
16892
  }
@@ -29919,7 +30198,7 @@ var createPinv = /* @__PURE__ */ factory(
29919
30198
  deepEqual: deepEqual3,
29920
30199
  equal: equal2,
29921
30200
  dotDivide: dotDivide2,
29922
- dot: dot3,
30201
+ dot: dot4,
29923
30202
  ctranspose: ctranspose2,
29924
30203
  divideScalar: divideScalar2,
29925
30204
  multiply: multiply2,
@@ -29935,7 +30214,7 @@ var createPinv = /* @__PURE__ */ factory(
29935
30214
  if (size2[0] === 1) {
29936
30215
  return inv2(x);
29937
30216
  } else {
29938
- return dotDivide2(ctranspose2(x), dot3(x, x));
30217
+ return dotDivide2(ctranspose2(x), dot4(x, x));
29939
30218
  }
29940
30219
  case 2: {
29941
30220
  if (_isZeros(x)) return ctranspose2(x);
@@ -30014,8 +30293,8 @@ var createPinv = /* @__PURE__ */ factory(
30014
30293
  }
30015
30294
  function _rankFact(mat, rows, cols) {
30016
30295
  const rref = _rref(mat, rows, cols);
30017
- const C = mat.map((row2) => row2.filter((_, j) => j < rows && !_isZero(dot3(rref[j], rref[j]))));
30018
- const F = rref.filter((_, i) => !_isZero(dot3(rref[i], rref[i])));
30296
+ const C = mat.map((row2) => row2.filter((_, j) => j < rows && !_isZero(dot4(rref[j], rref[j]))));
30297
+ const F = rref.filter((_, i) => !_isZero(dot4(rref[i], rref[i])));
30019
30298
  return { C, F };
30020
30299
  }
30021
30300
  function _isZero(x) {
@@ -36978,7 +37257,7 @@ function createComplexEigs({
36978
37257
  larger: larger2,
36979
37258
  smaller: smaller2,
36980
37259
  matrixFromColumns: _matrixFromColumns,
36981
- dot: dot3
37260
+ dot: dot4
36982
37261
  }) {
36983
37262
  function complexEigs(arr7, N, prec, type, findVectors = true) {
36984
37263
  if (!findVectors && type === "number" && N * N >= WASM_EIGS_THRESHOLD) {
@@ -37419,7 +37698,7 @@ function createComplexEigs({
37419
37698
  v = subtract2(
37420
37699
  v,
37421
37700
  multiply2(
37422
- divideScalar2(dot3(w, v), dot3(w, w)),
37701
+ divideScalar2(dot4(w, v), dot4(w, w)),
37423
37702
  w
37424
37703
  )
37425
37704
  );
@@ -37427,7 +37706,7 @@ function createComplexEigs({
37427
37706
  return v;
37428
37707
  }
37429
37708
  function norm4(v) {
37430
- return abs2(sqrt2(dot3(v, v)));
37709
+ return abs2(sqrt2(dot4(v, v)));
37431
37710
  }
37432
37711
  function normalize2(v, type) {
37433
37712
  const big = type === "BigNumber";
@@ -37847,7 +38126,7 @@ var createEigs = /* @__PURE__ */ factory(
37847
38126
  re: re3,
37848
38127
  smaller: smaller2,
37849
38128
  matrixFromColumns: matrixFromColumns2,
37850
- dot: dot3
38129
+ dot: dot4
37851
38130
  }) => {
37852
38131
  const doRealSymmetric = createRealSymmetric({
37853
38132
  config: config2,
@@ -37886,7 +38165,7 @@ var createEigs = /* @__PURE__ */ factory(
37886
38165
  larger: larger2,
37887
38166
  smaller: smaller2,
37888
38167
  matrixFromColumns: matrixFromColumns2,
37889
- dot: dot3
38168
+ dot: dot4
37890
38169
  });
37891
38170
  return typed3("eigs", {
37892
38171
  // The conversion to matrix in the first two implementations,
@@ -44978,16 +45257,16 @@ function fsolve(F, x0, opts = {}) {
44978
45257
  const msg = err instanceof Error ? err.message : String(err);
44979
45258
  throw new Error(`fsolve: singular Jacobian at iteration ${iter} (${msg})`);
44980
45259
  }
44981
- const residualNorm = norm24(Fx);
45260
+ const residualNorm2 = norm24(Fx);
44982
45261
  let xNext = x.map((xi, i) => xi + delta[i]);
44983
45262
  let FxNext = F(xNext);
44984
- if (norm24(FxNext) >= residualNorm) {
45263
+ if (norm24(FxNext) >= residualNorm2) {
44985
45264
  let trialLambda = 1;
44986
45265
  for (let halving = 0; halving < 20; halving++) {
44987
45266
  trialLambda /= 2;
44988
45267
  const xTrial = x.map((xi, i) => xi + trialLambda * delta[i]);
44989
45268
  const FxTrial = F(xTrial);
44990
- if (norm24(FxTrial) < residualNorm) {
45269
+ if (norm24(FxTrial) < residualNorm2) {
44991
45270
  xNext = xTrial;
44992
45271
  FxNext = FxTrial;
44993
45272
  break;
@@ -45413,6 +45692,253 @@ function spectralClustering(adjacency, k, opts = {}) {
45413
45692
  return kmeans(embed, k, opts).labels;
45414
45693
  }
45415
45694
 
45695
+ // src/numeric/bfgs.ts
45696
+ var CBRT_EPS = Math.cbrt(2220446049250313e-31);
45697
+ function numericGradient(f, x) {
45698
+ const n = x.length;
45699
+ const g = new Array(n);
45700
+ for (let i = 0; i < n; i++) {
45701
+ const h = Math.max(1, Math.abs(x[i])) * CBRT_EPS;
45702
+ const xp = x.slice();
45703
+ const xm = x.slice();
45704
+ xp[i] += h;
45705
+ xm[i] -= h;
45706
+ g[i] = (f(xp) - f(xm)) / (2 * h);
45707
+ }
45708
+ return g;
45709
+ }
45710
+ function clipToBounds(x, bounds) {
45711
+ if (!bounds) return x;
45712
+ return x.map((v, i) => {
45713
+ const b = bounds[i];
45714
+ if (!b) return v;
45715
+ const [lo, hi] = b;
45716
+ return Math.min(hi, Math.max(lo, v));
45717
+ });
45718
+ }
45719
+ function dot2(a, b) {
45720
+ let s = 0;
45721
+ for (let i = 0; i < a.length; i++) s += a[i] * b[i];
45722
+ return s;
45723
+ }
45724
+ function matVec(H, v) {
45725
+ const n = v.length;
45726
+ const out = new Array(n);
45727
+ for (let i = 0; i < n; i++) {
45728
+ let s = 0;
45729
+ for (let j = 0; j < n; j++) s += H[i][j] * v[j];
45730
+ out[i] = s;
45731
+ }
45732
+ return out;
45733
+ }
45734
+ function bfgs(f, x0, opts = {}) {
45735
+ const { grad, bounds, tol = 1e-8, maxIter = 500 } = opts;
45736
+ const gradOf = grad ?? ((x2) => numericGradient(f, x2));
45737
+ const n = x0.length;
45738
+ const c1 = 1e-4;
45739
+ let x = clipToBounds(x0.slice(), bounds);
45740
+ let fx = f(x);
45741
+ let g = gradOf(x);
45742
+ let H = Array.from(
45743
+ { length: n },
45744
+ (_, i) => Array.from({ length: n }, (_2, j) => i === j ? 1 : 0)
45745
+ );
45746
+ const infNorm = (v) => v.reduce((m, c) => Math.max(m, Math.abs(c)), 0);
45747
+ let iter = 0;
45748
+ let converged = infNorm(g) < tol;
45749
+ while (!converged && iter < maxIter) {
45750
+ const d = matVec(H, g).map((v) => -v);
45751
+ const gd = dot2(g, d);
45752
+ const dir = gd < 0 ? d : g.map((v) => -v);
45753
+ const dirSlope = gd < 0 ? gd : -dot2(g, g);
45754
+ let alpha = 1;
45755
+ let xNew = clipToBounds(
45756
+ x.map((v, i) => v + alpha * dir[i]),
45757
+ bounds
45758
+ );
45759
+ let fNew = f(xNew);
45760
+ let halvings = 0;
45761
+ while (fNew > fx + c1 * alpha * dirSlope && halvings < 50) {
45762
+ alpha *= 0.5;
45763
+ xNew = clipToBounds(
45764
+ x.map((v, i) => v + alpha * dir[i]),
45765
+ bounds
45766
+ );
45767
+ fNew = f(xNew);
45768
+ halvings++;
45769
+ }
45770
+ const gNew = gradOf(xNew);
45771
+ const s = xNew.map((v, i) => v - x[i]);
45772
+ const y = gNew.map((v, i) => v - g[i]);
45773
+ const sy = dot2(s, y);
45774
+ if (sy > 1e-12) {
45775
+ const rho = 1 / sy;
45776
+ const Hy = matVec(H, y);
45777
+ const yHy = dot2(y, Hy);
45778
+ const HNew = Array.from({ length: n }, () => new Array(n).fill(0));
45779
+ for (let i = 0; i < n; i++) {
45780
+ for (let j = 0; j < n; j++) {
45781
+ HNew[i][j] = H[i][j] - rho * (s[i] * Hy[j] + Hy[i] * s[j]) + rho * rho * yHy * s[i] * s[j] + rho * s[i] * s[j];
45782
+ }
45783
+ }
45784
+ H = HNew;
45785
+ }
45786
+ x = xNew;
45787
+ fx = fNew;
45788
+ g = gNew;
45789
+ iter++;
45790
+ converged = infNorm(g) < tol;
45791
+ }
45792
+ return { x, fval: fx, iterations: iter, converged };
45793
+ }
45794
+
45795
+ // src/numeric/nnls.ts
45796
+ function matVec2(A, x) {
45797
+ const m = A.length;
45798
+ const result = new Array(m);
45799
+ for (let i = 0; i < m; i++) {
45800
+ const row2 = A[i];
45801
+ let s = 0;
45802
+ for (let j = 0; j < row2.length; j++) s += row2[j] * x[j];
45803
+ result[i] = s;
45804
+ }
45805
+ return result;
45806
+ }
45807
+ function residualNorm(A, x, b) {
45808
+ const Ax = matVec2(A, x);
45809
+ let s = 0;
45810
+ for (let i = 0; i < b.length; i++) {
45811
+ const d = Ax[i] - b[i];
45812
+ s += d * d;
45813
+ }
45814
+ return Math.sqrt(s);
45815
+ }
45816
+ function nnls(A, b, opts = {}) {
45817
+ const m = A.length;
45818
+ const n = A[0]?.length ?? 0;
45819
+ const tol = opts.tol ?? 1e-10;
45820
+ const maxIter = opts.maxIter ?? 3 * n;
45821
+ let x = new Array(n).fill(0);
45822
+ const passive = /* @__PURE__ */ new Set();
45823
+ const gradient2 = (xv) => {
45824
+ const Ax = matVec2(A, xv);
45825
+ const w = new Array(n).fill(0);
45826
+ for (let j = 0; j < n; j++) {
45827
+ let s = 0;
45828
+ for (let i = 0; i < m; i++) s += A[i][j] * (b[i] - Ax[i]);
45829
+ w[j] = s;
45830
+ }
45831
+ return w;
45832
+ };
45833
+ const solvePassive = (P2) => {
45834
+ const z = new Array(n).fill(0);
45835
+ if (P2.length === 0) return z;
45836
+ const Asub = A.map((row2) => P2.map((j) => row2[j]));
45837
+ let zp;
45838
+ try {
45839
+ zp = leastSquares(Asub, b);
45840
+ } catch {
45841
+ return x.slice();
45842
+ }
45843
+ for (let k = 0; k < P2.length; k++) z[P2[k]] = zp[k];
45844
+ return z;
45845
+ };
45846
+ let outerIter = 0;
45847
+ while (outerIter < maxIter) {
45848
+ const w = gradient2(x);
45849
+ let maxW = -Infinity;
45850
+ let maxJ = -1;
45851
+ for (let j = 0; j < n; j++) {
45852
+ if (!passive.has(j) && w[j] > maxW) {
45853
+ maxW = w[j];
45854
+ maxJ = j;
45855
+ }
45856
+ }
45857
+ if (maxJ === -1 || maxW <= tol) break;
45858
+ passive.add(maxJ);
45859
+ let z = solvePassive(Array.from(passive));
45860
+ let innerIter = 0;
45861
+ while (Array.from(passive).some((j) => z[j] <= tol) && innerIter < maxIter) {
45862
+ innerIter++;
45863
+ let alpha = Infinity;
45864
+ for (const j of passive) {
45865
+ if (z[j] <= tol) {
45866
+ const denom = x[j] - z[j];
45867
+ if (denom > 0) alpha = Math.min(alpha, x[j] / denom);
45868
+ }
45869
+ }
45870
+ if (!isFinite(alpha)) alpha = 0;
45871
+ for (let j = 0; j < n; j++) x[j] = x[j] + alpha * (z[j] - x[j]);
45872
+ for (const j of Array.from(passive)) {
45873
+ if (Math.abs(x[j]) < tol) passive.delete(j);
45874
+ }
45875
+ z = solvePassive(Array.from(passive));
45876
+ }
45877
+ x = z;
45878
+ outerIter++;
45879
+ }
45880
+ return { x, residual: residualNorm(A, x, b) };
45881
+ }
45882
+ function clip(v, lower, upper) {
45883
+ return v.map((vi, i) => Math.min(Math.max(vi, lower[i]), upper[i]));
45884
+ }
45885
+ function lsqBounded(A, b, lower, upper, opts = {}) {
45886
+ const m = A.length;
45887
+ const n = A[0]?.length ?? 0;
45888
+ const tol = opts.tol ?? 1e-10;
45889
+ const maxIter = opts.maxIter ?? Math.max(200, 20 * n);
45890
+ let x = clip(new Array(n).fill(0), lower, upper);
45891
+ const gradient2 = (xv) => {
45892
+ const Ax = matVec2(A, xv);
45893
+ const r = new Array(m);
45894
+ for (let i = 0; i < m; i++) r[i] = Ax[i] - b[i];
45895
+ const g = new Array(n).fill(0);
45896
+ for (let j = 0; j < n; j++) {
45897
+ let s = 0;
45898
+ for (let i = 0; i < m; i++) s += A[i][j] * r[i];
45899
+ g[j] = s;
45900
+ }
45901
+ return g;
45902
+ };
45903
+ const objective = (xv) => {
45904
+ const r = residualNorm(A, xv, b);
45905
+ return 0.5 * r * r;
45906
+ };
45907
+ for (let iter = 0; iter < maxIter; iter++) {
45908
+ const g = gradient2(x);
45909
+ const projFull = clip(
45910
+ x.map((xi, i) => xi - g[i]),
45911
+ lower,
45912
+ upper
45913
+ );
45914
+ let pgNorm = 0;
45915
+ for (let i = 0; i < n; i++) pgNorm += (x[i] - projFull[i]) ** 2;
45916
+ pgNorm = Math.sqrt(pgNorm);
45917
+ if (pgNorm < tol) break;
45918
+ const fx = objective(x);
45919
+ let alpha = 1;
45920
+ let xNext = clip(
45921
+ x.map((xi, i) => xi - alpha * g[i]),
45922
+ lower,
45923
+ upper
45924
+ );
45925
+ let fNext = objective(xNext);
45926
+ let backtrack = 0;
45927
+ while (fNext > fx && backtrack < 50) {
45928
+ alpha /= 2;
45929
+ xNext = clip(
45930
+ x.map((xi, i) => xi - alpha * g[i]),
45931
+ lower,
45932
+ upper
45933
+ );
45934
+ fNext = objective(xNext);
45935
+ backtrack++;
45936
+ }
45937
+ x = xNext;
45938
+ }
45939
+ return { x, residual: residualNorm(A, x, b) };
45940
+ }
45941
+
45416
45942
  // src/cas-integration.ts
45417
45943
  var parse2 = parse;
45418
45944
  var evaluate2 = evaluate;
@@ -45671,15 +46197,15 @@ function haversine(lat1, lon1, lat2, lon2, radius = EARTH_RADIUS_KM) {
45671
46197
  const a = Math.sin(dPhi / 2) ** 2 + Math.cos(phi1) * Math.cos(phi2) * Math.sin(dLambda / 2) ** 2;
45672
46198
  return radius * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
45673
46199
  }
45674
- var dot2 = (a, b) => a.reduce((s, v, i) => s + v * b[i], 0);
45675
- var norm3 = (a) => Math.sqrt(dot2(a, a));
46200
+ var dot3 = (a, b) => a.reduce((s, v, i) => s + v * b[i], 0);
46201
+ var norm3 = (a) => Math.sqrt(dot3(a, a));
45676
46202
  function slerp(v0, v1, t) {
45677
46203
  const n0 = norm3(v0);
45678
46204
  const n16 = norm3(v1);
45679
46205
  if (n0 === 0 || n16 === 0) throw new Error("slerp: input vectors must be non-zero");
45680
46206
  const u0 = v0.map((v) => v / n0);
45681
46207
  const u1 = v1.map((v) => v / n16);
45682
- let cos2 = dot2(u0, u1);
46208
+ let cos2 = dot3(u0, u1);
45683
46209
  cos2 = cos2 > 1 ? 1 : cos2 < -1 ? -1 : cos2;
45684
46210
  const omega = Math.acos(cos2);
45685
46211
  const mag = n0 + (n16 - n0) * t;
@@ -45795,6 +46321,7 @@ export {
45795
46321
  betainc,
45796
46322
  betweennessCentrality,
45797
46323
  bezierCurve,
46324
+ bfgs,
45798
46325
  bigint,
45799
46326
  bignumber,
45800
46327
  bin,
@@ -46239,6 +46766,7 @@ export {
46239
46766
  lowpassFilter,
46240
46767
  lsolve,
46241
46768
  lsolveAll,
46769
+ lsqBounded,
46242
46770
  lucas,
46243
46771
  lucasL,
46244
46772
  lup,
@@ -46303,6 +46831,7 @@ export {
46303
46831
  newtonInterp,
46304
46832
  nextPrime,
46305
46833
  nintegrate,
46834
+ nnls,
46306
46835
  nodeOperations,
46307
46836
  noncentralChi2PDF,
46308
46837
  norm,
@@ -0,0 +1,70 @@
1
+ /**
2
+ * BFGS quasi-Newton minimization of `f: ℝⁿ → ℝ`.
3
+ *
4
+ * Maintains an approximate inverse Hessian `H` (started at the identity) and
5
+ * updates it after every accepted step via the classic BFGS formula:
6
+ *
7
+ * s = x_{k+1} − x_k, y = g_{k+1} − g_k, ρ = 1 / (yᵀs)
8
+ * H ← (I − ρ s yᵀ) H (I − ρ y sᵀ) + ρ s sᵀ
9
+ *
10
+ * The update is skipped (H left unchanged) when `yᵀs ≤ 1e-12` — a near-zero
11
+ * or negative curvature pairing would make H indefinite. The search direction
12
+ * is `d = −H g`, accepted via a backtracking Armijo line search (`c1 = 1e-4`,
13
+ * starting step `α = 1`, halved up to 50 times).
14
+ *
15
+ * `opts.bounds`, if supplied, turns this into a lightweight **projected**
16
+ * BFGS: after every accepted step each coordinate is clipped into its
17
+ * `[lo, hi]` range. This is NOT the full active-set L-BFGS-B method (no
18
+ * distinction between free/active variables in the Hessian update) — it is a
19
+ * simple, effective projection that keeps the iterate feasible.
20
+ *
21
+ * Complements the derivative-free `minimize` (Nelder–Mead): BFGS converges
22
+ * superlinearly on smooth functions using gradient information (analytic or
23
+ * numeric), at the cost of assuming enough smoothness for the gradient/line
24
+ * search to behave.
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ type f64 = number;
29
+ /** Options for {@link bfgs}. */
30
+ export interface BfgsOptions {
31
+ /**
32
+ * Analytic gradient `∇f(x)`. If omitted, a central-difference gradient is
33
+ * used with per-coordinate step `h_i = max(1, |x_i|) · cbrt(machine eps)`.
34
+ */
35
+ grad?: (x: number[]) => number[];
36
+ /**
37
+ * Box constraints `[lo_i, hi_i]` per coordinate. After each accepted step,
38
+ * `x` is clipped into these bounds (projected BFGS — a lightweight
39
+ * approximation of L-BFGS-B, not the full active-set method).
40
+ */
41
+ bounds?: [f64, f64][];
42
+ /** Convergence tolerance on `‖g‖∞` (default 1e-8). */
43
+ tol?: f64;
44
+ /** Maximum iterations (default 500). */
45
+ maxIter?: number;
46
+ }
47
+ /** Result of {@link bfgs}. */
48
+ export interface BfgsResult {
49
+ /** The minimizer. */
50
+ x: number[];
51
+ /** `f(x)` at the minimizer. */
52
+ fval: f64;
53
+ /** Number of iterations performed. */
54
+ iterations: number;
55
+ /** Whether `‖g‖∞ < tol` was reached within `maxIter`. */
56
+ converged: boolean;
57
+ }
58
+ /**
59
+ * Minimize `f: ℝⁿ → ℝ` from `x0` via BFGS quasi-Newton with an Armijo
60
+ * backtracking line search. Uses `opts.grad` if supplied, else a local
61
+ * central-difference gradient. `opts.bounds` clips each accepted step
62
+ * (projected BFGS, not full L-BFGS-B).
63
+ *
64
+ * @example
65
+ * bfgs((v) => (1 - v[0]) ** 2 + 100 * (v[1] - v[0] ** 2) ** 2, [-1.2, 1])
66
+ * // => { x: ~[1, 1], fval: ~0, ... }
67
+ */
68
+ export declare function bfgs(f: (x: number[]) => number, x0: number[], opts?: BfgsOptions): BfgsResult;
69
+ export {};
70
+ //# sourceMappingURL=bfgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bfgs.d.ts","sourceRoot":"","sources":["../../src/numeric/bfgs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACtB,sDAAsD;IACtD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,+BAA+B;IAC/B,IAAI,EAAE,GAAG,CAAC;IACV,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;CACpB;AA+CD;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,WAAgB,GAAG,UAAU,CA8EjG"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Constrained least squares: `nnls` (Lawson–Hanson active-set non-negative
3
+ * least squares) and `lsqBounded` (projected-gradient box-constrained least
4
+ * squares). Both minimize `||Ax - b||_2` subject to simple bound constraints
5
+ * on `x`, complementing the unconstrained `leastSquares` (`../typed/numeric.ts`).
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /** Options shared by `nnls` and `lsqBounded`. */
10
+ export interface NnlsOptions {
11
+ /** Convergence tolerance (default 1e-10). */
12
+ tol?: number;
13
+ /** Maximum iterations (default `3 * n`). */
14
+ maxIter?: number;
15
+ }
16
+ /** Options for `lsqBounded` (same shape as `NnlsOptions`, kept as a distinct alias for clarity). */
17
+ export type LsqBoundedOptions = NnlsOptions;
18
+ /** Result of `nnls` / `lsqBounded`: the solution and its residual norm. */
19
+ export interface NnlsResult {
20
+ /** Solution vector x. */
21
+ x: number[];
22
+ /** `||Ax - b||_2` at the returned solution. */
23
+ residual: number;
24
+ }
25
+ /** Alias for `NnlsResult` (used by `lsqBounded`). */
26
+ export type LsqBoundedResult = NnlsResult;
27
+ /**
28
+ * Non-negative least squares: `min ||Ax - b||_2 s.t. x >= 0`, via the
29
+ * Lawson–Hanson active-set algorithm.
30
+ *
31
+ * Maintains a "passive" set `P` of coordinates allowed to be nonzero (all
32
+ * others held at 0). Each outer iteration adds to `P` the inactive index
33
+ * with the most positive gradient component `w_j = (A^T(b - Ax))_j`, solves
34
+ * the unconstrained least-squares problem restricted to the columns in `P`
35
+ * (via `leastSquares`), and — if that restricted solution has any
36
+ * non-positive component — walks back along the line from the current `x`
37
+ * toward it until the first such component would hit zero, dropping that
38
+ * index from `P` and re-solving. Terminates when no inactive index has a
39
+ * positive gradient (KKT optimality) or `maxIter` is exhausted.
40
+ *
41
+ * @param A - Matrix (m x n)
42
+ * @param b - Right-hand side (length m)
43
+ * @param opts - Options (tol, maxIter; default maxIter = 3n)
44
+ * @returns `{ x, residual }` with `x >= 0` (up to `tol`) and `residual = ||Ax - b||_2`
45
+ *
46
+ * @example
47
+ * nnls([[1, 0], [0, 1]], [3, -2]) // => { x: [3, 0], residual: 2 }
48
+ */
49
+ export declare function nnls(A: number[][], b: number[], opts?: NnlsOptions): NnlsResult;
50
+ /**
51
+ * Box-constrained least squares: `min ||Ax - b||_2 s.t. lower <= x <= upper`,
52
+ * via projected-gradient descent.
53
+ *
54
+ * Each iteration computes the gradient `g = A^T(Ax - b)` of the smooth
55
+ * objective `f(x) = (1/2)||Ax - b||^2`, takes a candidate step
56
+ * `x - alpha*g` projected (clipped) into the box, and backtracks
57
+ * (`alpha /= 2`) until the projected step does not increase `f`. Converges
58
+ * when the projected-gradient norm `||x - clip(x - g, lower, upper)||` is
59
+ * below `tol`.
60
+ *
61
+ * @param A - Matrix (m x n)
62
+ * @param b - Right-hand side (length m)
63
+ * @param lower - Per-component lower bounds (length n)
64
+ * @param upper - Per-component upper bounds (length n)
65
+ * @param opts - Options (tol, maxIter; default maxIter = max(200, 20n))
66
+ * @returns `{ x, residual }` with `lower <= x <= upper` and `residual = ||Ax - b||_2`
67
+ *
68
+ * @example
69
+ * lsqBounded([[1, 0], [0, 1]], [5, -3], [0, 0], [2, 2]) // => { x: [2, 0], residual: ... }
70
+ */
71
+ export declare function lsqBounded(A: number[][], b: number[], lower: number[], upper: number[], opts?: LsqBoundedOptions): LsqBoundedResult;
72
+ //# sourceMappingURL=nnls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nnls.d.ts","sourceRoot":"","sources":["../../src/numeric/nnls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,oGAAoG;AACpG,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,yBAAyB;IACzB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AA8B1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,WAAgB,GAAG,UAAU,CA6EnF;AAOD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,iBAAsB,GAC3B,gBAAgB,CAgElB"}
@@ -367,15 +367,36 @@ export declare function padeApproximant(coeffs: number[], m: i32, n: i32): {
367
367
  */
368
368
  export declare function quadprog(H: number[][], f: number[], A: number[][], b: number[]): number[];
369
369
  /**
370
- * Linear programming: minimize c^T x subject to Ax <= b, x >= 0.
371
- * Simple simplex method implementation.
370
+ * Options form of {@link linprog}: minimize c^T x subject to A_ub x <= b_ub,
371
+ * A_eq x = b_eq, and per-variable bounds.
372
+ */
373
+ export interface LinprogOptions {
374
+ A_ub?: number[][];
375
+ b_ub?: number[];
376
+ A_eq?: number[][];
377
+ b_eq?: number[];
378
+ /** Per-variable [lower, upper] bounds; null = unbounded. Default: [0, null] for every variable. */
379
+ bounds?: readonly (readonly [number | null, number | null])[];
380
+ }
381
+ /** Result of the options form of {@link linprog}. */
382
+ export interface LinprogResult {
383
+ x: number[];
384
+ fun: number;
385
+ success: boolean;
386
+ status: 'optimal' | 'infeasible' | 'unbounded';
387
+ }
388
+ /**
389
+ * Linear programming: minimize c^T x.
372
390
  *
373
- * @param c - Objective coefficients (length n)
374
- * @param A - Constraint matrix (m x n)
375
- * @param b - Constraint bounds (length m, non-negative)
376
- * @returns Solution vector x, or null if infeasible
391
+ * Two overloads:
392
+ * - Legacy positional form `linprog(c, A_ub, b_ub)` — subject to `A_ub x <= b_ub`,
393
+ * `x >= 0`; returns the solution vector `x` (or `null` if unbounded).
394
+ * - Options form `linprog(c, { A_ub, b_ub, A_eq, b_eq, bounds })` — a two-phase
395
+ * simplex supporting equality constraints, variable bounds, and negative-RHS
396
+ * rows; returns `{ x, fun, success, status }`.
377
397
  */
378
- export declare function linprog(c: number[], A: number[][], b: number[]): number[] | null;
398
+ export declare function linprog(c: number[], A_ub: number[][], b_ub: number[]): number[] | null;
399
+ export declare function linprog(c: number[], opts: LinprogOptions): LinprogResult;
379
400
  /**
380
401
  * Simple 1D PDE solver using finite differences (heat equation).
381
402
  *
@@ -1 +1 @@
1
- {"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../src/typed/numeric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../src/typed/numeric.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/mathts-functions",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",