Step by step math solutions for everyone
JavaScript
Latest commit 671594e Feb 22, 2017 @evykassirer evykassirer committed on GitHub replace eval() with evaluate() (#135)

README.md

A step by step solver for math

Join the chat at https://gitter.im/mathsteps-chat/Lobby Build Status

https://www.youtube.com/watch?v=iCrargw1rrM

Requirements

Mathsteps requires Node version > 6.0.0

Usage

To install mathsteps using npm:

npm install mathsteps
const mathsteps = require('mathsteps');

const steps = mathsteps.simplifyExpression('2x + 2x + x + x');

steps.forEach(step => {
    console.log("before change: " + step.oldNode);         // before change: 2 x + 2 x + x + x
    console.log("change: " + step.changeType);             // change: ADD_POLYNOMIAL_TERMS
    console.log("after change: " + step.newNode);          // after change: 6 x
    console.log("# of substeps: " + step.substeps.length); // # of substeps: 3
});

To solve an equation:

const steps = mathsteps.solveEquation('2x + 3x = 35');

steps.forEach(step => {
    console.log("before change: " + step.oldEquation.print());  // e.g. before change: 2x + 3x = 35
    console.log("change: " + step.changeType);                  // e.g. change: SIMPLIFY_LEFT_SIDE
    console.log("after change: " + step.newEquation.print());   // e.g. after change: 5x = 35
    console.log("# of substeps: " + step.substeps.length);      // e.g. # of substeps: 2
});

To see all the change types:

const changes = mathsteps.ChangeTypes;

Contributing

Hi! If you're interested in working on this, that would be super awesome! Learn more here: CONTRIBUTING.md.

Build

First clone the project from github:

git clone https://github.com/socraticorg/mathsteps.git
cd mathsteps

Install the project dependencies:

npm install

Test

To execute tests for the library, install the project dependencies once:

npm install

Then, the tests can be executed:

npm test