* Support for Percentage Operation
* Fixed Style issue
* Added Test case to check for modulo followed by pi
* Support for % addition and % subtraction
* Fixed Documentation comment
* Support - Should not calculate mod for negative divisor
* Updated Docs
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* 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>
* Basic untested support for parsing non decimal numbers with radix point.
* Added some documentation for function parseNonDecimalWithRadix.
* Renamed variable in BigNumber constructor.
Not related to current feature branch but is a good change.
* Improved some variable and function names in number.js and fixed an error when parsing octal numbers with radix point.
* Added some tests and fixed linter issues.
* Added some documentation on new syntax.
* Added more tests.
* Added more tests for edge cases.
* Remove customString duplication in Node
* Extract last dimension change in transform
* Add unit tests to lastDimToZeroBase
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.
* Add unit parser benchmark
* Add LRU to memoize function
* Memoize _findUnit
This fixes some performance issues in my heavily-unit-parsing app.
Another idea might be to do an index of reversed unit names, and search
in that, but this is much easier to implement and still should provide
an improvement in the majority of cases (since I'd imagine that most
users tend to prefer a few units at a time, depending on their
application).
* Optimize memoize function
This should be just a little bit faster than before by using Maps, which
have less overhead than javascript objects.
* 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>