On Wed, Apr 23, 2014 at 3:52 PM, Aaron Meurer <[email protected]> wrote:
> I think the polys are fast because it can assume that the expressions
> are polynomials, which is a much simpler data structure than a general
> mathematical expression.

That's exactly right. If you want a general data structure but without
assumptions and as fast as possible,
in Python, look here:

https://github.com/certik/sympyx

There is also cythonized version. It's fast (much faster than SymPy),
but still slower than CSymPy.

I don't know how to make it any faster, in Python or Cython.

Ondrej

>
> Aaron Meurer
>
> On Wed, Apr 23, 2014 at 4:43 PM, Matthew Rocklin <[email protected]> wrote:
>> Just wanted to pop in and say that I really like this conversation.
>>
>> Question, how fast could sympy core be if we were to pull out some of the
>> assumptions logic until a final step at the end.  What stops core from
>> reaching polys speed?
>>
>> On Apr 23, 2014 9:08 AM, "Ondřej Čertík" <[email protected]> wrote:
>>>
>>> On Wed, Apr 23, 2014 at 10:02 AM, Aaron Meurer <[email protected]> wrote:
>>> > Just use x = Poly(x**x). That's the dense representation. No idea how
>>> > to do this with ring(). Mateusz will have to show us. But the
>>> > polynomials you're creating in this benchmark are univariate and dense
>>> > anyway.
>>>
>>> We should also be plotting the dependence on N, as different data
>>> structures have different behaviors,
>>> for example hash table (unordered_map, or dict in Python) vs.
>>> red-black trees (std::map).
>>>
>>> Ultimately though, and that's the main issue, instead of concentrating
>>> on these artificial benchmarks, I am concentrating
>>> on real world applications, thus PyDy. If PyDy could be done with
>>> sympy.polys, then that would be good, but
>>> I am afraid it can't, as it has stuff like sin, cos, unevaluated
>>> functions like f1(t), and so on.
>>>
>>> Ondrej
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "sympy" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/sympy.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sympy/CADDwiVBUr%3DTGqE8OdfUQSnPqP-6Udb_98iuP2iXpCYyNwMMhKw%40mail.gmail.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/sympy.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sympy/CAJ8oX-Fj%3DVwotBZKNFb2shVD8Nn3-T-ZFumXjrzR25hWjgDD_w%40mail.gmail.com.
>>
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/CAKgW%3D6JBYbtJ5JQbeUe9mW5F%3DhrjUaoY73WrP-f%3Dq3bjZunKwQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CADDwiVAPLgMbVT4dRbMLqhmKboaC4c-y72OE0k9mA_AXQBVxiw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to