Thanks for the detailed reply, kcrisman. Yes, that first bit of code is now working for me, too. I'm not sure what I was doing wrong before. Given the temperamental nature of the current implementation of Piecewise(), I'm inclined to avoid it altogether.
That prototype you pointed to, I see that the patch is 7 months old. I'm curious, is it in active development? I sure would like to see a solid piecewise implementation in an upcoming Sage release. Thanks again. --Robert On Tuesday, 28 January 2014 22:14:39 UTC-5, kcrisman wrote: > > > > On Tuesday, January 28, 2014 8:29:16 PM UTC-5, Robert Jacobson wrote: >> >> I am having difficulty using Piecewise(). For example, I can define the >> following: >> t = Piecewise([[(-oo, -1), 0*x^0], [(-1, 0), 1+x], [(0, 1), 1-x], [(1, oo >> ), 0*x^0]], x) >> but then evaluating t(-100) fails. >> > > Hmm, this works for me. What version of Sage are you using? > > > >> I can modify the above to have a finite domain: >> t = Piecewise([[(-10, -1), 0*x^0], [(-1, 0), 1+x], [(0, 1), 1-x], [(1, 10 >> ), 0*x^0]], x) >> This seems to evaluate correctly within its domain, but I can't plot it, >> say, with this (or variations thereof): >> plot(t(x), x, -4, 4) >> >> > Piecewise is an amalgam of some very old code/methods and some other > stuff. Consequently, one has to read its documentation fairly carefully to > see what might need to be done. See http://trac.sagemath.org/ticket/11225for > just some of the quirks. > > In this case, you need to plot > > sage: plot(t).show(xmin=-4,xmax=4) > > because rather than plotting t, it calls t.plot and that changes things > quite a bit. Also > > sage: t(x) > ValueError: ... > > since Piecewise objects are still not symbolic. > > I'm sorry this is still the case. See > http://trac.sagemath.org/ticket/14801 for a prototype for a new way to do > all this. Luckily, you should be able to do what you want, but not with a > unified syntax, it is true. > > - kcrisman > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/groups/opt_out.