-
-
Notifications
You must be signed in to change notification settings - Fork 655
Closed
Milestone
Description
(from #30169)
We have the following identifications:
sage: M = FiniteRankFreeModule(ZZ, 3, name='M')
sage: M is M.exterior_power(1)
True
sage: M is M.tensor_module(1, 0)
True
In contrast (in 9.7.rc0):
sage: M.dual() is M.dual_exterior_power(1)
True
sage: M.dual() is M.tensor_module(0, 1)
False
After #34474:
sage: M.dual() is M.dual_exterior_power(1)
True
sage: M.dual() is M.tensor_module(0, 1)
True
After #34474, the dual is implemented as a special case of ExtPowerDualFreeModule
.
We create a separate implementation class FiniteRankDualFreeModule
for it instead. We equip it with a tensor_type
method, which allows the dual to participate in tensor products (see #34471).
Depends on #34474
CC: @egourgoulhon @tscrim @mjungmath
Component: linear algebra
Author: Matthias Koeppe
Branch/Commit: 84d7b5e
Reviewer: Eric Gourgoulhon
Issue created by migration from https://trac.sagemath.org/ticket/30241