Nimit Singhania
University of Pennsylvania

What is it?

This is a tool to learn piecewise affine models from input-output data. It is written in MATLAB. Technical details of the tool can be found in the following paper:

  • R. Alur, N. Singhania, Precise Piecewise Affine Models from Input-Output Data, EMSOFT'14


Run start.m in MATLAB inorder to add all required files in your current path.

Run example/runExample.m to generate and plot the model for a simple example used in EMSOFT'14 paper.

Run mosaic-example/testMosaic.m and then mosaic-example/plotMosaic.m for a FUN experiment!

Run qualtiy-tests/runQualityTests.m to generate synthetic data and evaluate performance of tool on this data. Run quality-tests/plotN.m and quality-tests/plotSize.m to generate plots from the collected statistics.

Run real-data-tests/driveFerrari.m to evaluate the tool on real-data.


See code/genPiecewiseAffineModel.m to understand details of the model generated by the tool. See example/runExample.m, quality-tests/learnModel.m and quality-tests/testModel.m to understand how to learn model and test the model using algorithm presented in the paper.


  • benchmarks :- Benchmarks used for evaluating the tool in the paper.

    • functions :- 4 piecewise linear functions and 3 smooth non-linear functions used to create synthetic data.
    • pick-and-place-data :- Data from an experimental study by Juloski et. al.
  • code :- Implementation of algorithm described in the paper.

    • analysis tools :- It consists of some tools to analyze the learnt models.
  • example :- Code to run tool on a simple example used in EMSOFT'14 paper.

  • mosaic-example :- Code to have fun with the tool!

  • quality-tests :- Code to generate synthetic data from 4 piecewise linear functions and 3 smooth non-linear functions and evaluate the performance of the tool.

  • real-data-tests :- Code to evaluate the tool using pick-and-place-data

  • stats :- Stores all the statistics generated for synthetic and real data. Used for plotting.

  • plots :- Stores all the graphs generated using the collected statistics


Please see the file called LICENSE.


Please contact Nimit Singhania ( for any queries or comments.
Please report any bugs at

Built With

Share this project: