mathjs | An extensive math library for JavaScript and Nodejs | Math library

 by   josdejong JavaScript Version: 12.4.0 License: Apache-2.0

kandi X-RAY | mathjs Summary

kandi X-RAY | mathjs Summary

mathjs is a JavaScript library typically used in Institutions, Learning, Education, Utilities, Math applications. mathjs has no bugs, it has a Permissive License and it has medium support. However mathjs has 2 vulnerabilities. You can download it from GitHub, Maven.

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices. Powerful and easy to use.

            kandi-support Support

              mathjs has a medium active ecosystem.
              It has 13277 star(s) with 1206 fork(s). There are 226 watchers for this library.
              There were 10 major release(s) in the last 6 months.
              There are 165 open issues and 1411 have been closed. On average issues are closed in 45 days. There are 30 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of mathjs is 12.4.0

            kandi-Quality Quality

              mathjs has 0 bugs and 0 code smells.

            kandi-Security Security

              mathjs has 2 vulnerability issues reported (1 critical, 1 high, 0 medium, 0 low).
              mathjs code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              mathjs is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              mathjs releases are not available. You will need to build from source code and install.
              Deployable package is available in Maven.
              Installation instructions, examples and code snippets are available.
              It has 1108 lines of code, 4 functions and 988 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed mathjs and discovered the below as its top functions. This is intended to give you an instant insight into mathjs implemented functionality, and help decide if they suit your requirements.
            • Invoke the inverse of the inverse of the given equation
            Get all kandi verified functions for this library.

            mathjs Key Features

            No Key Features are available at this moment for mathjs.

            mathjs Examples and Code Snippets

            copy iconCopy
            import { fraction } from 'mathjs';
            import * as mathjs from 'mathjs;
            copy iconCopy
            import * as math from 'mathjs'
            const app=createApp({....})
            app.config.globalProperties.$math =math
            How to substract and divide numbers in loops discord.js
            Lines of Code : 8dot img3License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            const mathjs = require("mathjs");
            const addCommandoEmbed = new Discord.MessageEmbed()
                .setTitle(`SUCCESS\n\n${args.join(' + ')} = ${mathjs.evaluate(args.join(" + "))}`)
            TypeError: Cannot read property 'fraction' of undefined - Cypress/Javascript
            JavaScriptdot img4Lines of Code : 32dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import * as math from 'mathjs'
            // configuration
            export { config } from './configReadonly.js'
            // functions and constants
            export * from './pureFunctionsAny.generated.js'
            export * from './impureFunctionsAny.generated
            Using math.js in Postman
            JavaScriptdot img5Lines of Code : 10dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            const mathjsUrl = "";
            pm.sendRequest(mathjsUrl, (err, response) => {
                const mathjs = response.text();
                (new Function(mathjs))();
                    let result = math.multiply(4
            Get distinct products of a sum-of-products expression mathjs/js
            JavaScriptdot img6Lines of Code : 24dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            let str = "7.30*7.40-2.10*1.30+8.10*(2.70+0.60+4.70)+0.30*0.60+ 1.60*0.70+2.95*2.65+6.00*5.80"
            let strArr = str.split("*")
            let parsedParenthesis = => {
              if (!isNaN(expression))
                return expression
              let regex 
            How to include 3rd party library that uses older import approach to Angular4.x?
            JavaScriptdot img7Lines of Code : 11dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            npm install mathjs
            console.log("e was: " + mjs.e);
            export var moduleNamer = (function(){
              //module implementation
            //reference like this from your component:
            How to create a matrix using math.js from a variable in javascript
            JavaScriptdot img8Lines of Code : 11dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            const math = require('mathjs')
            let y = [0, 1, 2,  3, 4]
            let m = math.matrix(y)  
            console.log(m.size())     // [ 5 ]
            math.reshape(m, [m.size()[0], 1])
            console.log(m.size())     // [ 5, 1 ]
            console.log(m.valueOf())  // [ [ 0 ], [ 1 ], [ 2
            Mathjs 'The global config is read-only'?
            JavaScriptdot img9Lines of Code : 4dot img9License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import { create, all } from 'mathjs';
              const mathjs = new create(all);
              mathjs.config({ number: 'BigNumber' });
            Mathjs 'The global config is read-only'?
            JavaScriptdot img10Lines of Code : 10dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import * as mathjs from 'mathjs';
            import { create, all, MathJsStatic } from 'mathjs';
            private mathjs: Partial;
              constructor() {
                this.mathjs = create(all, { number: 'BigNumber', precision: 128 });

            Community Discussions


            Finding Null Space of Matrix in Javascript
            Asked 2022-Jan-29 at 22:22

            I am wanting to see how I can find the nullspace of a m x n matrix in javascript. In MATLAB, we can use the built-in function null(A). So I was wondering if there is something similar for javascript? I know that we could try solving the system Ax=0, but using the math.js libraries, the built-in functions come with the requirement that A is n x n or square. Which is not necessarily the case.

            See for example

            I'd appreciate any references to do this in javascript or how I could build such a script from scratch if needed.




            Answered 2022-Jan-29 at 22:22

            Wanting to restrict to just what's in math.js...

            If you know m > n and A has full column rank and your need is just to see what part of some m-dimensional vector v is not in the column span, then math.qr and do v - (Q' * (Q * v))

            Otherwise, try math.eigs on A' * A and then pick the eigenvectors corresponding to the nearly-0 eigenvalues (according to some tolerance).



            Getting TypeError: undefined is not an object (evaluating '_mathjs.default.fraction'), React-Native
            Asked 2022-Jan-25 at 16:52

            I get this error whenever I use 'mathjs'

            TypeError: undefined is not an object (evaluating '_mathjs.default.fraction')

            Basically my code is this



            Answered 2022-Jan-25 at 16:52

            Looking at the library's npm page, I think you need to use a named import, not the default one:



            How can I add "deg" after all numbers in trig functions?
            Asked 2022-Jan-13 at 18:19

            I'm using Node.js with the mathjs package. Mathjs uses radians in its trig functions. I want to include a degree mode for a calculator I'm making. How can I add "deg" after every number within any sin/cos/tan function in a string? This way, mathjs will calculate it using degrees instead so it can work.

            Example: 5*(2+3)/sin(4+(3-2)) should become 5*(2+3)/sin(4deg+(3deg-2deg)) However: 5*(2+3)/(4+(3-2)) should not change.

            I've looked everywhere: Regular expressions, reddit, google, I've found nothing. The closest I've come is a regular expression that breaks when there are parentheses inside the sin function (/sin\(.*?\)/).

            Edit: Yes I have looked at the angle configuration example. No, that doesn't solve my problem: It assumes the user is implementing a single value to calculate the sine of, I am trying to calculate full expressions with a degree mode (mathjs.evaluate())



            Answered 2022-Jan-13 at 18:14

            You could instead simply replace the trig function implementations with versions that use degrees...

            Look at the angle configuration example in the MathJS docs. You can use the math.import function to provide your own function implementations for sin, cos, etc., and you can refer to the original ones by first saving a reference to them.

            Here is the full example from the linked docs as runnable snippet (copyright © 2013-2021 jos de jong):



            Npm dependency conflict
            Asked 2021-Nov-01 at 04:56

            I am working on a project with Vue. I run Vue Cli and I added the Typescript plugin. I have several vulnerabilities. When I run npm audit fix it can't resolve the dependency conflict:



            Answered 2021-Nov-01 at 04:56

            Your package.json has a mix of dev dependencies with versions that start with ~ and ones that start with ^. That's probably because some dev dependencies were installed with older versions of npm that defaulted to ~ which is more conservative than ^. As a first step, change the 8 ~ versions to ^, remove node_modules and (if it exists) package-lock.json and run npm install again. I tested this locally and it didn't reduce the number of vulnerabilities reported by npm audit but it did reduce the number of outdated packages which is a step in the right direction.

            Let's simplify things by only looking at the audit results for your production dependencies and ignoring (at least for the moment) issues in your dev dependencies. npm audit --only=prod reports only 5 issues, all moderate. Running npm audit --only=prod --force fix updates @capacitor/cli from 2.x to 3.x. That's a breaking change so you'll want to test it, but if that works for you, congratulations because npm audit --only=prod reports no vulnerabilities.

            At this point, you could possibly choose not to worry much about the other issues reported by npm audit. However if you wanted to fix them, here is the potentially tedious/arduous path I'd recommend:

            • Do a manual audit of all of your dev dependencies to make sure you aren't including things you don't need. Maybe you have things that are installed that you aren't using. Uninstall them. Maybe you have things installed that are nice-to-have but you don't really need. Consider uninstalling them too.
            • Run npm outdated to see what could be manually updated via a breaking change. Try doing those updates.



            How to import javascript library in main.js for global availability throughout vue app?
            Asked 2021-Oct-27 at 09:59

            My main.js contains import "mathjs"; and seems to be working fine within main.js as



            Answered 2021-Oct-27 at 09:51

            in main.js import all as math then add it as global property :



            ReferenceError: embeds is not defined
            Asked 2021-Oct-21 at 15:34

            When I run the terminal it gives me this error:



            Answered 2021-Oct-21 at 15:32

            You have to change to:

  { embeds: [embed] })



            TypeError: Cannot read property 'fraction' of undefined - Cypress/Javascript
            Asked 2021-Sep-12 at 21:55

            I am doing a test where I grab an odds value and store it as a fraction. Then I want to compare the value to a particular format depending on the option selected from the drop down.

            I am trying to use these to set up the fraction and determine the odds format:


            How do I resolve that type error above.




            Answered 2021-Sep-12 at 19:39

            If you want to use just fraction you can use:



            Svelte: select text of input element on focus
            Asked 2021-Jul-16 at 14:53

            I want to select the text of the input element on focus. I tried with bind:this={ref} and then, but this seems only to work when i remove the bind:value from the input element. Why? and how to solve?

            Many thanks!



            Answered 2021-Jul-16 at 14:53

            As stated by the comment of @JHeth: I added await tick(), made the function async and it worked.



            Solving non-square system of linear equations in Javascript
            Asked 2021-Jul-11 at 02:02

            I have a system of resistors, something like this: Resistor schematic

            I made a website which renders diagrams like this one (not this one exactly). The user can change resistance of each resistor. I want to calculate every current in the system.

            I found a solution using Kirchhoff's laws, which gave me a system of linear equations. I solved it with math.js using inverse matrix. This approach worked well on smaller circuits.

            In this circuit, i have more equations, than variables, which means that I cannot compute inverse matrix, to solve them. Simplifying them manually, to match the number of unknowns is an option, but that would require a human. The website should be able to calculate everything on its own.

            Now I am looking for a way to solve a system of linear equations, which cannot be represented as a square matrix. Any suggestions?



            My current approach looks like this.



            Answered 2021-Jul-10 at 21:16
            • This approcah makes a row reduction of the matrix, and gives as a result an string with the unknown values. In case the system has infinite resolutions, this would returns simplified equations so you can parameterize later.

            EDIT : Independent terms are in the last column of the array.



            How can Jsxgraph embed Katex instead of Mathjs
            Asked 2021-Jun-23 at 16:27

            Jsxgraph uses Mathjs to render Math expressions for text object. What can I do to embed Katex in Jsxgraph?



            Answered 2021-Jun-23 at 16:27

            The use of KaTeX is suppported in the last few nightly builds and will be supported officially in the next release 1.2.4+. To enable it, the KaTeX library has to be included. Here is a small example:


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Install mathjs

            First clone the project from github:.
            The build script currently generates two types of output:. For each function, an object is generated containing the factory functions of all dependencies of the function. This allows to just load a specific set of functions, and not load or bundle any other functionality. So for example, to just create function add you can do math.create(addDependencies).
            any, generate entry points to create full versions of all functions
            number: generating and entry points to create lightweight functions just supporting number


            Math.js works on any ES5 compatible JavaScript engine: node.js, Chrome, Firefox, Safari, Edge, and IE11.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • npm

            npm i mathjs

          • CLONE
          • HTTPS


          • CLI

            gh repo clone josdejong/mathjs

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link