Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove the experimental code for RelativeFiniteFieldExtension #24279

Closed
kwankyu opened this issue Nov 24, 2017 · 31 comments
Closed

Remove the experimental code for RelativeFiniteFieldExtension #24279

kwankyu opened this issue Nov 24, 2017 · 31 comments

Comments

@kwankyu
Copy link
Collaborator

kwankyu commented Nov 24, 2017

This ticket removes the experimental class RelativeFiniteFieldExtension that is currently only used in the coding theory modules.

CC: @johanrosenkilde @defeo @jpflori @sagetrac-dlucas

Component: coding theory

Author: Kwankyu Lee

Branch/Commit: 5f9450f

Reviewer: Vincent Delecroix

Issue created by migration from https://trac.sagemath.org/ticket/24279

@kwankyu kwankyu added this to the sage-8.1 milestone Nov 24, 2017
@videlec videlec modified the milestones: sage-8.1, sage-8.2 Nov 24, 2017
@kwankyu
Copy link
Collaborator Author

kwankyu commented Aug 13, 2019

Author: Kwankyu Lee

@kwankyu

This comment has been minimized.

@kwankyu
Copy link
Collaborator Author

kwankyu commented Aug 13, 2019

Branch: u/klee/24279

@kwankyu kwankyu changed the title Deprecation process for part of code in RelativeFiniteFieldExtension Remove the experimental code for RelativeFiniteFieldExtension Aug 13, 2019
@kwankyu kwankyu modified the milestones: sage-8.2, sage-8.9 Aug 13, 2019
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 13, 2019

Commit: df211cf

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 13, 2019

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

df211cfRemove relative_finite_field_extension

@johanrosenkilde
Copy link
Contributor

comment:6

This is great - I had completely forgotten, that you had made #24170!

I've just played around with the vector_space() method, and there's one thing confusing me: it seems that the returned vector space representation is unique, as in only created once even if vector_space is called multiple timpes, but I can't seem to figure out why:

sage: F = GF(2^25)
sage: Fbig = F.extension(10)
sage: V = Fbig.vector_space(F)
sage: V2 = Fbig.vector_space(F)
sage: V is V2
True

@kwankyu
Copy link
Collaborator Author

kwankyu commented Aug 13, 2019

comment:7

Replying to @johanrosenkilde:

This is great - I had completely forgotten, that you had made #24170!

I've just played around with the vector_space() method, and there's one thing confusing me: it seems that the returned vector space representation is unique, as in only created once even if vector_space is called multiple timpes, but I can't seem to figure out why:

sage: F = GF(2^25)
sage: Fbig = F.extension(10)
sage: V = Fbig.vector_space(F)
sage: V2 = Fbig.vector_space(F)
sage: V is V2
True

Why is it confusing? This is normal behavior:

sage: F**2 is F**2
True
sage: F**2
Vector space of dimension 2 over Finite Field in z25 of size 2^25

@johanrosenkilde
Copy link
Contributor

comment:8

Yes, I know. I'm trying to figure out how it got that behaviour. I thought that one had to subclass UniqueRepresentation, but your vector spaces don't seem to do that (neither does FiniteField for that matter, so there's just something about the structure of these parent objects that I don't understand).

@johanrosenkilde
Copy link
Contributor

comment:9

Ah, now I see. I was confused. The vector space you return is simply a normal vector space as in F**2. What's special is the maps you compute, and the matrices stored in these - and they are not unique. In other words, every time you call vector_space, these matrices will be recomputed.

As was the case with RelativeFiniteFieldExtension, if this vector_space is used somewhere inside an object, across multiple method calls to that object, then it's the objects' job to store those maps as private fields.

This is a bit inelegant, but I guess something for the future, and not really relevant to this ticket. The solution we had envisioned in #21413, but where we admittedly didn't get far, would use an algebra-representation (instead of just a vector space), and this parent would store those maps inside it.

@kwankyu
Copy link
Collaborator Author

kwankyu commented Aug 14, 2019

comment:10

Replying to @johanrosenkilde:

Ah, now I see. I was confused. The vector space you return is simply a normal vector space as in F**2. What's special is the maps you compute, and the matrices stored in these - and they are not unique. In other words, every time you call vector_space, these matrices will be recomputed.

Right.

As was the case with RelativeFiniteFieldExtension, if this vector_space is used somewhere inside an object, across multiple method calls to that object, then it's the objects' job to store those maps as private fields.

It is so now.

This is a bit inelegant, but I guess something for the future, and not really relevant to this ticket. The solution we had envisioned in #21413, but where we admittedly didn't get far, would use an algebra-representation (instead of just a vector space), and this parent would store those maps inside it.

I don't have a clear idea on this issue. I just feel that instead of inventing extensions as in #21413, using (or improving if necessary) the general conversion mechanism in Sage is better. So a "conversion model" keeps all those maps and return one when requested...

@johanrosenkilde
Copy link
Contributor

comment:11

Replying to @kwankyu:

I don't have a clear idea on this issue. I just feel that instead of inventing extensions as in #21413, using (or improving if necessary) the general conversion mechanism in Sage is better. So a "conversion model" keeps all those maps and return one when requested...

Well, #21413 tries to make it possible to represent a mathematical object (ring extensions as algebras over the base ring), which is not currently possible to represent. In that sense it is much more ambitious than #24170. But of course, that same ambition seems to also have killed its progress.

Anyway, all of that has nothing to do with this ticket.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 19, 2019

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

4aa6c09Remove relative_finite_field_extension

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 19, 2019

Changed commit from df211cf to 4aa6c09

@kwankyu
Copy link
Collaborator Author

kwankyu commented Aug 23, 2019

comment:13

Anything to do?

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 16, 2019

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

656d32dRemove relative_finite_field_extension

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 16, 2019

Changed commit from 4aa6c09 to 656d32d

@mkoeppe
Copy link
Member

mkoeppe commented Apr 14, 2020

comment:17

Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.1, sage-9.2 Apr 14, 2020
@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Sep 5, 2020
@mkoeppe
Copy link
Member

mkoeppe commented Feb 13, 2021

comment:19

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 28, 2021

Changed commit from 656d32d to 0a05cd4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 28, 2021

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

0a05cd4Remove relative_finite_field_extension

@kwankyu

This comment has been minimized.

@mkoeppe
Copy link
Member

mkoeppe commented Jul 19, 2021

comment:22

Setting a new milestone for this ticket based on a cursory review.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe
Copy link
Member

mkoeppe commented Dec 18, 2021

comment:23

Stalled in needs_review or needs_info; likely won't make it into Sage 9.5.

@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 18, 2021
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 5, 2022

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

5f9450fRemove relative_finite_field_extension

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 5, 2022

Changed commit from 0a05cd4 to 5f9450f

@kwankyu
Copy link
Collaborator Author

kwankyu commented Jan 5, 2022

comment:25

It is a shame that we have this cleaning ticket still open for years.

Please let this get in.

@videlec
Copy link
Contributor

videlec commented Jan 5, 2022

comment:26

Looks reasonable.

@videlec
Copy link
Contributor

videlec commented Jan 5, 2022

Reviewer: Vincent Delecroix

@kwankyu
Copy link
Collaborator Author

kwankyu commented Jan 6, 2022

comment:27

Thanks!

@vbraun
Copy link
Member

vbraun commented Feb 16, 2022

Changed branch from u/klee/24279 to 5f9450f

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants