Dear Sage team,

in the thread
http://groups.google.com/group/sage-support/browse_thread/thread/6c0b377a37ee32ec/a2e56d5696b8198e?hl=en#a2e56d5696b8198e
i was asking if there is a tensor product for homomorphisms between
free modules over polynomial rings.

There isn't, and William suggested to implement it myself and send a
patch to him resp. to here. Well, it isn't a patch, but at least it
isn't long...

I guess the change concerns the class FreeModuleMorphism, and one just
has to
add a method, say, "otimes". The tensor product can be easily formed
using block_matrix:

{{{
def otimes(self,g):
    "f.otimes(g): return the tensor product of two free module
morphisms"
    # or find a better doc string
    if not isinstance(g,
sage.modules.free_module_morphism.FreeModuleMorphism):
        raise NotImplementedError, "second argument must be a free
module morphism"
    if not (self.base_ring()==g.base_ring()):
        raise ArithmeticError, "base rings must coincide"
    Dom =
self.base_ring()**(self.domain().dimension()*g.domain().dimension())
    Cod =
self.base_ring()**(self.codomain().dimension()*g.codomain().dimension())
    M = sage.matrix.constructor.block_matrix([x*g.matrix() for x in
self.matrix().list()],self.matrix().nrows(),self.matrix().ncols())
    return
sage.modules.free_module_morphism.FreeModuleMorphism(Dom.Hom(Cod),M)
}}}

Disadvantages:
- This only works for homomorphisms between free modules, since domain
and codomain of the output are free by construction (i don't know how
to form the tensor product of non-free modules).
- Domain and codomain of the output are just free modules. They
provide no information about how they and their bases (important for
computations!) are related with the (co)domains of the two input
homomorphisms.

Cheers
    Simon

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to