Java library for parsing and evaluating handwritten mathematical formulae
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

math-handwriting-lib: A parser and evaluator of handwritten mathematical formulae (Java)

Codacy Badge Build & Test on Travis CI


This library is for recognition of handwritten mathematical expresssions in the online fashion, i.e., through the utilization of stroke representations of handwritten symbols.

This is the core part of Glyphoid.

List of currently supported math notation syntaxes:

  1. Numerical values: Decimal numbers, negative/positive signs
  2. Basic arithemtics: Addition, subtraction, multplication
  3. Fractions
  4. Exponentiation
  5. Square root
  6. Parentheses (Limited support so far)
  7. Variable definition and arithmetics: Symbol names including Latin and Greek letters, with or without suffixes
  8. Function definition and evaluation: Multi-argument function supported
  9. Matrices and vectors: Sparse matrix notations supported, addition, multiplication, transpose, inverse
  10. Certain common elementary functions: e.g., sin, cos, log, exp
  11. Certain matrix functions: det, rank
  12. Summation (Sigma) and product (Pi) expressions
  13. Definite integrals
  14. Numerical comparisons (e.g., >, <, =)
  15. Logical AND / OR expressions
  16. Common mathematical and scientific constants, such as pi, e and c
  17. Incremental parsing: Example
  18. Piecewise functions: Example

Build and Test

  1. Make sure that you have the following installed:

  2. Java 7 or above

  3. Apache Maven

  4. Download and build the Glyphoid Java Worker Pool Porject

  5. Download and build the Glyphoid Java Web Utilites Porject

  6. Get the token set data from the tokensets repository. These are required by the unit tests of math-handwriting-lib.

  7. cd to the root directory of math-handwriting-lib (i.e., where the pom.xml is)

  8. On Linux and Mac, execute Maven clean build and local-repository installation:

    mvn clean install -DtokenSetPathPrefix=${TOKENSETS_DATA_DIR}/TS_

    On Windows, do

    mvn clean install -DtokenSetPathPrefix=${TOKENSETS_DATA_DIR}\TS_

The environment variable tokenSetPathPrefix tells the unit tests in math-handwriting-lib the location of the test token set files. TOKENSETS_DATA_DIR is the path to the above-mentioned tokensets repository.