On Sunday, July 3, 2016 at 11:05:06 AM UTC+1, Dima Pasechnik wrote:
>
>
>
> 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.
>

Instead of

               self_Div = self
                div_Numerator = macaulay2('numerator self_Div')
                div_Denominator = macaulay2('denominator self_Div')
 
use

                div_Numerator = self.numerator()
                div_Denominator = self.denominator()

and it will be almost it (div_Denominator will be Product, and will need 
extra processing
because of this)
 

>
> 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.

Reply via email to