@danielsimonjr/mathts-core 0.13.1 → 0.14.1

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.
@@ -19,7 +19,15 @@ var Complex = class _Complex {
19
19
  * @param theta - angle in radians
20
20
  */
21
21
  static fromPolar(r, theta) {
22
- return new _Complex(r * Math.cos(theta), r * Math.sin(theta));
22
+ const cosT = Math.cos(theta);
23
+ const sinT = Math.sin(theta);
24
+ let re = r * cosT;
25
+ let im = r * sinT;
26
+ if (!Number.isFinite(r) && !Number.isNaN(r)) {
27
+ if (cosT === 0) re = cosT;
28
+ if (sinT === 0) im = sinT;
29
+ }
30
+ return new _Complex(re, im);
23
31
  }
24
32
  /**
25
33
  * Create a Complex from a real number
@@ -914,9 +922,7 @@ function toPrecision(value, precision, options) {
914
922
  if (precision && c.length < precision) {
915
923
  c = c.concat(zeros(precision - c.length));
916
924
  }
917
- c = c.concat(
918
- zeros(e - c.length + 1 + (precision && c.length < precision ? precision - c.length : 0))
919
- );
925
+ c = c.concat(zeros(e - c.length + 1));
920
926
  c = zeros(-e).concat(c);
921
927
  const dot = e > 0 ? e : 0;
922
928
  if (dot < c.length - 1) {
@@ -4461,83 +4467,87 @@ var createUnitClass = /* @__PURE__ */ factory(
4461
4467
  "LUMINOUS_INTENSITY",
4462
4468
  "AMOUNT_OF_SUBSTANCE",
4463
4469
  "ANGLE",
4464
- "BIT"
4470
+ "BIT",
4471
+ "SOLID_ANGLE"
4465
4472
  ];
4466
4473
  const BASE_UNITS = {
4467
4474
  NONE: {
4468
- dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 0]
4475
+ dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4469
4476
  },
4470
4477
  MASS: {
4471
- dimensions: [1, 0, 0, 0, 0, 0, 0, 0, 0]
4478
+ dimensions: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4472
4479
  },
4473
4480
  LENGTH: {
4474
- dimensions: [0, 1, 0, 0, 0, 0, 0, 0, 0]
4481
+ dimensions: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
4475
4482
  },
4476
4483
  TIME: {
4477
- dimensions: [0, 0, 1, 0, 0, 0, 0, 0, 0]
4484
+ dimensions: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
4478
4485
  },
4479
4486
  CURRENT: {
4480
- dimensions: [0, 0, 0, 1, 0, 0, 0, 0, 0]
4487
+ dimensions: [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
4481
4488
  },
4482
4489
  TEMPERATURE: {
4483
- dimensions: [0, 0, 0, 0, 1, 0, 0, 0, 0]
4490
+ dimensions: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
4484
4491
  },
4485
4492
  LUMINOUS_INTENSITY: {
4486
- dimensions: [0, 0, 0, 0, 0, 1, 0, 0, 0]
4493
+ dimensions: [0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
4487
4494
  },
4488
4495
  AMOUNT_OF_SUBSTANCE: {
4489
- dimensions: [0, 0, 0, 0, 0, 0, 1, 0, 0]
4496
+ dimensions: [0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
4490
4497
  },
4491
4498
  FORCE: {
4492
- dimensions: [1, 1, -2, 0, 0, 0, 0, 0, 0]
4499
+ dimensions: [1, 1, -2, 0, 0, 0, 0, 0, 0, 0]
4493
4500
  },
4494
4501
  SURFACE: {
4495
- dimensions: [0, 2, 0, 0, 0, 0, 0, 0, 0]
4502
+ dimensions: [0, 2, 0, 0, 0, 0, 0, 0, 0, 0]
4496
4503
  },
4497
4504
  VOLUME: {
4498
- dimensions: [0, 3, 0, 0, 0, 0, 0, 0, 0]
4505
+ dimensions: [0, 3, 0, 0, 0, 0, 0, 0, 0, 0]
4499
4506
  },
4500
4507
  ENERGY: {
4501
- dimensions: [1, 2, -2, 0, 0, 0, 0, 0, 0]
4508
+ dimensions: [1, 2, -2, 0, 0, 0, 0, 0, 0, 0]
4502
4509
  },
4503
4510
  POWER: {
4504
- dimensions: [1, 2, -3, 0, 0, 0, 0, 0, 0]
4511
+ dimensions: [1, 2, -3, 0, 0, 0, 0, 0, 0, 0]
4505
4512
  },
4506
4513
  PRESSURE: {
4507
- dimensions: [1, -1, -2, 0, 0, 0, 0, 0, 0]
4514
+ dimensions: [1, -1, -2, 0, 0, 0, 0, 0, 0, 0]
4508
4515
  },
4509
4516
  ELECTRIC_CHARGE: {
4510
- dimensions: [0, 0, 1, 1, 0, 0, 0, 0, 0]
4517
+ dimensions: [0, 0, 1, 1, 0, 0, 0, 0, 0, 0]
4511
4518
  },
4512
4519
  ELECTRIC_CAPACITANCE: {
4513
- dimensions: [-1, -2, 4, 2, 0, 0, 0, 0, 0]
4520
+ dimensions: [-1, -2, 4, 2, 0, 0, 0, 0, 0, 0]
4514
4521
  },
4515
4522
  ELECTRIC_POTENTIAL: {
4516
- dimensions: [1, 2, -3, -1, 0, 0, 0, 0, 0]
4523
+ dimensions: [1, 2, -3, -1, 0, 0, 0, 0, 0, 0]
4517
4524
  },
4518
4525
  ELECTRIC_RESISTANCE: {
4519
- dimensions: [1, 2, -3, -2, 0, 0, 0, 0, 0]
4526
+ dimensions: [1, 2, -3, -2, 0, 0, 0, 0, 0, 0]
4520
4527
  },
4521
4528
  ELECTRIC_INDUCTANCE: {
4522
- dimensions: [1, 2, -2, -2, 0, 0, 0, 0, 0]
4529
+ dimensions: [1, 2, -2, -2, 0, 0, 0, 0, 0, 0]
4523
4530
  },
4524
4531
  ELECTRIC_CONDUCTANCE: {
4525
- dimensions: [-1, -2, 3, 2, 0, 0, 0, 0, 0]
4532
+ dimensions: [-1, -2, 3, 2, 0, 0, 0, 0, 0, 0]
4526
4533
  },
4527
4534
  MAGNETIC_FLUX: {
4528
- dimensions: [1, 2, -2, -1, 0, 0, 0, 0, 0]
4535
+ dimensions: [1, 2, -2, -1, 0, 0, 0, 0, 0, 0]
4529
4536
  },
4530
4537
  MAGNETIC_FLUX_DENSITY: {
4531
- dimensions: [1, 0, -2, -1, 0, 0, 0, 0, 0]
4538
+ dimensions: [1, 0, -2, -1, 0, 0, 0, 0, 0, 0]
4532
4539
  },
4533
4540
  FREQUENCY: {
4534
- dimensions: [0, 0, -1, 0, 0, 0, 0, 0, 0]
4541
+ dimensions: [0, 0, -1, 0, 0, 0, 0, 0, 0, 0]
4535
4542
  },
4536
4543
  ANGLE: {
4537
- dimensions: [0, 0, 0, 0, 0, 0, 0, 1, 0]
4544
+ dimensions: [0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
4538
4545
  },
4539
4546
  BIT: {
4540
- dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 1]
4547
+ dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
4548
+ },
4549
+ SOLID_ANGLE: {
4550
+ dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
4541
4551
  }
4542
4552
  };
4543
4553
  for (const key in BASE_UNITS) {
@@ -5452,9 +5462,21 @@ var createUnitClass = /* @__PURE__ */ factory(
5452
5462
  value: 1,
5453
5463
  offset: 0
5454
5464
  },
5455
- // TODO: units STERADIAN
5456
- // {name: 'sr', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
5457
- // {name: 'steradian', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
5465
+ // Solid angle
5466
+ sr: {
5467
+ name: "sr",
5468
+ base: BASE_UNITS.SOLID_ANGLE,
5469
+ prefixes: PREFIXES.NONE,
5470
+ value: 1,
5471
+ offset: 0
5472
+ },
5473
+ steradian: {
5474
+ name: "steradian",
5475
+ base: BASE_UNITS.SOLID_ANGLE,
5476
+ prefixes: PREFIXES.LONG,
5477
+ value: 1,
5478
+ offset: 0
5479
+ },
5458
5480
  // Force
5459
5481
  N: {
5460
5482
  name: "N",
@@ -5964,6 +5986,7 @@ var createUnitClass = /* @__PURE__ */ factory(
5964
5986
  LUMINOUS_INTENSITY: { unit: UNITS.cd, prefix: PREFIXES.SHORT[""] },
5965
5987
  AMOUNT_OF_SUBSTANCE: { unit: UNITS.mol, prefix: PREFIXES.SHORT[""] },
5966
5988
  ANGLE: { unit: UNITS.rad, prefix: PREFIXES.SHORT[""] },
5989
+ SOLID_ANGLE: { unit: UNITS.sr, prefix: PREFIXES.NONE[""] },
5967
5990
  BIT: { unit: UNITS.bits, prefix: PREFIXES.SHORT[""] },
5968
5991
  // Derived units
5969
5992
  FORCE: { unit: UNITS.N, prefix: PREFIXES.SHORT[""] },
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ import {
44
44
  round,
45
45
  sign,
46
46
  subtractScalar
47
- } from "./chunk-7BUNGMQB.js";
47
+ } from "./chunk-VPK5YTKG.js";
48
48
 
49
49
  // src/types/matrix/Range.ts
50
50
  var name = "Range";
@@ -1321,7 +1321,7 @@ function neumaierCumsum(xs, out) {
1321
1321
  }
1322
1322
 
1323
1323
  // src/index.ts
1324
- var VERSION = "0.13.1";
1324
+ var VERSION = "0.14.1";
1325
1325
  export {
1326
1326
  ALL_UNITS,
1327
1327
  BASE_UNITS,
package/dist/internal.js CHANGED
@@ -78,7 +78,7 @@ import {
78
78
  typeOf,
79
79
  unitDependencies,
80
80
  warnOnce
81
- } from "./chunk-7BUNGMQB.js";
81
+ } from "./chunk-VPK5YTKG.js";
82
82
 
83
83
  // src/error/DimensionError.ts
84
84
  var DimensionError = class _DimensionError extends RangeError {
@@ -226,13 +226,31 @@ function format2(value, options) {
226
226
  return formatBigNumberToBase(v, 16, wordSize);
227
227
  case "auto": {
228
228
  const optionsObj = options;
229
- const lowerExp = _toNumberOrDefault(optionsObj?.lowerExp, -3);
230
- const upperExp = _toNumberOrDefault(optionsObj?.upperExp, 5);
229
+ const lowerExp = isNumber(optionsObj?.lowerExp) || isBigNumber(optionsObj?.lowerExp) ? optionsObj?.lowerExp : -3;
230
+ const upperExp = isNumber(optionsObj?.upperExp) || isBigNumber(optionsObj?.upperExp) ? optionsObj?.upperExp : 5;
231
231
  if (v.isZero()) return "0";
232
232
  let str;
233
233
  const rounded = v.toSignificantDigits(precision);
234
234
  const exp = rounded.e;
235
- if (exp >= lowerExp && exp < upperExp) {
235
+ let condition = false;
236
+ if (isBigNumber(lowerExp) && isBigNumber(upperExp)) {
237
+ const lowerExpBn = lowerExp;
238
+ const upperExpBn = upperExp;
239
+ condition = !lowerExpBn.greaterThan(exp) && upperExpBn.greaterThan(exp);
240
+ } else if (isBigNumber(lowerExp)) {
241
+ const lowerExpBn = lowerExp;
242
+ const upperExpNum = upperExp;
243
+ condition = !lowerExpBn.greaterThan(exp) && exp < upperExpNum;
244
+ } else if (isBigNumber(upperExp)) {
245
+ const upperExpBn = upperExp;
246
+ const lowerExpNum = lowerExp;
247
+ condition = exp >= lowerExpNum && upperExpBn.greaterThan(exp);
248
+ } else {
249
+ const lowerExpNum = lowerExp;
250
+ const upperExpNum = upperExp;
251
+ condition = exp >= lowerExpNum && exp < upperExpNum;
252
+ }
253
+ if (condition) {
236
254
  str = rounded.toFixed();
237
255
  } else {
238
256
  str = toExponential2(v, precision);
@@ -271,15 +289,6 @@ function toExponential2(value, precision) {
271
289
  function toFixed2(value, precision) {
272
290
  return value.toFixed(precision);
273
291
  }
274
- function _toNumberOrDefault(value, defaultValue) {
275
- if (isNumber(value)) {
276
- return value;
277
- } else if (isBigNumber(value)) {
278
- return value.toNumber();
279
- } else {
280
- return defaultValue;
281
- }
282
- }
283
292
 
284
293
  // src/string.ts
285
294
  function format3(value, options) {
@@ -1024,7 +1033,7 @@ function deepMap2(array, callback, skipZeros) {
1024
1033
  function reduce(mat, dim, callback) {
1025
1034
  const size = Array.isArray(mat) ? arraySize(mat) : mat.size();
1026
1035
  if (dim < 0 || dim >= size.length) {
1027
- throw new IndexError(dim, 0, size.length);
1036
+ throw new DimensionError(dim, size.length, "<");
1028
1037
  }
1029
1038
  if (isMatrix(mat)) {
1030
1039
  const reduced = _reduce(mat.valueOf(), dim, callback);
package/package.json CHANGED
@@ -1,59 +1,59 @@
1
- {
2
- "name": "@danielsimonjr/mathts-core",
3
- "version": "0.13.1",
4
- "description": "Core types, utilities, and configuration for MathTS",
5
- "author": "Daniel Simon Jr.",
6
- "license": "MIT",
7
- "type": "module",
8
- "main": "./dist/index.js",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "import": "./dist/index.js",
14
- "types": "./dist/index.d.ts"
15
- },
16
- "./internal": {
17
- "import": "./dist/internal.js",
18
- "types": "./dist/internal.d.ts"
19
- }
20
- },
21
- "files": [
22
- "dist",
23
- "README.md"
24
- ],
25
- "scripts": {
26
- "build": "tsup",
27
- "dev": "tsup --watch",
28
- "test": "vitest run",
29
- "test:watch": "vitest",
30
- "test:coverage": "vitest run --coverage",
31
- "typecheck": "tsc --noEmit",
32
- "lint": "eslint src --ext .ts",
33
- "lint:fix": "eslint src --ext .ts --fix",
34
- "clean": "rm -rf dist",
35
- "build:prod": "tsup --minify --treeshake"
36
- },
37
- "dependencies": {
38
- "typed-function": "github:danielsimonjr/typed-function"
39
- },
40
- "devDependencies": {
41
- "@types/node": "^25.5.2",
42
- "tsup": "^8.0.0",
43
- "typescript": "^5.3.0",
44
- "vitest": "^4.1.5"
45
- },
46
- "publishConfig": {
47
- "access": "public"
48
- },
49
- "repository": {
50
- "type": "git",
51
- "url": "https://github.com/danielsimonjr/mathts",
52
- "directory": "core"
53
- },
54
- "keywords": [
55
- "math",
56
- "typescript",
57
- "core"
58
- ]
59
- }
1
+ {
2
+ "name": "@danielsimonjr/mathts-core",
3
+ "version": "0.14.1",
4
+ "description": "Core types, utilities, and configuration for MathTS",
5
+ "author": "Daniel Simon Jr.",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ },
16
+ "./internal": {
17
+ "import": "./dist/internal.js",
18
+ "types": "./dist/internal.d.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md"
24
+ ],
25
+ "scripts": {
26
+ "build": "tsup",
27
+ "dev": "tsup --watch",
28
+ "test": "vitest run",
29
+ "test:watch": "vitest",
30
+ "test:coverage": "vitest run --coverage",
31
+ "typecheck": "tsc --noEmit",
32
+ "lint": "eslint src --ext .ts",
33
+ "lint:fix": "eslint src --ext .ts --fix",
34
+ "clean": "rm -rf dist",
35
+ "build:prod": "tsup --minify --treeshake"
36
+ },
37
+ "dependencies": {
38
+ "typed-function": "github:danielsimonjr/typed-function"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^25.5.2",
42
+ "tsup": "^8.0.0",
43
+ "typescript": "^5.3.0",
44
+ "vitest": "^4.1.10"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/danielsimonjr/MathTS.git",
52
+ "directory": "core"
53
+ },
54
+ "keywords": [
55
+ "math",
56
+ "typescript",
57
+ "core"
58
+ ]
59
+ }