| I have a function with one parameter. How can I check whether this parameter is a polynomial? (Univariate or multvariate, does'nt count which is the base ring) I want use this information in a multilevel if construction |
| Will something like this work?
Thank you, but it is a partial solution, becaus I do'nt know, the parameter has varibales() property or not. For example :
a=2
is_polynomial(a) generates an AttributeError.
I believed, the .parent() will help me, but there are rings without this property.
czsan (Nov 15 '10)
Ah, so you don't even know that it's an Expression, then. Maybe casting it would suffice:
is_polynomial = lambda s: all(SR(s).is_polynomial(v) for v in SR(s).variables())
but I'm not clear on your use cases (and how much information you want to preserve).
DSM (Nov 15 '10)
Yes, I don't know, the parameter is a number or a polynom. After some preparation the algoritm is same (for example, gcd, cra). but the preparation and some little aid-functions depend on the parent ring.
czsan (Nov 15 '10)
So does casting your parameter explicitly into an Expression by wrapping it in SR suffice for your case, or do we need to work harder?
DSM (Nov 15 '10)
I think it's hard. What do you mean on 'SR suffice'?
czsan (Nov 18 '10) |
Asked: Nov 14 '10
Seen: 89 times
Last updated: Nov 14 '10
powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.