Hi David,
The core of expresso wouldn't be much work to port to clojurescript.
The rule based translator is built on top of core.logic, so porting
that should be straightforward.
Also the manipulation routines are very much purely algorithmic so
should work without much trouble in clojurescript.

There are two things which need to be resolved, though:
1.) what execution engine: expresso is very close to core.matrix and
uses its functions to execute the expressions and it's function names
and semantics for the encoded expressions.
2.) compiling optimized expressions to functions at runtime:
In clojure I managed to compile optimized expressions to optimized
code at runtime through a code-emitting protocol and a call to eval to
create the function. Without eval in clojurescript this couldn't be
done easily. With compile-time constant expressions this could be made
to work with a macro. At runtime there would still be the normal
evaluate function which however traverses the whole expression tree.

So if anyone knows a good execution engine for expresso in
clojurescript or has thoughts about the compiling issue please post!

I think it would be a good showcase for clojurescript to bring
symbolic manipulation cababilities including solving equations etc to
the browser.

On Thu, Aug 29, 2013 at 10:19 PM, David Nolen <dnolen.li...@gmail.com> wrote:
> Very cool stuff :) How much work would it take for this to work with
> ClojureScript?
>
> David
>
>
> On Mon, Aug 26, 2013 at 4:47 AM, Maik Schünemann <maikschuenem...@gmail.com>
> wrote:
>>
>> Hi,
>> I released a first version of my gsoc project expresso [1].
>> This is an important Milestone in my gsoc project.
>> What is there:
>> an expressive and powerful rule based translator, on top of which many
>> transformations can be based.
>> functions to simplify (currently without ratio test), differentiate,
>> rearrange, solve expressions.
>> functions to optimize an expression (includes
>> common-sub-expression-elimination, constant-folding, replacement
>> with special operators, matrix-chain-optimization, ...)
>>
>> The solver can solve multiple simultaneous equations.
>> currently it solves equations, which are polynomials up to degree 2, in
>> which the number of occurrences of the unknown
>> can be reduced to one by simplifying the expression or which consists of
>> factors in above form. variables as parameters
>> are supported everywhere.
>>
>> The last weeks of gsoc I will be making the above transformations more
>> stable, eliminate as many bugs as I can find
>> (feel free to report some you notice), and extending the range of
>> expressions which can be transformed by these transformations,
>> as well as thoroughly documenting the work that has been done.
>> See the github repository and README.md for details [1]
>>
>> [1] https://github.com/clojure-numerics/expresso
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to