152 Commits

Author SHA1 Message Date
Glen Whitney
faf249b6c0
feature: add function bernoulli to calculate Bernoulli numbers (#3551) 2025-10-29 10:47:11 +01:00
Jos de Jong
25da3c9f00 chore: use preferred email 2025-09-19 17:35:31 +02:00
Jos de Jong
b3e67e5e91 fix: #3519, #3368 categories "Core functions" and "Construction functions" missing from the generated function overview 2025-08-28 14:28:15 +02:00
Jos de Jong
2bb678460e docs: let the custom set method return the right map in the example custom_scope_objects.js and an internal tool (see #3490) 2025-06-11 09:34:27 +02:00
Glen Whitney
127ea626fc
feat: #3041, #3340 rename apply to mapSlices (#3357)
* 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>
2025-01-30 13:19:23 +01:00
Jos de Jong
1f05a35d68
chore: convert CJS files to ESM (#3204) 2024-05-22 08:46:14 +02:00
Jos de Jong
d97f338fcc chore: replace util functions values and contains and usages of indexOf with using native JS functions values and contains (see #3194) 2024-04-25 08:35:49 +02:00
Jos de Jong
e37bacda36 chore: replace util functions values and contains with using native JS functions (see #3194) 2024-04-25 08:18:53 +02:00
Vrushaket Chaudhari
8f8e506166
feat: implement subtractScalar (#3081, #2643)
* added subtractScaler

* added subtractScaler missing entries

* added test cases for 2 or more parameters, test for subtractScalar instead fo subtract

* replaced subtract with subtractScalar whereever possible

---------

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2023-10-25 13:46:58 +02:00
Jos de Jong
97e743290b chore: describe all parameters of approx.deepEqual 2023-09-20 08:50:25 +02:00
Jos de Jong
5477d3829f chore: update devDependencies 2023-07-19 15:15:22 +02:00
Jos de Jong
cf339fe1f8 chore: make the entryGenerator and docGenerator scripts use /src instead of /lib/cjs 2022-08-22 16:05:53 +02:00
Jos de Jong
caf5a69e6a Don't use replaceAll (not supported on node@14) 2022-07-19 14:43:17 +02:00
Jos de Jong
e7f5e8f2af Upgrade from glob@7 to glob@8 2022-07-19 14:34:20 +02:00
Jos de Jong
ef0c62551b
Hotfix: missing functions in docs (#2556)
* Fix core and construction functions missing in docs

* Cleanup unused import

* Fix function `parse` missing in docs

* Add a TODO, remove unused `relativePath`
2022-05-11 09:57:36 +02:00
Jos de Jong
ad847cc008
Fix #2524: ignore specific commits when running update-authors.js (#2543)
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
2022-04-25 10:45:01 -07:00
Jos de Jong
fca1d492fd Fix tests on IE11 2022-04-19 14:15:10 +02:00
Jos de Jong
da4fdd465d Make IE11 happy 2022-04-19 13:54:59 +02:00
Jos de Jong
cc193bf96b Add some extra, temporary output to approx equal 2022-04-19 13:49:22 +02:00
yifanwww
6562edfb21
feat: Improve approx.deepEqual, to support epsilon (#2504)
fix(approx): Make `approx.deepEqual` respect tolerance argument

  Tests already contained calls of the form 
  `approx.deepEqual(A, B, epsilon)` but the comparison tolerance
  argument epsilon was being silently ignored. This commit fixes
  that oversight and corrects a couple of tests to reflect the finer-
  grained testing.

Co-authored-by: Glen Whitney <glen@studioinfinity.org>
2022-03-27 22:32:59 -07:00
Jos de Jong
3166b7f57b
Gwhitney doctesting (#2471)
* test: Add unit tests for all of the examples in (jsdoc) comments

  Uses the existing extraction of examples from tools/docgenerator.js
  Hence, for now this is limited to documentation of functions, but
  hopefully it can be extended to classes, units (and physical constants),
  and constants as well in the future.

  Exposes numerous errors in the examples, some of which are bugs; these
  are for now put on a known error list to be worked on, so that this
  PR does not change a huge number of source files.

  Also adds a test to check that all symbols are documented (which
  similarly doesn't really pass at the moment, and is patched to a
  hopefully temporary warning).

* refactor: Make doc.test.js into a node test

  The source code is not available in its layout as in the repository in
  the browser tests, so the new doc testing can only occur in the node tests

* Add simplifyCore, symbolicEqual, map, and resolve to the list with functions with known issues in the jsdoc examples

Co-authored-by: Glen Whitney <glen@studioinfinity.org>
2022-03-07 11:50:42 +01:00
Glen Whitney
151926c75b
fix: simplify.resolve detects reference loop and throws error (#2405)
* docs: Enhance generation to pick up functions with a prefix

  For example, prior to this commit, docgenerator.js would miss
  simplify.resolve because it is not a direct key of the math
  object.

  Also incorporates any "throws" attributes in the comments into
  the generated documentation, and uses this to document the
  new error-case behavior of simplify.resolve to be added in the next
  commit.

* fix(resolve): Detect and throw errors for reference loops

  Also extends resolve to work inside all node types. Adds tests
  for both changes.

* docs: Add embedded docs for simplify.resolve et al.

  To support finding the embedded doc from the `math.simplify.resolve`
  function itself, required extending the search for objects with
  documentation one level deeper in the `help()` function. Added test for
  this search.

  Also added support for documenting throws in embedded docs.

* refactor(simplify): Move resolve and simplifyCore to top-level

  Also reverts changes searching for docs and embedded docs one level
  down in the naming hierarchy.
  Also splits tests for resolve and simplifyCore into their own files,
  reflecting their new top-level status.

* fix(resolve): Remaining changes as requested

  Also removed a stray blank line inadvertently introduced in
  docgenerator.js

* refactor: Declare resolve and simplifyCore as dependencies of simplify

  ... rather than explicitly loading them, which is unnecessary now that they
  are at top level.

* fix: Add dependencies to factoriesNumber

  Also register simplifyCore as a dependency to rationalize

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2022-02-28 09:58:10 +01: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
Jos de Jong
76a0ec755b Publish v7.1.0 2020-07-13 21:26:05 +02:00
Jos de Jong
6ef0f9b887 Allow to pick embedded docs from an other comment block than just the first 2020-07-13 21:17:28 +02:00
Harry Sarson
08feb7fc79
remove contributors from package.json in favour of AUTHORS (#1774)
* remove contributors from package.json in favour of AUTHORS

The contributors section of our package.json is _very_ long and
manually updating can (?) be a pain.

I took a leaf out of nodejs's book and copied their update-authors
script [1].

[1]: https://github.com/nodejs/node/blob/master/tools/update-authors.js

* remove some of my many emails

* add a couple more mail mappings

* get lint passing

* add instruction to update-authors

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2020-03-23 19:57:20 +01: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
Harry Sarson
4cfef3ac34 fix no-case-declarations lint 2019-08-21 10:09:10 +01:00
Harry Sarson
b6a42c032d run standard --fix 2019-08-21 10:09:10 +01:00
jos
d8a4f3a00a Update to standard@13.0.2 2019-07-20 13:46:31 +02:00
jos
b390a23f4b Fix function reference not published in npm library 2019-06-09 20:44:16 +02:00
jos
41efed79d3 Fix #1473: remove 'use strict' in every file 2019-05-26 20:21:18 +02:00
jos
64529c3d2e replace tools/validateEmbeddedDocs with a unit test 2019-05-22 14:41:34 +02:00
jos
ec44199dc0 Ignore generated docs in repo, cleanup generated docs before generation 2019-05-22 14:25:42 +02:00
jos
9af5206a88 Make matrix dependency requried again for subset. Make IndexNodes dependencies explicit. Disable subset in number implementation for now 2019-05-22 11:08:12 +02:00
jos
ab1b83a2f6 Remove generated files from repo, make tests independent from generated files 2019-05-12 15:14:13 +02:00
jos
dd830a8892 Fix executing entry files on load of file 2019-05-08 12:44:36 +02:00
jos
c0a11b3d88 Auto generate impureFunctionsAny files 2019-05-08 11:33:51 +02:00
jos
8162f0c2bb Automatically generate functionsAny and functionsNumber 2019-05-08 10:19:08 +02:00
jos
52cc01e752 Use templates and handlebars to generate entry files 2019-05-05 16:43:34 +02:00
jos
cc740b39be Move snapshot code into /src to have it transpiled 2019-05-04 15:17:15 +02:00
jos
47e1adcd0e Dynamically generate the expected snapshot structure based on the factories 2019-05-04 14:39:30 +02:00
jos
158e39b673 Replace deprecated gulp-util with fancy-log 2019-05-04 10:05:15 +02:00
jos
ad51c22066 Fix embedded docs warnings. Fix CLI auto completion on non-supported classes 2019-05-04 09:54:12 +02:00
jos
a770b7c4d3 Fix an issue in the entry generator 2019-04-29 21:28:22 +02:00
jos
20aa9a005a Fix circular dependency in math namespace for evaluate 2019-04-29 21:19:50 +02:00
jos
427c39c33b Created ES5 and ES6 entry points 2019-04-28 20:56:08 +02:00
jos
bb9a1e2164 Rename *Full files to *Any 2019-04-27 20:27:26 +02:00
jos
e4bb1c6198 Generate individual files for dependencies (tree shaking working now :) ) 2019-04-24 21:13:49 +02:00
jos
2450ed1fc1 Update entry files and snapshots with latest merged functions 2019-04-24 11:05:39 +02:00