Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Where is this project heading? #10

Open
tgoossens opened this issue Jul 12, 2014 · 4 comments
Open

Where is this project heading? #10

tgoossens opened this issue Jul 12, 2014 · 4 comments

Comments

@tgoossens
Copy link

Is it the goal of this project to become like amaple or sympy (python) for clojure?

With features like

  • symbolic differentiation/integration of a function
  • taylor expansions
  • simplify expressions

Just curious.

@mikera
Copy link
Member

mikera commented Jul 12, 2014

My personal view is that expresso could easily develop into something like SymPy over time. That will depend on where contributors want to take it of course!

@tgoossens
Copy link
Author

Seems nice to me.

Was there a special motivation to start this project. i.e. a specific problem that had to be solved. Or is it more like 'let's see how well clojure does at symbolic math' ?

Personally I use maple quite often to do some quick calculations. And I was wondering whether there would be a specific advantage to using clojure. Of course clojure overrules maple as a decent programming language :)

@mikera
Copy link
Member

mikera commented Jul 12, 2014

Well I started it out of curiosity but @mschuene has done most of the subsequent development as part of Google Summer of Code.

My motivation was being able to solve / optimise algebraic expressions for data science related work. It ties quite closely to the work I'm doing on core.matrix (https://github.com/mikera/core.matrix)

Clojure gives quite a big advantage in the sense that Lisp expressions are already well suited to treating "code as data". And it also has the advantage of being a very strong general purpose language (which means it trumps Mathematica and Maple for practical usage)

@mschuene
Copy link
Contributor

Hi,
Yes, expresso's goal is to evolve into a clojure CAS system much like sympy
etc. for python.
I worked on it during last years Google Summer of Code, with @mikera as
mentor.
I'd be very thankful for some contributors who share the vision to do
computer algebra in clojure. Core.matrix is a great unifying example, you
can use the plethora of matrix implementations that are available on the
jvm (or interfacing native code) but having a nice functional lispy api
which is great.
Expresso is meant to be the symbolic counterpart of that story.
I am studying mathematics and informatics currently, so I don't really have
time to work on expresso during course time, but I plan to move it forward
during my free time in summer.
Currently, expresso already has support for solving/optimising expressions,
symbolically differentiating and simplifying them etc, but it is still far
from a real CAS system.
The next steps planned are:

  • giving core.matrix access to symbolic matrices with expresso as an
    implementation -> this is mostly done but still needs to be merged into
    core.matrix
  • optimise the rule engine of expresso -> currently this is build on top of
    a expressive, but not very efficient rule engine written ontop of
    core.logic, there are some plans for a fast pure clojure term rewriting
    engine(for example https://github.com/kovasb/combinator and
    https://github.com/kovasb/term). unifying these term rewriting engines and
    building expresso on top of this is the way forward.

On Sat, Jul 12, 2014 at 1:24 PM, Mike Anderson [email protected]
wrote:

Well I started it out of curiosity but @mschuene
https://github.com/mschuene has done most of the subsequent development
as part of Google Summer of Code.

My motivation was being able to solve / optimise algebraic expressions for
data science related work. It ties quite closely to the work I'm doing on
core.matrix (https://github.com/mikera/core.matrix)

Clojure gives quite a big advantage in the sense that Lisp expressions are
already well suited to treating "code as data". And it also has the
advantage of being a very strong general purpose language (which means it
trumps Mathematica and Maple for practical usage)


Reply to this email directly or view it on GitHub
#10 (comment)
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants