Hi Alasdair! On 24 Okt., 20:01, Alasdair <amc...@gmail.com> wrote: > Actually, just worked it out: > > matrix(ZZ,2,2,map(int,M.list()))
Do you want to convert your matrix into a matrix of Integers (= elements of Sage's ZZ) or into a matrix of Python integers (type int)? Since Python integers don't form a parent structure, there are no Python-int matrices in Sage, if I am not mistaken. This is why you get the error TypeError: base_ring (=<type 'int'>) must be a ring when you try map_threaded(int,M) So, from now on, I assume that you want a transformation into Integer (not int) matrices. > So I need to convert the matrix to a list, apply map to that list, and > then convert the result back to a matrix. But why can't I do this > with a single map command? Your original base ring is G.<x>=GF(2^8). There is no homomorphism from GF(2^8) to ZZ (at least if you want that 1 is mapped to 1...). So, why *should* there be a single command to transform a matrix over GF(2^8) into the "corresponding" matrix over ZZ? The point is, there is no "corresponding" matrix in that case! Note that a transformation is easy, as long as it mathematically makes sense: sage: MZ = random_matrix(ZZ,6,6) sage: MQ1 = map_threaded(QQ,MZ) sage: MQ2 = MZ*QQ(1) sage: MZ = random_matrix(ZZ,6,6) sage: MGF3a = map_threaded(GF(3),MZ) sage: MGF3b = MZ*GF(3)(1) sage: MGF3a == MGF3b True sage: MGF3a.parent() == MGF3b.parent() True If I am not mistaken, the problems you encountered are all about coercion, which is described at http://www.sagemath.org/doc/reference/coercion.html One more remark. It is still not clear to me what exactly you mean by a transformation from G to ZZ. But perhaps you know the log_to_int method of G? This expresses an element of G (which is a polynomial in x) into a Python int. So, no surprize about this error: sage: map_threaded(G.log_to_int,M) Traceback ... TypeError: base_ring (=<type 'int'>) must be a ring However, going one step further, you can proceed to "proper" Sage integers. For example: sage: f = lambda x: ZZ(G.log_to_int(x)) sage: map_threaded(f,M) [ 7 138] [212 169] Best regards, Simon --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---