Something that I'm not sure about with representing functions as multivalued is, how do you represent arbitrary Riemann surfaces.
Another question is computational. How do you compute the surfaces in general (say even for a limited class of expressions, like algebraic functions), and how do you make cuts in a consistent manner? The only thing I can think of is to write everything in terms of exp() and log() and parameterized integers, e.g., sqrt(x) should really be exp((log(x) + 2*pi*I*n)/2) for integer. This basically boils down to sqrt(x) = +/- sqrt(x). Each rational power has to have a distinct parameterized integer. This should lead to correct and general results if you do it correctly, but I don't really see how to compute useful things from this without getting huge expressions with tons of parameterized integers. Aaron Meurer On Sat, Dec 6, 2014 at 11:37 AM, Ondřej Čertík <ondrej.cer...@gmail.com> wrote: > Hi Richard, > > On Fri, Dec 5, 2014 at 4:48 PM, Richard Fateman <fate...@gmail.com> wrote: >> You are heading into erroneous waters. >> It doesn't matter that 3>0. sqrt(9) has two values, +3 and -3. >> Just because some other systems make this mistake does not mean >> sympy should do this. >> >> If you want to say something about the choice of branch for sqrt(x^2), >> you have to say something about sqrt(x^2), not x. >> >> It may be sensible if you mean to restrict the square root function. >> But not that way. >> Good luck > > Do you know any computer algebra system that treats functions as > multivalued, i.e. sqrt(9) returns both +3 and -3? > I would like to play with it. Incidentally, I've spent lot of time > lately thinking about how complex functions can be implemented in a > CAS, see e.g. these threads: > > https://github.com/sympy/sympy/issues/8502 > https://groups.google.com/forum/#!topic/sage-devel/6j-LcC6tpkE/discussion > > Essentially there are two consistent ways --- either treat functions > as multivalued or as singlevalued (on a principal branch). > > Ondrej > > -- > 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 http://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CADDwiVDVLVn1HjJTipQzMh3a5Ud2RyQcQMczg5LE_X4X-1S3VQ%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 sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. 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%3D6%2BQhcDnvaz2mFtwjK%3D6BvO%3DJZtYC3QWq%3DK2xJHRiX0nTA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.