23 Commits

Author SHA1 Message Date
HanchaiN
7480c11bf7
feat: implement negative integer exponents for square matrices (#2517)
Resolves #2463

Co-authored-by: Glen Whitney <glen@studioinfinity.org>
2022-04-08 12:15:54 -07:00
Glen Whitney
aa5c9eef76
fix(Unit): Avoid using unit offsets too much (#2501)
Incorporating unit offsets into the internal "value" of the unit
  causes more problems than it solves. This commit ends that practice
  and instead only uses the offset when converting units or when
  computing the absolute value of a unit.
  Further, it makes it an error to compute the sign of a unit with an
  offset, since that is inherently ambiguous: there is no way to tell
  whether "-5 degC" is a temperature change, in which case it is definitely
  negative, or if it is a specific temperature of something, in which case
  it is "positive" in the sense of being above absolute zero.
  (Unclear how valuable this latter concept is anyway, given that there are
  no negative temperatures possible in that sense...)
  Adds several tests for the various problems the former practice caused,
  including all four basic arithmetic operations on units with offsets.

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2022-03-28 11:51:41 +02:00
Glen Whitney
c9354ee1a9
chore: Bump complex.js to version 2.1.0 (#2505)
Also adds tests for math.log() of complex numbers in which the imaginary
  part is much larger in absolute value than the real part.
  Resolves #2503.

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2022-03-28 11:02:52 +02:00
thetazero
7beac55201
add invmod (modular multiplicative inverse) (#2368)
* add invmod (modular multiplicative inverse)

* implement (most) suggestions

* style error

* fix NaN tests

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2022-01-15 11:40:46 +01:00
Jos de Jong
db39237c0f Update browser versions in browserstack tests 2021-09-15 12:24:40 +02:00
davidtranhq
f79fec6db5
Fix ArrayNode.toTex(): Remove the row delimiter on the last row (#2267)
* fix toTex(): remove row delimiter on the last row

* remove row delimiter on the last row (use map and join instead of forEach)

* fix ArrayNode.toTex() unit tests incorrectly expecting a row delimiter on the last row

* added toTex() tests for nested cases

* fixed ArrayNode.toTex() for nested cases

* removed redunant variable
2021-07-03 12:10:22 +02:00
Michal Grňo
b4eed8ee92
Fix Decimal prototype pollution (#2244)
* changed BigNumber to a class that extends Decimal.clone(...)

* it works... if you patch decimal.js

* added a test that checks if sum of Decimals works

* minor improvement of code quality

* updated Decimal.js to 10.3

* removed the optional chaining operator to keep compat w/ Node 12

* removed try/catch from isBigNumber

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2021-06-23 15:23:08 +02:00
Jos de Jong
4d841e4572 Create a mocha config file, define global timeout of 10 seconds 2021-06-23 11:03:08 +02:00
Jos de Jong
7ed12ccd70 Upgrade to fraction.js@4.1.0, and integrate support for pow of rational exponents 2021-05-16 10:22:36 +02:00
Jos de Jong
e6af8ec92a Fix #2167: typo in error message 2021-04-14 10:07:55 +02:00
Jos de Jong
67a9878073 Revert "Configure default timeout for mocha tests as 10 seconds"
This reverts commit f812e662
2021-02-03 19:01:15 +01:00
Jos de Jong
f812e66252 Configure default timeout for mocha tests as 10 seconds 2021-02-03 17:58:37 +01:00
Jos de Jong
41c5e2fabe Merge branch 'develop' into v8
# Conflicts:
#	HISTORY.md
#	package-lock.json
#	package.json
#	src/expression/embeddedDocs/embeddedDocs.js
#	src/factoriesAny.js
#	src/function/special/erf.js
#	src/plain/number/probability.js
#	src/version.js
2020-11-02 11:59:12 +01:00
Jos de Jong
68c6a91801 Update devDependencies 2020-11-02 09:33:11 +01:00
Jos de Jong
99b738f3e6 Merge branch 'develop' into v8
# Conflicts:
#	AUTHORS
#	HISTORY.md
#	package-lock.json
#	package.json
#	src/expression/embeddedDocs/embeddedDocs.js
#	src/factoriesAny.js
#	src/function/arithmetic/ceil.js
#	src/function/arithmetic/fix.js
#	src/function/arithmetic/floor.js
#	test/unit-tests/function/arithmetic/ceil.test.js
2020-10-07 12:12:35 +02:00
rnd-debug
9f06dad72f
floor and cell with precision (#1967)
* floor and cell with precision

* appends missing files

* fixing lint

* fixing ceil and floor tests: string typing issue

* fixing ceil and floor tests: string typing issue

* fixing ceil and floor tests: string typing issue

* fixing ceil and floor tests: string typing issue

* adding fix(x,n); adding more tests for floor and ceil

* rising coverage

* adding docs for fix(x,n)

* completing fix(x, n)

* fixing string typing issue
2020-09-27 17:07:38 +02:00
ovk
36c53b72af
Fix negative dividend modulo for BigNumber and Fraction (#1973) 2020-09-23 11:42:10 +02:00
Jos de Jong
6f00715754
Specify import require paths (continuation of #1941) (#1962)
* Add `.js` extension to source file imports

* Specify package `exports` in `package.json`

Specify package type as `commonjs` (It's good to be specific)

* Move all compiled scripts into `lib` directory

Remove ./number.js (You can use the compiled ones in `./lib/*`)

Tell node that the `esm` directory is type `module` and enable tree shaking.

Remove unused files from packages `files` property

* Allow importing of package.json

* Make library ESM first

* - Fix merge conflicts
- Refactor `bundleAny` into `defaultInstance.js` and `browserBundle.cjs`
- Refactor unit tests to be able to run with plain nodejs (no transpiling)
- Fix browser examples

* Fix browser and browserstack tests

* Fix running unit tests on Node 10 (which has no support for modules)

* Fix node.js examples (those are still commonjs)

* Remove the need for `browserBundle.cjs`

* Generate minified bundle only

* [Security] Bump node-fetch from 2.6.0 to 2.6.1 (#1963)

Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1. **This update includes a security fix.**
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Cleanup console.log

* Add integration tests to test the entry points (commonjs/esm, full/number only)

* Create backward compatibility error messages in the files moved/removed since v8

* Describe breaking changes in HISTORY.md

* Bump karma from 5.2.1 to 5.2.2 (#1965)

Bumps [karma](https://github.com/karma-runner/karma) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.1...v5.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

Co-authored-by: Lee Langley-Rees <lee@greenimp.co.uk>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-20 18:01:29 +02:00
rnd-debug
97a56b8114
feat: implementing norm 2 for matrices (#1931)
* feat: implementing norm 2 for matrices

* norm2: adding edge test cases

* norm2: adding edge test cases

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2020-08-22 12:24:11 +02:00
Michal Grňo
aafef5760c
Improve dot product (#1773)
* make dot product faster and correct for ℂ

* minor fixes

* added tests, fixed bugs

* add dot for sparse matrices

* make multiply(vec, vec) use dot

* add test for complex vectors

* added test for mul(vec, vec), removed one TODO comment

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2020-03-29 17:04:57 +02:00
Harry Sarson
462f46947f fix qr and sign edge cases (#1670)
* fix qr and sign edge cases

qr() was throwing an error if the pivots of a matrix were zero.
This commit fixes that and ensures that the results are consistant
with wolfram alpha.

Whilst doing this I found a bug in complex.js, I have added a work
around but we should flag this upstream.

I also addressed the long standing concerns about assert statements
within the body of the qr function.

Fixes #1669
Fixes #942

* further improvements to qr and sign

mainly fixing things I got wrong in previous commit

* add array test

* fix: remove only from tests and disallow

Uses mochas `--forbid-only` flag as advised by
https://github.com/standard/standard/issues/988
2019-11-18 20:03:09 +01:00
jos
d8a4f3a00a Update to standard@13.0.2 2019-07-20 13:46:31 +02:00
jos
db4910bed4 Move all test related stuff in folder test 2019-06-05 11:45:02 +02:00