#4539: plural wrapper
---------------------------+------------------------------------------------
   Reporter:  burcin       |       Owner:  OleksandrMotsak, AlexanderDreyer
       Type:  enhancement  |      Status:  needs_review                    
   Priority:  major        |   Milestone:  sage-4.6                        
  Component:  algebra      |    Keywords:                                  
     Author:               |    Upstream:  N/A                             
   Reviewer:               |      Merged:                                  
Work_issues:               |  
---------------------------+------------------------------------------------

Comment(by nthiery):

 Is it possible at this stage to define non commutative polynomial rings
 over QQ['q'].fraction_field()?
 I got an error with what I tried:

 {{{
 sage: K = QQ['q'].fraction_field()
 q = K.gen()
 F.<x,y,ex,ey> = FreeAlgebra(K,4)
 W =  F.g_algebra({ex*x: x*(1+ex),ey*y:y*(1+ey)})

 sage: ------------------------------------------------------------
 Traceback (most recent call last):
   File "<ipython console>", line 1, in <module>
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/algebras/free_algebra.py", line 547, in g_algebra
     return NCPolynomialRing_plural(base_ring, n, ",".join([str(g) for g in
 self.gens()]), c=cmat, d=dmat, order=order, check=check)
   File "plural.pyx", line 223, in
 sage.rings.polynomial.plural.NCPolynomialRing_plural.__init__
 (sage/rings/polynomial/plural.cpp:3772)
   File "matrix0.pyx", line 1520, in sage.matrix.matrix0.Matrix.change_ring
 (sage/matrix/matrix0.c:7670)
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/matrix/matrix_space.py", line 405, in __call__
     return self.matrix(entries, copy=copy, coerce=coerce, rows=rows)
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/matrix/matrix_space.py", line 1136, in matrix
     return self.__matrix_class(self, entries=x, copy=copy, coerce=coerce)
   File "matrix_generic_dense.pyx", line 93, in
 sage.matrix.matrix_generic_dense.Matrix_generic_dense.__init__
 (sage/matrix/matrix_generic_dense.c:2321)
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/rings/polynomial/multi_polynomial_ring.py", line 468, in
 __call__
     c = self.base_ring()(x)
   File "parent.pyx", line 859, in sage.structure.parent.Parent.__call__
 (sage/structure/parent.c:6407)
   File "coerce_maps.pyx", line 82, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3108)
   File "coerce_maps.pyx", line 77, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3010)
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/rings/fraction_field.py", line 467, in _element_constructor_
     coerce=coerce, reduce = self.is_exact())
   File "fraction_field_element.pyx", line 120, in
 sage.rings.fraction_field_element.FractionFieldElement.__init__
 (sage/rings/fraction_field_element.c:1934)
   File "parent.pyx", line 859, in sage.structure.parent.Parent.__call__
 (sage/structure/parent.c:6407)
   File "coerce_maps.pyx", line 82, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3108)
   File "coerce_maps.pyx", line 77, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3010)
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/rings/polynomial/polynomial_ring.py", line 313, in
 _element_constructor_
     return C(self, x, check, is_gen, construct=construct, **kwds)
   File "/opt/sage-4.5.2/local/lib/python2.6/site-
 packages/sage/rings/polynomial/polynomial_element_generic.py", line 656,
 in __init__
     x = [QQ(z) for z in x]
   File "parent.pyx", line 859, in sage.structure.parent.Parent.__call__
 (sage/structure/parent.c:6407)
   File "coerce_maps.pyx", line 82, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3108)
   File "coerce_maps.pyx", line 77, in
 sage.structure.coerce_maps.DefaultConvertMap_unique._call_
 (sage/structure/coerce_maps.c:3010)
   File "rational.pyx", line 367, in sage.rings.rational.Rational.__init__
 (sage/rings/rational.c:5781)
   File "rational.pyx", line 521, in
 sage.rings.rational.Rational.__set_value (sage/rings/rational.c:7052)
 TypeError: Unable to coerce 0 (<class
 'sage.algebras.free_algebra_element.FreeAlgebraElement'>) to Rational
 }}}

 Thanks!

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4539#comment:31>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to