* refactored intersect, fixed it not returning null for matrix input
* intersect: improved flattening algorithm, added tests
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* 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
* 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>
* Add support for scopes with get and set methods
* Fix build for node v12
* Fixup cli and parser tests
* Add tests for simplify and evaluate
* Add example for a custom scope object
* Function calls need child scopes
* Transitionary step: Separate Safe and Scope Property calls
* Renamed identifiers in FunctionNode
* Evaluate with ObjectScopeWrapper
* Simplify tests passing
* Assume all scopes are map-like. Except parser
* Remove isMapLike check in customs.*SafeProperty() methods
* Change MapLike to Map
* Move keywords from an Object to a Set
* Move ScopeProperty functions in to scope.js
* Removed deprecation warning
* Rename scope.js to map.js
* Rename ScopeProperty to MapProperty
* Add tests and docs for map.js
* Put back the micro-optimization of function calls
* Use Map in the parser
* Called scope methods directly in cli.js
* Coercing of scope into a Map is done in Node, not evaluate
* Move createSubScope to its own file
* Fixup following self-review
* Add scope docs
* Final self-review changes
* Address reviewer comments
* Remove MapProperty witness marks
* Converted broken benchmark possibly lost in a rebase
* Use bare map as scope in benchmark
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* made dense and sparse matrices iterable, fixed#1184
* added matrixFromFunction, fixes#2153
* added tests for matrixFromFunction
* added matrixFromRows
* added matrixFromColumns
* added rows() and columns() for dense matrix
* improved sparse documentation a tiny bit
* fix linting issues
* added matrixFromRow/Column to seealso of row and column
* removed unnecessary duplication from matrixFromRows/Columns
* added babel runtime
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* split the eigs function into multiple algorithms
* moved checks and coersions to eigs.js, made them more robust
* fix little bugs, make im and re more robust
* Implemented matrix balancing algorithm
* fix typos
* a draft of reduction to Hessenberg matrix
* finished implementation of reduction to Hessenberg
* fix Hessenberg elimination for complex numbers
* implemented non-shifted explicit QR algorithm for real matrices
* implemented vector computation, won't work untill usolve is fixed
* refactored to match yarn lint
* some minor changes
* solve merge conflicts
* refactored and re-fixed #1789
* some old uncommited changes
* fix small problems introduced by merging
* done some polishing
* improved jsdoc description of eigs
* little changes in jsdoc
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* Miller–Rabin primality test
* add tests for some big numbers
* Update isPrime.js
* Update isPrime.js
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* added support for word size suffix in getToken
* start modifying number(string) to support word size suffix for signed integers
* word size suffixes for Number
* initial support for BigNumber
* fix linter issues
* remove unused variable
* start extending bitwise operators for Number for values greater than 32 bits
* Revert "start extending bitwise operators for Number for values greater than 32 bits"
This reverts commit 6fac1a7b10665a221ab5de521c08fa9fcf959eb1.
* add a test for 53 bit literal
* added an optional second argument to bin, oct, and hex to allow formatting signed numbers with custom word size
* removed size checks
* Attempted to extend bin, oct, hex format functions to work with BigNumber, but not working fully.
Apparently Decimal.js toString method doesn't take a base parameter like js number does. I guess I have to do the formatting myself.
* Added n2base function to do formatting for BigNumber.
* Added check for zero in n2base.
* Removed old failing tests.
* Added some tests (failing).
* Extended 'format' function with 'base' and 'wordSize' options and changed 'bin', 'oct', and 'hex' to use 'format' function.
* Fixed lint issues.
* Fixed issues related to the merge.
* Corrected a test.
* Fixed bignumber formatter.
* Added tests for math.format with 'base' and 'wordSize' options.
* Fixed lint issue.
* Changed 'base' option to 'bin', 'oct', and 'hex' values for 'notation' option of 'format' function.
* Added word size suffix to the output of format, bin, oct, and hex.
* Updated documentation.
* emplementing rotate(w, theta)
* will return same type as input
* edge cases arraySize
* rising coverage
* making result type predictable
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* allow binary, octal, and hex literals as in JS (0b, 0o, 0x)
* add tests
* fix lint issues
* add notation for binary, octal, and hex in formatNumber
* remove the extra format notations
* add bin, oct, and hex functions for formatting
* move bin, oct, and hex from base.js to their own files, fixed built test error about documentation
* parse and format treat values as 32 bit signed 2s complement integers
* add section in syntax documentation
* typo
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* 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>
* refactor solveValidation
* refactor usolve
* usolve algorithm implemented (for square mat.)
* added lsolve, consistent return type, fixed tests
* fixed lusolve and its tests, fixed linting issues
* added tests for usolve&lsolve, try-catch in lusolve
* put changes into separate files (u-/lsolveAll), revert changes to u-, l- and lusolve
* made *solveAll return [] for non-solvable, implemented sparse algorithms
* improved documentation for *solve(All)
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>