Skip to content

Where is this project heading? #10

Description

@tgoossens

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.

Activity

  1. mikera commented on Jul 12, 2014

    @mikera
    Member

    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!

  2. tgoossens commented on Jul 12, 2014

    @tgoossens
    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 :)

  3. mikera commented on Jul 12, 2014

    @mikera
    Member

    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)

  4. mschuene commented on Jul 12, 2014

    @mschuene
    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 notifications@github.com
    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions