I opened issue #17165 On Monday, July 8, 2019 at 9:48:57 AM UTC-5, Tomasz Pytel wrote: > > At this point let me confess my ignorance of the internal mechanics of > SymPy, I am very new to it and so am not sure what path the evaluation of a > Piecewise follows. My assumption was that there is at some point a member > function of Piecewise which gets control to recursively evaluate its > subexpressions when a doit is called. It is this function which would > return the original parent Piecewise expression if a recursion is detected, > else the requested evaluation. But if this is not how it works then I leave > the matter to the experts and simply note the presence of the bug :) > > On Monday, July 8, 2019 at 11:35:04 AM UTC-3, Gagandeep Singh (B17CS021) > wrote: >> >> So, basically you want `doit` not to evaluate certain expressions while >> traversing the recursion. Isn't it? May be that isn't possible currently, >> because for that, `evaluate` should be made a state of sympy object so >> that, doit() can detect to leave it unevaluated but that would impact the >> idea of doit(). You will have to set the evaluate attribute everytime you >> want to call doit() to let it know whether that expression should be >> touched or not. >> Let's see if there is some better approach. >> >> On Monday, July 8, 2019 at 7:35:53 PM UTC+5:30, Tomasz Pytel wrote: >>> >>> In this case that would not be necessary as a recursive evaluation is >>> literally a copy of the original expression and so could be checked for >>> upon execution of the doit at which point the original expression should be >>> returned. >>> >>> On Monday, July 8, 2019 at 11:03:15 AM UTC-3, Gagandeep Singh (B17CS021) >>> wrote: >>>> >>>> I personally believe that all doits should be called with one outer >>>> doit. May be this can be efficiently implemented with a stack. Let's see >>>> what others have to say. >>> >>>
-- 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 sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/87c07370-6e5b-418a-b1c4-9cc74d563bca%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.