[Coin-discuss] [ANN] Rima 0.05: Math Programming for Lua

Geoff Leyland geoff_leyland at fastmail.fm
Sun Mar 27 23:14:24 EDT 2011


Hi,

I'm happy to announce version 0.05 of Rima, a symbolic math modelling package for Lua[1] binding to CLP, CBC, lpsolve and ipopt.

Rima has a number of nice features:

- models are symbolic and functional rather than imperative
- Rima allows very rich interaction with data structures - dynamic objects and duck typing for math modelling
- models are very easily encapsulated and extended
- there's strong and flexible separation between models and data.  All data is late bound, and functions and expressions are just data
- you can compose models from parts

Rima's documentation starts at http://www.incremental.co.nz/projects/lua.html and development is hosted at github https://github.com/geoffleyland/rima/
You can get the tarball from https://github.com/downloads/geoffleyland/rima/rima-latest.tar.gz

Changes since 0.04 are
 - support for ipopt and consequently nonlinear problems
 - symbolic differentiation
 - compilation of expressions to Lua functions
 - hosting moved to github

The symbolic differentiation and compilation are used to pass functions for evaluating objectives, constraints, gradients, and the hessian to ipopt.  It's quite cool: rima differentiates the symbolic expressions, writes them out as a lua string and then compiles the string.  With LuaJIT [2], you get native code for a symbolically differentiated function!

Rima is not part of COIN, but it's been in the review queue for half its life!

Any feedback would be much appreciated.


Cheers,
Geoff

[1] http://www.lua.org/
[2] http://www.luajit.org/





More information about the Coin-discuss mailing list