-
-
Notifications
You must be signed in to change notification settings - Fork 655
Open
Description
Tensor products of combinatorial free modules still use an old version of
cartesian product. As a consequence extracting a coefficient is not possible:
sage: F = CombinatorialFreeModule(ZZ, [1,2]); F.__custom_name = "F"
sage: G = CombinatorialFreeModule(ZZ, [3,4]); G.__custom_name = "G"
sage: T = tensor([F, G]); T
sage: T.basis()[(1,3)].coefficient((1,3))
...
NotImplementedError:
I fix that. As a side effect, this change the result of an_element
so that I
have to fix a few doctests.
Moreover, building the tensor of two infinite dimensional FM now raises a correct
warning:
sage: F = CombinatorialFreeModule(ZZ, NN)
sage: T = tensor([F, F]); T
Free module generated by Non negative integer semiring over Integer Ring ⊗ Free module generated by Non negative integer semiring over Integer Ring
sage: T.an_element()
/home/data/Sage-Install/sage-dev/local/lib/python2.7/site-packages/sage/categories/sets_cat.py:2159: UserWarning: Sage is not able to determine whether the factors of this Cartesian product are finite. The lexicographic ordering might not go through all elements.
warn("Sage is not able to determine whether the factors of "
2*B[0] ⊗ B[1] + B[0] ⊗ B[0] + 3*B[0] ⊗ B[2] + B[42] ⊗ B[42]
I'm hiding this by asking only finite dim FM.
Depends on #19195
Component: linear algebra
Keywords: tensor product, free modules
Author: Florent Hivert
Branch/Commit: public/cartesian_24900 @ bfa36e7
Issue created by migration from https://trac.sagemath.org/ticket/24900