Skip to content
Tool for numeric analysis of ordinary differential equations
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



NumEquaRes is a tool for numerical analysis of ordinary differential equations. The tool is available online at


We have formulated our requirements as follows:

  • Speed matters. NumEquaRes performs faster than MATLAB, SciLab, and the like.
  • Freedom matters. NumEquaRes is free software. Thus, everyone can extend its functionality.
  • Ease of use matters.
    • User should be able to use it easily without having to do advanced training.
    • User shouldn't have to install a ton of software to get it all work.

Fast basically means implementation of your custom equations in a native language, e.g. C++. So our system needs a compiler to compile your equations. But we don't want to force user to install a compiler! That's why NumEquaRes is an online system: we install everything on the server, you just use it.


NumEquaRes is built of the following components

  • Core
    • equares_core (C++): library providing the computational functionality
    • equares_con (C++): console front-end to equares_core
  • Web interface
    • equares_http (node.js): HTTP-server providing the Web interface to NumEquaRes
  • Utilities
    • captchagen (C++): captcha generator
    • imgresize (C++): image resizer


Technologies involved are as follows

  • C++ code is using
  • Server code is written in JavaScript and is run by node.js. There are a number of modules that are required to run the server app
    • line
    • express
    • jade
    • mongodb
    • mongoose
    • mongoose
    • connect
    • passport
    • passport
    • connect
    • marked
    • nodemailer
    • activator
    • mobile-detect
  • Besides, running server app requires the mongoDB database engine


To build the NumEquaRes core, you will need QtCreator (see or just an installed version of Qt (4.8+, 5.x also supported).

Optionally, you can install and use the ACML library. To use it, supply the ACML_DIR variable to qmake like this:

qmake ACML_DIR=/opt/acml5.3.1/gfortran64 other arguments

Doing so will enhance the functionality of some boxes; some boxes, e.g. Eigenvalues, are not available at all without the use of ACML. The ACML_DIR variable must be set to the path to an installed version of ACML. That directory is expected to contain files include/acml.h and lib/ (Linux) or lib/acml.dll (Windows).

Project file to open with QtCreator is Optionally, you can build project using the command line:

mkdir build-equares-release
cd build-equares-release
qmake CONFIG+=release ACML_DIR=/path/to/acml/installation ../equares/

Nothing more needs to be built.


To run equares http server, you will need to install

  • node.js
  • npm
  • mongoDB
  • node modules mentioned above; this is done with the command npm install issued from the equares_http subdirectory.
  • MathJax — run ./ from within the equares_http subdirectory.

The EQUARES_BIN environment variable must be set to point to the directory containing core binaries, e.g. (on Linux, prvided the build root is $HOME/build-equares-release),

export EQUARES_BIN=$HOME/build-equares-release/bin

On Linux, you will likely need to set the LD_LIBRARY_PATH environment variable to the same directory:


Before running the server, you should also do these things.

  • Make sure mongodb server is running on localhost.
  • Provide the file equares_http/email-settings.json (consider example file equares_http/email-settings-example.json).

The server is started with the command

node app.js

issued in the equares_http subdirectory.

You can’t perform that action at this time.