Montag, 23. September 2013

Finished GSoC project Expresso

Finished GSoC project Expresso

GSoC ends today and I can announce the 0.2.0 version of the expresso library.
It is build on top of core.logic and core.matrix and provides symbolic manipulation of algebraic expressions.

What's there?

An api/dsl for manipulation of algebraic expressions which doesn't get in your way. Expresso's expressions are
just clojure s-expressions and can be manipulated with rich set of clojure sequence functions

An equation solver which is capable of solving a single equation and multiple equations for unknowns.

An optimizer which transforms a mathematical expression to a semantically equivalent but performanter one

An expression compiler to compile an expression to an efficient clojure function

A semantic rule based translator on top of which many of expresso's features are implemented

The code is fully documented and I wrote a tutorial and showcase of expresso, the expresso-tutorial.

GSoC has been a really fun and valuable time for me. I learned a lot. Of course I will continue developing expresso!
Expresso and core.matrix are the first steps in the direction of a full computer algebra system for clojure.
I hope that it will help clojure to be an attractive choice for scientific computing projects in the future.

Showcase:
Here are two examples of expresso's facility to manipulate mathematical expressions.
They can be found and are explained in the expresso-tutorial 1.