sage: var('q') q sage: (q+q^(-1))^(1/2) sqrt(q + 1/q) (By the way, I'm not sure I would call using a fraction field "naive".)
On Sunday, April 26, 2020 at 9:01:35 AM UTC-7, Jin Guu wrote: > > I am writing a calculator for various 'q' quantities, and often find that > I need to manipulate symbols more flexibly. For example, I have to deal > with the expression > > ( q + q^(-1) ) ^ (1/2) ------------------ (*) > > But currently I could not find any way to achieve this. A naive attempt > gives a failure: > > sage: q = Frac(ZZ['q']).gen() > sage: q ^ (1/2) > ---> ValueError: not a 2nd power > sage: power(q, 1/2) > NotImplementedError: non-integral exponents not supported > > Leave alone the expression I need! Indeed, one might have to define a > larger parent for the expression (*) to live in. So this might require > implementing a new algebraic structure. If that's the case, I'm willing to > write it. The problem is that implementing a new structure seems a bit > complicated to me.. I might take some time, and need some guides. Thank you > so much! > > PS. Weirdly enough, exp(sin(q)) is already implemented as in the class > <class 'sage.symbolic.expression.Expression'>. Perhaps what I need might > not be too hard to implement? > > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/ade75123-de8c-4c93-a81b-ba244057c72a%40googlegroups.com.