Thanks for your help but I think I need more. I've written some code for a
somewhat general case of n orthogonal generators and an arbitrary diagonal
metric and I think I've generated the correct 16x16 matrices for my n=4
case. When I finish running the .sage file and return to sage I execute
F = PRGA.monoid()
MyStr=str(PRGA.gens())
MyStr=MyStr[1:len(MyStr)-1]
exec MyStr+' = F.gens()'
ST.<g0,g1,g2,g3>=FreeAlgebraQuotient(PRGA,MyList6,mats)
ST
Free algebra quotient on 4 generators ('g0', 'g1', 'g2', 'g3') and
dimension 16 over Rational Field
but when I do
g3*g3 # or ST.gen(3)*ST.gen(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_9.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("ZzMqZzM="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File "/tmp/tmpnhv5ev/___code___.py", line 2, in <module>
exec compile(u'g3*g3
File "", line 1, in <module>
File "element.pyx", line 1710, in
sage.structure.element.RingElement.__mul__ (sage/structure/element.c:15287)
File "element.pyx", line 1717, in
sage.structure.element.RingElement._mul_ (sage/structure/element.c:15414)
File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient_element.py",
line 255, in _mul_
if c != 0: z.__vector += monomial_product(A,c*u,B[i])
File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient_element.py",
line 245, in monomial_product
for (j,k) in m._element_list:
File "element.pyx", line 344, in
sage.structure.element.Element.__getattr__ (sage/structure/element.c:4022)
File "misc.pyx", line 251, in
sage.structure.misc.getattr_from_other_class (sage/structure/misc.c:1687)
AttributeError: 'FreeAlgebra_generic_with_category.element_class' object
has no attribute '_element_list'
Further when I try to automate with the generated string MyStr='g0, g1, g2,
g3' and within the .sage file
exec 'ST.<'+MyStr+'> = FreeAlgebraQuotient(PRGA,MyList6,mats)'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_13.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("ZXhlYyAnU1QuPCcrTXlTdHIrJz4gPSBGcmVlQWxnZWJyYVF1b3RpZW50KFBSR0EsTXlMaXN0NixtYXRzKSc="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File "/tmp/tmpLPtPyL/___code___.py", line 2, in <module>
exec compile(u"exec 'ST.<'+MyStr+'> =
FreeAlgebraQuotient(PRGA,MyList6,mats)'" + '\n', '', 'single')
File "", line 1, in <module>
File "<string>", line 1
ST.<g0, g1, g2, g3> = FreeAlgebraQuotient(PRGA,MyList6,mats)
^
SyntaxError: invalid syntax
If I try:
ST=FreeAlgebraQuotient(PRGA,MyList6,mats, names='g0, g1, g2, g3') # or
anything else I try in names
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_7.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("U1Q9RnJlZUFsZ2VicmFRdW90aWVudChQUkdBLE15TGlzdDYsbWF0cywgbmFtZXM9J2cwLCBnMSwgZzIsIGczJykKI2V4ZWMgJ1NULjwnK015U3RyKyc+ID0gRnJlZUFsZ2VicmFRdW90aWVudChQUkdBLE15TGlzdDYsbWF0cyknCmV4ZWMgTXlTdHIrJyA9IFNULmdlbnMoKSc="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File "/tmp/tmprvEfNn/___code___.py", line 2, in <module>
ST=FreeAlgebraQuotient(PRGA,MyList6,mats, names='g0, g1, g2, g3')
File "classcall_metaclass.pyx", line 330, in
sage.misc.classcall_metaclass.ClasscallMetaclass.__call__
(sage/misc/classcall_metaclass.c:1282)
File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient.py",
line 74, in __classcall__
tuple(new_mats), tuple(names))
File "cachefunc.pyx", line 1077, in
sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:6486)
File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/structure/unique_representation.py",
line 1021, in __classcall__
instance = typecall(cls, *args, **options)
File "classcall_metaclass.pyx", line 518, in
sage.misc.classcall_metaclass.typecall
(sage/misc/classcall_metaclass.c:1665)
File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient.py",
line 143, in __init__
Algebra.__init__(self, R, names, normalize=True)
File "ring.pyx", line 2135, in sage.rings.ring.Algebra.__init__
(sage/rings/ring.c:13719)
File "ring.pyx", line 176, in sage.rings.ring.Ring.__init__
(sage/rings/ring.c:2370)
File "parent.pyx", line 357, in sage.structure.parent.Parent.__init__
(sage/structure/parent.c:4393)
File "parent_gens.pyx", line 332, in
sage.structure.parent_gens.ParentWithGens._assign_names
(sage/structure/parent_gens.c:3682)
File "parent_gens.pyx", line 207, in
sage.structure.parent_gens.normalize_names
(sage/structure/parent_gens.c:2762)
File "parent_gens.pyx", line 148, in
sage.structure.parent_gens._certify_names
(sage/structure/parent_gens.c:2325)
ValueError: first letter of variable name must be a letter
On Sat, Jul 26, 2014 at 10:17 PM, Nils Bruin <[email protected]> wrote:
> On Saturday, July 26, 2014 12:21:38 PM UTC-7, Stephen Kauffman wrote:
>>
>> TypeError: unsupported operand parent(s) for '*': 'Vector space of
>> dimension 16 over Rational Field' and 'Full MatrixSpace of 8 by 8 dense
>> matrices over Integer
>> Ring'
>>
>> The error that you're getting is because there's a dimension mismatch in
> the data you specify. "mons" is supposed to be a QQ-vector space basis of
> your algebra (16 dimensional in your case) and mats is supposed to give the
> linear transformations that multiplying by, resp., g0,g1,g2,g3 give. Thus,
> G0 is supposed to have as rows the elements
>
> [m*g0 for m in mons]
>
> written out as coordinates wrt. mons.
>
> In particular, "mats" should consist of 16x16 matrices. The constructor
> should have done a sanity check and given you an error earlier.
>
> In particular, this routine does NOT represent an algebra by a free ring
> modulo some ideal, but basically via structure constants (it saves you some
> work because you only have to specify the endomorphisms for the algebra
> generators of the free algebra, not for all the elements of mons).
>
> You can probably work out what the 4 16x16 matrices are quite easily.
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.
>
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.