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.
