Skip to content

Tensor product and coefficients #24900

@hivert

Description

@hivert

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

CC: @nthiery @tscrim @mkoeppe

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions