* 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>
* 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>
* Fix#1902: typo in an example in the documentation
* Replace recursive calls in typed-functions with `this`-style calls
* Replace more recursive calls in typed-functions with `this`-style calls
* Refactor compareNatural to use this-style recursion
Co-authored-by: josdejong <wjosdejong@gmail.com>
The matrix `math.eigs(H).vectors` contains the eigenvectors as columns, not rows, as previously suggested.
Also includes example of how to access the relevant vectors using `math.column`.
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* 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>
* eigs test file initialize
* file for function for diagonalization of a real symmetrix matrix
* eigs typed function written according to mathjs requirements
* some linting issues addressed
* more linting issues in eigs
* linting passed for eigs (blank template function)
* making eigs fail
* eigs added to factory any
* initial check of input in eigs
* linting issues fix in eigs
* added rotation and theta matrix
* diagonalization loop added
* diagonalization result return
* diagonalization returns eigenvalue and eigenvectors
* function for updating Sij
* function for updating matrix
* a small bug fix
* some linting fixed in eigs
* lint and bug fix at eigs
* linting passed in eigs
* tests for input in eigs
* tests for trivial eigenvalue problem (sanity check)
* 2x2 check for non-diagonal matrix
* sorting added to eigs
* sorting function lint fix in eigs
* example for eigs updated
* 3x3 diagonalization by eigs passed
* bug in eigenvector
* eigenvalues seem to work
* cloning array so that original matrix do not get transformed in eigs
* eigenvector check
* eigenvector deep check and eigs description modified
* embedding dos for eigs
* doc for eigs fix
* slight change in example
* adding checkInput type
* type error for bad matrix elements
* type error for every element
* name change for typecheck function
* check matrix type of array input
* type error message update in eigs
* type error message grammer in eigs
* eigs bug fix
* eigs bug fix in check function
* eigs typecheck test
* some lint fix in eigs and corresponding tests
* before adding bingNumber implementation in eigs
* support for fractions
* obtain angle for bigNumber type
* theta for bignumbers
* update overlap for bigNumber
* jacobi rotation of input matrix for BigNumbers
* largest element for bigNumbers
* diagonalization for bigNumbers
* adding dependedncies
* diagonization for bigNumber
* diag for bigNumber is tested
* linting fix for eig and eigs test
* problem for bigNumber fix
* error message modification for eigs
* more coverage for eigs function
* eigs test bug fix
* simplify test
* is Symmetric function
* use matrix instead in eigs
* slight cleanup
* is symmetric bug fix
* no need to return in isSymmetrix
* small bug fix for fractions
* using scalar function when possible
* small lint correction
* return object in eigs
* bug fix in array eigs
* test object implementation
* description update
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* 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#1669Fixes#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
* Improved performances for isPrime
The prime test performance have been improved compared to previous version.
* Fixed build
* Fixed build for isPrime
* Removed extra semicolons to fix lint
* Allow taking means of quantities with units.
* Fix silly error in test.
The test as written did not test anything about units.
* Fix same error again...
* Implemented the `multicombinations` function
* Write unit tests for `multicombinations` function
* Integrate the `multicombinations` function throughout codebase
1. Include multicombinations factory function in factoriesAny.js and factoriesNumber.js
2. Write embedded docs for multicombinations
3. Added latex support
4. Refer to multicombinations in the "see also"-section of related functions
* Change name from `multichoose` to `combinationsWithRep`
* Update combinationsWithRep.js
Instead of always cancelling `n-1 factorial` from the denominator and ignoring `k factorial`, added a conditional to cancel the the larger of the two, therefore further reducing redundant calculations.
* Revert "Update combinationsWithRep.js"
This reverts commit efef6d3bd4c381aa12f00869a7624a622268805c.
* Update combinationsWithRep.js
Instead of always cancelling `n-1 factorial` from the denominator and ignoring `k factorial`, added a conditional to cancel the the larger of the two, therefore further reducing redundant calculations.
* Add one more test for the case: k > n-1
* Refactor single for-loop into two separate ones
* Implemented the `multicombinations` function
* Write unit tests for `multicombinations` function
* Integrate the `multicombinations` function throughout codebase
1. Include multicombinations factory function in factoriesAny.js and factoriesNumber.js
2. Write embedded docs for multicombinations
3. Added latex support
4. Refer to multicombinations in the "see also"-section of related functions
* Change name from `multichoose` to `combinationsWithRep`