On Jul 12, 10:33 pm, Matthew Rocklin <mrock...@gmail.com> wrote:
> I strongly support your separation of abstract external matrix interfaces
> from internal matrix representations (Dense, LIL, DOK). I believe that this
> makes the code much more extensible. For example this allows us to easily
> create an "Linear Operator" implementation with a purely functional internal
> representation. Block matrix internals would be easy. There will be lots of
> implementations in the future; each will be clever in some way. It's
> important that this cleverness be allowed to shine with minimal change to
> the core matrix library.

Yes, the interface should be as independent as possible from the
implementation.

> Along these lines I think it's important that different implementations be
> able to "take over" operations if they know how. For example we might create
> a Diagonal Matrix representation which knows how to invert itself easily.
> Perhaps matrices should have an _eval_inverse() method? Of course, maybe
> this has been your plan all along.
>
> Also, with this separation of outward facing and inward facing matrices
> maybe it will become easier to switch between mutable-fast and immutable but
> Basic matrices.
>
> Completely unrelated - Should we consider a Solve operation rather than
> always computing explicit inverses? If we wanted to get fancy we could
> create an operator for this like Matlab does
> Ax = b
> x = A \ b    %Matlab
> x = A // b   # SymPy?

I think it is better to have a more verbose syntax here, like the
current A.solve(b).

Vinzent

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

Reply via email to