sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.47k stars 487 forks source link

Tensor product and coefficients #24900

Open hivert opened 6 years ago

hivert commented 6 years ago

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

hivert commented 6 years ago

Branch: u/hivert/tensor_product_and_coefficients

hivert commented 6 years ago

Author: Florent Hivert

hivert commented 6 years ago

Commit: 009c70a

hivert commented 6 years ago

New commits:

009c70aFix tensor prod. using old cartesian prod.
fchapoton commented 6 years ago
comment:3

many failing doctests

fchapoton commented 2 years ago
comment:6

rebased, just to see where this stands now


New commits:

29190d3Fix tensor prod. using old cartesian prod.
fchapoton commented 2 years ago

Changed commit from 009c70a to 29190d3

fchapoton commented 2 years ago

Changed branch from u/hivert/tensor_product_and_coefficients to public/cartesian_24900

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 2 years ago

Changed commit from 29190d3 to bfa36e7

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 2 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

bfa36e7fix one doctest
mkoeppe commented 2 years ago

Dependencies: #19195