Hi Matt,
awesome, I'll take a look and see how far I get. Thanks for your help! Chris On Monday, March 17, 2014 8:41:21 PM UTC-7, Matthew wrote: > > I added a bunch more refine handlers. > > Chris, if you wanted to play around with this branch and see if it does > what you need that'd be helpful. Even better, maybe after looking at the > diff in the PR you could add some logic yourself? The pattern of how to do > this should be pretty easy to pick out. > > > On Mon, Mar 17, 2014 at 7:37 PM, Matthew Rocklin > <[email protected]<javascript:> > > wrote: > >> Well, on the simplify/refine side I think we only need to call ask. At >> some stage this might be wired back into `is_foo` >> >> I implemented this particular refinement in >> https://github.com/sympy/sympy/pull/7296 just to see how it felt. >> >> BTW, refine could totally use a better dispatching system. If only, >> ahem, someone had built such a thing.... >> >> >> On Mon, Mar 17, 2014 at 6:16 PM, Aaron Meurer <[email protected]<javascript:> >> > wrote: >> >>> I'm not clear what the plan should be regarding auto-evaluation and >>> refine and the new assumptions. I feel that it hasn't been heavily >>> thought out yet. We have to somehow balance the pain of having to call >>> all sorts of with assuming() and refine() just to get things to >>> simplify and the performance issues if they do it automatically (and >>> also the issues of potentially not wanting it to always happen >>> automatically). >>> >>> Aaron Meurer >>> >>> On Mon, Mar 17, 2014 at 7:12 PM, Matthew Rocklin >>> <[email protected]<javascript:>> >>> wrote: >>> > Hi Chris, >>> > >>> > Thanks for the kind words. >>> > >>> > At the moment Matrix Expressions in the main branch do not use >>> assumptions >>> > while simplifying. IIRC they actually used to but I removed it so >>> that I >>> > could approach this more cleanly. One lofty reason for this was so >>> that >>> > this could be used as a model for the rest of sympy when it eventually >>> jumps >>> > over to the new assumptions system. >>> > >>> > If other devs see this e-mail - what are your thoughts on `refine`, the >>> > simplify API suggested (but rarely used) by new assumptions? Should we >>> > start using this? Should we roll it into simplify? In general at what >>> > point should we appeal to new assumptions? At expression creation >>> time? At >>> > simplify time? At another simplify-like api time (e.g. refine time)? >>> I >>> > decided not to call upon new assumptions while creating expressions >>> (e.g. >>> > X.T creates a Transpose(X) even if X is symmetric). I think that my >>> > reasoning at the time was performance. >>> > >>> > Chris, in general what you're asking for is easy for us to add. I >>> would >>> > like to make sure that we add it correctly. >>> > >>> > Also, it's been some time since this was all in my head. I may have >>> said >>> > some untrue things. >>> > >>> > Best, >>> > -Matthew >>> > >>> > >>> > >>> > >>> > On Mon, Mar 17, 2014 at 4:57 PM, Chris <[email protected]<javascript:>> >>> wrote: >>> >> >>> >> Hi all, >>> >> >>> >> >>> >> I stumbled upon the discussion on matrix assumptions and the bit of >>> >> history behind this sympy module: >>> >> >>> >> >>> http://scicomp.stackexchange.com/questions/74/symbolic-software-packages-for-matrix-expressions >>> >> >>> >> First off all, thank you Matt, this is incredibly cool stuff! >>> >> >>> >> Now, I'm trying to do some matrix algebra while encoding knowledge >>> about >>> >> the matrices involved. For instance, say my matrix U is unitary, i.e. >>> U * >>> >> U.T = I. I've looked around in the documentation and source code, but >>> >> couldn't figure out, if the new assumption system can be used to >>> simplify >>> >> matrix expressions. >>> >> >>> >> I was trying to exploit this using sympy as follows: >>> >> >>> >> from sympy import Q, symbols, MatrixSymbol, ask, simplify >>> >> from sympy.assumptions.assume import global_assumptions >>> >> >>> >> n = symbols('n', integer=True) >>> >> U = MatrixSymbol('U', n, n) >>> >> >>> >> global_assumptions.add(Q.unitary(U)) >>> >> >>> >> UU = U * U.T >>> >> >>> >> print UU >>> >> >>> >> simpleUU = simplify(UU) >>> >> print simpleUU >>> >> >>> >> >>> >> I was hoping that the second print would output the Identity, but >>> somehow >>> >> this didn't work. Any suggestions, pointers, hints? >>> >> >>> >> >>> >> Cheers, >>> >> Chris >>> >> >>> >> -- >>> >> 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] <javascript:>. >>> >> To post to this group, send email to [email protected]<javascript:> >>> . >>> >> 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/31aaea36-675d-40b0-8d77-aec8828f6c31%40googlegroups.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] <javascript:>. >>> > To post to this group, send email to [email protected]<javascript:> >>> . >>> > 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-F0tjgppY2Am3zxy43gWKGfESjYDkVRwd%2BFfBgCgXw_2Q%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] <javascript:>. >>> To post to this group, send email to [email protected]<javascript:> >>> . >>> 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%3D6Lxudmr8qrXnqrmKyL2a80GRaFLjAVoThqx5pqc9k%2BD5Q%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/b0bce5fc-cad6-4b49-8fa4-4d89532ab42b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
