I've never dealt with SymPy functions so I'm not sure how to answer the
Call/Apply object. If you explain it more I'll try to say something
intelligent-sounding.

Regarding "is this good enough".
1. You'll also need to specify the shape of the resultant matrix
2. I wouldn't define a MatrixFunction is a MatrixExpr.

Are MatrixExprs going to be sufficiently general for your usecase? You and
I tend to think at different levels of mathematical abstraction.

There are a couple of recent pull requests that might serve as models for
what has been done before
Adjoint - https://github.com/sympy/sympy/pull/1609
Hadamard - https://github.com/sympy/sympy/pull/1608


On Thu, Nov 1, 2012 at 12:58 PM, Stefan Krastanov <
[email protected]> wrote:

> Or is it better to have a Call() or Apply() object?
>
> On 1 November 2012 18:55, Stefan Krastanov <[email protected]>
> wrote:
> > for instance, is this good enough
> >
> > class MatrixFunction(MatSymbol):
> >     def call(self, arg):
> >         return MatrixEvaluatedFunction(self, arg)
> >
> > class MatrixEvaluatedFunction(MatExpr):
> >     like symbol but with an additional argument
> >
> > On 1 November 2012 18:50, Stefan Krastanov <[email protected]>
> wrote:
> >> For me it will only be a tree node. I would like to have rules like:
> >>
> >> Trace( product of three DiracMatrixFunction ) -> 0
> >> DiracMatrixFunction(x)*DiracMatrixFunction(y) -> Kronecker(x,y)*Identity
> >>
> >> On 1 November 2012 18:47, Matthew Rocklin <[email protected]> wrote:
> >>> We do not have a MatrixFunction in MatrixExprs but it would be
> relatively
> >>> simple to make one. What sort of logic would you want it to support?
> >>>
> >>>
> >>> On Thu, Nov 1, 2012 at 12:42 PM, Stefan Krastanov
> >>> <[email protected]> wrote:
> >>>>
> >>>> Is there a way to represent something like M(x) where x is a Symbol
> >>>> and M(x) is something matrix-like.
> >>>>
> >>>> Maybe a MatrixSymbol with a second argument (i.e. M(x) is
> >>>> MatrixSymbol('M', 'x'))?
> >>>>
> >>>> Or something mimicking the Function classes in the core. But I hate
> >>>> all the magic with the metaclasses. It seems excessively complicated.
> >>>>
> >>>> I need this in order to work out some algorithms for simplification of
> >>>> Dirac algebra (gamma matrices) expressions. I was thinking about using
> >>>> the new rewrite rules module.
> >>>>
> >>>> --
> >>>> 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.
> >>>>
> >>>
> >>> --
> >>> 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.
>
> --
> 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.
>
>

-- 
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