On Sunday, July 3, 2016 at 1:21:18 AM UTC+1, saad khalid wrote: > > Well, here's what i tried and it doesn't seem to work after I build sage > again. I added this code to the to_sage() function, > elif cls_str == "Divide": > self_Div = self > div_Numerator = macaulay2('numerator self_Div') > div_Denominator = macaulay2('denominator self_Div') > div_Numerator = div_Numerator.sage_polystring() > div_Denominator = div_Denominator.sage_polystring() > sage_Div = div_Numerator/div_Denominator > return sage_Div > > > self_Div is not known to M2 in any way, yet you try calling in M2 'numerator self_Div'. You need a way to get the counterpart of 'self' in M2 somehow.
I added this after the main else statement. The code looks like rubbish to > me but I didn't know what else to do, so i thought I'd show something and > ask for improvements, if that's okay... When running the following code now > in Sage, here is my error message: > > sage: macaulay2.eval(""" > ....: K = toField(QQ[zet]/(zet^8 - zet^7 +zet^5 - zet^4 +zet^3 -zet + 1)) > ....: A=matrix{{zet^1,0},{0,zet^14}} > ....: needsPackage "InvariantRing" > ....: G=generateGroup({A},K) > ....: P = molienSeries G > ....: """) > K > > PolynomialRing > > | zet 0 | > | 0 -zet^7+zet^6-zet^4+zet^3-zet^2+1 | > > 2 2 > Matrix K <--- K > > InvariantRing > > Package > > {| 1 0 |, | -zet^7-zet^2 0 |, | zet^7 0 |, > | zet^7-zet^6-zet^3+zet^2-1 0 |, | -zet^7+zet^6-zet^4+zet^3-zet^2+1 0 > |, | zet 0 |, | -zet^6-zet 0 |, | zet > ^5 0 |, | zet^2 0 |, | zet^6 0 > |, | zet^7-zet^5+zet^4-zet^3+zet-1 0 |, | zet^4 0 > |, | -zet^7+zet^5-zet^4-zet+1 0 |, | zet^3 0 |, | -zet^5-1 > 0 |} > | 0 1 | | 0 zet^3 | | 0 zet^7-zet^5+zet^4-zet^3+zet-1 | > | 0 zet^6 | | 0 > zet | | 0 -zet^7+zet^6-zet^4+zet^3-zet^2+1 | | 0 zet^4 | | > 0 -zet^5-1 | | 0 -zet^7+zet^5-zet^4-zet+1 | | 0 zet^7-zet^6- > zet^3+zet^2-1 | | 0 zet^7 | | 0 -zet^6-zet > | | 0 zet^2 | | 0 -zet^7-zet^2 | | 0 > zet^5 | > > List > > 2 3 4 5 6 7 8 9 10 11 12 13 > 14 > 1 - T + T - T + T - T + T - T + T - T + T - T + T - T + T > --------------------------------------------------------------------------- > 2 3 4 5 7 8 2 2 3 4 > (1 - T) (1 - T + T - T + T - T + T )(1 + T + T )(1 + T + T + T + T > ) > > Expression of class Divide > > sage: G = macaulay2('P').to_sage() > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last > ) > /home/saad/sage/local/lib/python2.7/site-packages/sage/all_cmdline.pyc in > <module>() > ----> 1 G = macaulay2('P').to_sage() > > /home/saad/sage/local/lib/python2.7/site-packages/sage/interfaces/ > macaulay2.pyc in to_sage(self) > 1151 elif cls_str == "Divide": > 1152 self_Div = self > -> 1153 div_Numerator = macaulay2('numerator self_Div') > 1154 div_Denominator = macaulay2('denominator self_Div' > ) > 1155 div_Numerator = div_Numerator.sage_polystring() > > /home/saad/sage/local/lib/python2.7/site-packages/sage/interfaces/ > interface.pyc in __call__(self, x, name) > 241 > 242 if isinstance(x, six.string_types): > --> 243 return cls(self, x, name=name) > 244 try: > 245 return self._coerce_from_special_method(x) > > /home/saad/sage/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc > in __init__(self, parent, value, is_name, name) > 1379 except (RuntimeError, ValueError) as x: > 1380 self._session_number = -1 > -> 1381 raise_(TypeError, x, sys.exc_info()[2]) > 1382 except BaseException: > 1383 self._session_number = -1 > > /home/saad/sage/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc > in __init__(self, parent, value, is_name, name) > 1374 else: > 1375 try: > -> 1376 self._name = parent._create(value, name=name) > 1377 # Convert ValueError and RuntimeError to TypeError for > 1378 # coercion to work properly. > > /home/saad/sage/local/lib/python2.7/site-packages/sage/interfaces/ > interface.pyc in _create(self, value, name) > 431 def _create(self, value, name=None): > 432 name = self._next_var_name() if name is None else name > --> 433 self.set(name, value) > 434 return name > 435 > > /home/saad/sage/local/lib/python2.7/site-packages/sage/interfaces/ > macaulay2.pyc in set(self, var, value) > 318 ans = Expect.eval(self, cmd) > 319 if ans.find("stdio:") != -1: > --> 320 raise RuntimeError("Error evaluating Macaulay2 > code.\nIN:%s\nOUT:%s"%(cmd, ans)) > 321 > 322 def _object_class(self): > > TypeError: Error evaluating Macaulay2 code. > IN:sage1=numerator self_Div; > OUT:stdio:13:7:(3): error: no method found for applying numerator to: > argument : self (of class IndexedVariable) > Div > > It's certainly a different error message from what I was getting before > when I tried this, but i don't know what it means. > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.