Well, if Domain.sum(...) is significantly faster than sum(elements of
Domain), then its pretty reasonable that it should be implemented. sum
is almost as important as +, -, * and /. sum is used in many
algorithms. Matrix algorithms particularly use sum for dot products.

If you see my code for the cholesky and LDL decomposition in [1], I
have used the Add(*(...)) construct freely, as Matrix currently
converts its elements to Sympy objects. So Add works as a good
summation.

But if I want to abstractify this, and make Matrix work for XYZ dtype,
then the sum has to be an abstract one. Python's builtin sum suffices
as an abstract sum, but is slow. If I have the 'domain' variable
storing the domain type in the Matrix object, I can use
domain.sum(...), and the appropriate sum would be called by the
algorithm, Add for Sympy, fsum for mpmath and so on.

[1] https://github.com/sympy/sympy/pull/184/files (lines 534, 536,
573, 575, 599, etc.)


On Jun 2, 9:55 am, Mateusz Paprocki <[email protected]> wrote:
> Hi,
>
> On 2 June 2011 06:37, SherjilOzair <[email protected]> wrote:
>
> > This hasn't been implemented yet. Should I go ahead and add it ?
> > sums for QQ, etc also needed.
>
> First it would be good to see where and why this is needed at all. Then we
> can think about implementation (which is actually trivial).
>
>
>
>
>
>
>
>
>
>
>
> > See [1] for the types I need.
>
> > [1]
> >http://groups.google.com/group/sympy/browse_thread/thread/c793f703085...
>
> > On May 31, 9:43 pm, Vinzent Steinberg
> > <[email protected]> wrote:
> > > On May 30, 9:52 pm, Mateusz Paprocki <[email protected]> wrote:
>
> > > > That could work:
>
> > > > ZZ.sum([1, 2, 3]) -> sum([1, 2, 3])
> > > > RR.sum([1.0, 2.0]) -> mpmath.fsum([1.0, 2.0])
> > > > EX.sum([x, y, z]) -> Add(*[x, y, z])
>
> > > > etc.
>
> > > This is exactly what I have been thinking of.
>
> > > Vinzent
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "sympy" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/sympy?hl=en.
>
> Mateusz

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to