| 1 | initial version |
The following works:
def elementwise( M, N ):
print "M parent is: %s" % M.parent()
print "N parent is: %s" % N.parent()
assert( M.parent() == N.parent() )
nc, nr = M.ncols(), M.nrows()
A = copy( M.parent().zero() )
for r in xrange(nr):
for c in xrange(nc):
A[r,c] = M[r,c] * N[r,c]
return A
ring = PolynomialRing( QQ, 1, 'x' )
field = ring.fraction_field()
T = Matrix( ring, [
[ 1, -x, -x, 0] ,
[-x, 1, 0, -x] ,
[ 0, -x, 1, 0] ,
[-x, 0, 0, 1] ] )
R = Matrix( field, [
[ 1, 1, 0, 1 ] ,
[ 1, 1, 1, 0 ] ,
[ 1, 0, 0, 1 ] ,
[ 0, 1, 1, 0 ] ] )
B = ~T
elementwise( B, R )
(I only took care that the assertion does not fail. So i replaced the definition ring / field QQ from R, made it the field of fraction of the polynomial ring ring. While computing B, its parent is no longer the ring, as in T, but the field.)
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.