* fix: use utility isNaN for consistent max and min results
* test: add NaN comparison cases for larger and smaller functions
* docs: update descriptions for larger, smaller, max, and min functions to clarify NaN behavior
* refactor: rename isNaN to mathIsNaN for extra clarity
---------
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* Improve performance in iteration functions
* Included faster algorithms in collection
* Changed array methods to for
---------
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* refactor: refactor _forEach method in DenseMatrix for readabilty without affecting performance
* Handle edge case
* Format
* Remove unnecesary skip
* Returned a fast case for flat arrays.
* refactor: simplify flatten function using Array.prototype.flat
* Added fallback
* added option to flatten arrays with homogeneous size
* Typos in array.js and array.test.js
* fix types in jsdocs
* Renamed variable
* Reverted to original form
---------
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* chore: Rename `apply` to `mapSlices`
This renaming conforms with the Julia name for the function formerly
called `apply`, and allows it to be called from the expression parser.
The previous name `apply` is kept as an alias for `mapSlices`, for
backward compatibility. This commit implements an `alias` metadata
property for function factories to facilitate the `apply` alias for
`mapSlices`.
As a separate bonus, this PR corrects several typos in function docs
and removes now-passing doc tests from the list of "known failing" doc
tests to get down to 45 known failures and 136 total issues in doc tests.
(Most of the excess of 136 as compared to 45 are just due to roundoff
error/slight inaccuracy of what the documentation claims the result will
be and the actual result returned by mathjs. When the 45 are eliminated,
a reasonable numeric tolerance can be decided on for doc testing and
then the doc tests can be made binding rather than advisory.
* refactor: changes per PR review
---------
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* fix: Accept bigints as matrix indices and range params, demoting to number
* feat: bigint support in range(), clarify demotion in Range()
* feat: range() support Fraction, better errors for single non-string argument
---------
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* fix: Don't override type-native floor/ceil when within tolerance of value
* refactor: extend bigint safety to round and fix
---------
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
* Addressed silentmissile's comment in https://github.com/josdejong/mathjs/issues/3125
* Added method overload to index.d.ts, have to revert commit due to changes to package-lock.json with using npm install to run the unit tests & lint tests
* Type definition missing for matrixFrom* #3115
* fix: Update types and add tests as requested by review
* chore: lint fix
---------
Co-authored-by: Hudsxn <jhudson98new@gmail.com>
Co-authored-by: Hudsxn <143907857+Hudsxn@users.noreply.github.com>
* fix: Handle bigints properly in more cases
* Allow a bigint to appear in a max/min of nonhomogeneous arguments
* If randomInt is called with a bigint or a pair of bigints, return
a bigint.
* Preserve uniformity of results if randomInt is called with a very large
range.
* Extend log, log2, and log10 to bigints
* Add tests for all of the above issues.
* Bonus: fix one JSDoc comment issue. If every PR fixes one, we will soon
get through the 150+
* fix: Refactors per comments and 1 bonus doc test (isInteger)
* chore: fix lint
---------
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>