Opened 11 years ago
Closed 7 years ago
#10672 closed enhancement (fixed)
Categories for FreeModule's
Reported by:  nthiery  Owned by:  nthiery 

Priority:  major  Milestone:  sage6.10 
Component:  categories  Keywords:  FreeModule, ModulesWithBasis 
Cc:  darij  Merged in:  
Authors:  Travis Scrimshaw  Reviewers:  Darij Grinberg 
Report Upstream:  N/A  Work issues:  
Branch:  d94f997 (Commits, GitHub, GitLab)  Commit:  d94f997e5d8082d80cf07067cab8ae13d67fe866 
Dependencies:  #18066  Stopgaps: 
Description
Put FreeModule? in the category ModulesWithBasis?(), and implement all the related methods. This should make FreeModule? and CombinatorialFreeModule? compatible and consistent.
There might be some compatibility issues to handle.
Attachments (1)
Change History (14)
Changed 9 years ago by
comment:1 Changed 9 years ago by
 Milestone changed from sagewishlist to sage5.12
 Status changed from new to needs_review
comment:2 Changed 9 years ago by
Thanks for working on this! A big part of the ticket is in "and implement all the related methods". The point is to have all the zillion little utilities of ModulesWithBasis? (term, monomial, sum_of_terms, leading_term, iter, ...) also work for plain FreeModules?.
My guess is that the main incompatibility that needs to be discussed is about iter. Indeed, as far as I remember:
for x in v: ...
iterates over pairs for "Combinatorial" free modules(like a iteritems of dictionaries), whereas it iterates over coefficients for plain free modules. So we have to decide on which interface we want and how to handle backward compatibility.
Cheers
Granted: ModulesWithBasis? should have appropriate abstract methods and tests so that, if an implementation does not provide the required methods, the testsuite barks.
comment:3 Changed 8 years ago by
 Status changed from needs_review to needs_work
As the patchbot indicates, this patch does not pass tests. Though it seems good otherwise :P
Nathann
comment:4 Changed 8 years ago by
 Milestone changed from sage6.1 to sage6.2
comment:5 Changed 8 years ago by
 Milestone changed from sage6.2 to sage6.3
comment:6 Changed 8 years ago by
 Milestone changed from sage6.3 to sage6.4
comment:7 Changed 7 years ago by
See also http://trac.sagemath.org/ticket/18310#comment:13 for a few issues we will need to double check for.
comment:8 Changed 7 years ago by
 Branch set to public/categories/last_compatibility10672
 Cc darij added
 Commit set to d94f997e5d8082d80cf07067cab8ae13d67fe866
 Dependencies set to #18066
 Milestone changed from sage6.4 to sage6.10
 Status changed from needs_work to needs_review
There is still a minor issue with __iter__
, however we can avoid those in code by using monomial_coefficients()
which give the consistent behavior. I also think we can leave the issues raised in #18310 to be handled there and once submodule
supports coordinate rings...
Last 10 new commits:
4a9fd81  Trac 18411: merge Sage 6.10.beta0

525d038  Trac 18411: Fix doctest in colored_permutations.py

41af762  Trac 18411: pass keywords in __call__

6e27dde  Trac 18411: merge sage6.10.beta1

b21396c  Merge branch '18411' into HEAD

b32e479  further changes (mostly doc)

dbb5789  Further fixes

e2fb14a  remove _test_keytype since submodules of free modules are currently failing it

96004df  Darij...

d94f997  Some last compatibility issues with modules with basis (hopefully).

comment:9 Changed 7 years ago by
 Status changed from needs_review to positive_review
comment:10 Changed 7 years ago by
comment:12 Changed 7 years ago by
 Reviewers set to Darij Grinberg
 Status changed from needs_work to positive_review
comment:13 Changed 7 years ago by
 Branch changed from public/categories/last_compatibility10672 to d94f997e5d8082d80cf07067cab8ae13d67fe866
 Resolution set to fixed
 Status changed from positive_review to closed
I put
VectorSpaces
in the categoryModulesWithBasis
becauseFreeModules
is already an alias forModulesWithBasis
. There doesn't seem to be any compatibility issues that I noticed.