Hi Miles,

Since I'm a newcomer to Julia, LinearExpressions was more like a first 
experience to learn Julia. I don't think the package is production ready 
and I don't even want to register it, however, I announced it in the list 
to possibly obtain feedback like the one you just gave me :)
Thank you for telling me about JuMP, I'd already heard about it although 
didn't knew about its expression capabilities.

The bottleneck in Python was not the expression creation but rather a step 
where I have to generate sparse matrices of coefficients from matrices of 
symbolic expressions. Since PyLMI-SDP uses SymPy which is tailored for 
generic expressions, I've already been able to get a boost by using 
linear-only expressions defined by dictionaries of [symbol => coefficient]. 
I suspect I would had got the very same kind of boost if I had implemented 
that in Python as it has very fast dictionaries.

Something I've been really really missing in Julia is a generic CAS, 
something like SymPy, Axiom, Mathematica..., something that could be shared 
among the various packages, JuMP, Calculus... Although I would like to, I 
don't have neither the Julia nor the mathematical knowledge to start a 
project like that.
LinearExpressions is a shy proof of concept about how Julia type system can 
be used to represent symbolic expressions, which could be defined in 
several layers of complexity (a little like Axiom): variables, linear 
expressions, polynomials, polynomial fractions, generic expressions; all 
interchangeable and allowing different underlying types like Integers, 
Reals, ...

I'm currently reading into JuMP to learn more how it works and how can I 
use it.
I'll be glad to make some contributions if I'm able to.

Best,
Cristóvão D. Sousa


On Sunday, February 2, 2014 1:04:28 PM UTC, Miles Lubin wrote:
>
> Hi Cristóvão,
>
> JuMP (https://github.com/JuliaOpt/JuMP.jl) has supported scalar linear 
> expressions for a while and has the low-level structure to support matrix 
> coefficients, but that hasn't been a priority to implement so far. I think 
> you'll also find that using operator overloading to form these expressions 
> won't give you as much of a performance boost over python as you would 
> expect, so in JuMP we've taken to using macros instead. Would you like to 
> combine our efforts?
>
> Best,
> Miles
>
> On Sunday, February 2, 2014 6:31:08 AM UTC-5, Cristóvão Duarte Sousa wrote:
>>
>> Hi Julians,
>>
>> I've developed a Julia package to manipulate symbolic linear expressions 
>> with both scalar and matrix coefficients:
>> https://github.com/cdsousa/LinearExpressions.jl
>>
>> I created it mainly to manipulate large linear matrix inequalities 
>> (LMI<http://en.wikipedia.org/wiki/Linear_matrix_inequality>) 
>> for SDP optimization.
>>
>> Two notes: the tests are not extensive; the main LinExpr type is not 
>> immutable, although from a mathematical pov it may make more sense to be.
>>
>> Cristóvão D. Sousa
>>
>

Reply via email to