Skip to content
This repository was archived by the owner on Jan 31, 2023. It is now read-only.

Latest commit

 

History

History
919 lines (671 loc) · 36.9 KB

20284.md

File metadata and controls

919 lines (671 loc) · 36.9 KB

Issue 20284: A class to manage embedding between non-prime fields

archive/issues_020047.json:

{
    "assignees": [],
    "body": "<div id=\"comment:0\"></div>\n\nIn Sage, there is no general mechanism to manage the embedding of elements of a finite extension field in one of its subfields.\n\nWe propose here a class which takes care of that.\n\nConsidering a big, non-prime field `Fqm` and one of its subfields `Fq`, this class is able to give either a polynomial or a vectorial representation of an element of `Fqm` in `Fq`.\n\nCC:  @johanrosenkilde @jpflori @defeo\n\nComponent: **finite rings**\n\nAuthor: **David Lucas**\n\nBranch: **[`2492c31`](https://github.com/sagemath/sagetrac-mirror/commit/2492c313523014a07d88bc9af3809b96bf595700)**\n\nReviewer: **Arpit Merchant**\n\n_Issue created by migration from https://trac.sagemath.org/ticket/20284_\n\n",
    "closed_at": "2016-06-09T16:14:09Z",
    "created_at": "2016-03-25T08:47:16Z",
    "labels": [
        "https://github.com/sagemath/sage/labels/c%3A%20finite%20rings",
        "https://github.com/sagemath/sage/labels/p%3A%20major%20/%203",
        "https://github.com/sagemath/sage/labels/enhancement"
    ],
    "milestone": "https://github.com/sagemath/sage/milestones/sage-7.3",
    "reactions": [],
    "repository": "https://github.com/sagemath/sage",
    "title": "A class to manage embedding between non-prime fields",
    "type": "issue",
    "updated_at": "2017-11-12T11:20:07Z",
    "url": "https://github.com/sagemath/sage/issues/20284",
    "user": "https://github.com/sagetrac-dlucas"
}

In Sage, there is no general mechanism to manage the embedding of elements of a finite extension field in one of its subfields.

We propose here a class which takes care of that.

Considering a big, non-prime field Fqm and one of its subfields Fq, this class is able to give either a polynomial or a vectorial representation of an element of Fqm in Fq.

CC: @johanrosenkilde @jpflori @defeo

Component: finite rings

Author: David Lucas

Branch: 2492c31

Reviewer: Arpit Merchant

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


archive/issue_events_283750.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-03-25T08:47:16Z",
    "event": "milestoned",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "milestone_number": null,
    "milestone_title": "sage-7.2",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283750"
}

archive/issue_events_283751.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-03-25T08:47:16Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/c%3A%20finite%20rings",
    "label_color": "0000ff",
    "label_name": "c: finite rings",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283751"
}

archive/issue_events_283752.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-03-25T08:47:16Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/p%3A%20major%20/%203",
    "label_color": "ffbb00",
    "label_name": "p: major / 3",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283752"
}

archive/issue_events_283753.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-03-25T08:47:16Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/enhancement",
    "label_color": "696969",
    "label_name": "enhancement",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283753"
}

archive/issue_comments_292109.json:

{
    "body": "Branch: **[u/dlucas/field_embedding](https://github.com/sagemath/sagetrac-mirror/tree/u/dlucas/field_embedding)**",
    "created_at": "2016-03-25T08:47:49Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292109",
    "user": "https://github.com/sagetrac-dlucas"
}

Branch: u/dlucas/field_embedding


archive/issue_comments_292110.json:

{
    "body": "Author: **David Lucas**",
    "created_at": "2016-03-25T08:49:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292110",
    "user": "https://github.com/sagetrac-dlucas"
}

Author: David Lucas


archive/issue_events_283754.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-03-25T08:49:36Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283754"
}

archive/issue_comments_292111.json:

{
    "body": "<div id=\"comment:2\" align=\"right\">comment:2</div>\n\nI pushed my code, and I open this ticket for review.\n\n---\nNew commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/49cebeef342bec6763892c3d9d1029b94f852867\"><code>49cebee</code></a></td><td><code>New class to manage embeddings between non-prime fields</code></td></tr></table>\n",
    "created_at": "2016-03-25T08:49:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292111",
    "user": "https://github.com/sagetrac-dlucas"
}
comment:2

I pushed my code, and I open this ticket for review.


New commits:

49cebeeNew class to manage embeddings between non-prime fields

archive/issue_comments_292112.json:

{
    "body": "Commit: **[`49cebee`](https://github.com/sagemath/sagetrac-mirror/commit/49cebeef342bec6763892c3d9d1029b94f852867)**",
    "created_at": "2016-03-25T08:49:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292112",
    "user": "https://github.com/sagetrac-dlucas"
}

Commit: 49cebee


archive/issue_comments_292113.json:

{
    "body": "<div id=\"comment:3\" align=\"right\">comment:3</div>\n\nBy the way, as I'm not sure where to put my code, I left it (for now) in `sage/coding`...",
    "created_at": "2016-03-25T08:54:51Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292113",
    "user": "https://github.com/sagetrac-dlucas"
}
comment:3

By the way, as I'm not sure where to put my code, I left it (for now) in sage/coding...


archive/issue_comments_292114.json:

{
    "body": "<div id=\"comment:4\" align=\"right\">comment:4</div>\n\nJust to be precise: Sage already supports embedding a small field `GF(p^s)` into a larger one `GF(p^(sm))` (by using `Fsmall.extension(m, map=True)`). It also supports the inverse map (returned by the `section()` method on the embedding map).\n\nThe new functionality of this ticket is to support representing any `GF(p^(sm))` element in a basis over `GF(p^s)`. AFAIK, the current implementation supports this with only one particular choice of bases: if `1, beta, ..., beta^(sm-1)` is the basis of `GF(p^(sm))` that Sage currently uses natively, then it is always the case that `1, beta, ..., beta^(m-1)` is a basis of `GF(p^(sm))` over `GF(p^s)`. This is the basis employed by the current ticket.\n\nMore precisely, it gives a function that takes an element `e` in `GF(p^(sm))` and returns a vector `(v[0],...,v[m-1]) in GF(p<sup>s)</sup>m`, such that\n\n```\n    e = sum_{i=0}^{m-1} phi(v[i]) * beta^i\n```\n\nwhere `phi` is a given embedding from `GF(p^s)` into `GF(p^(sm))`.\n\nBest,\nJohan",
    "created_at": "2016-03-25T09:54:04Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292114",
    "user": "https://github.com/johanrosenkilde"
}
comment:4

Just to be precise: Sage already supports embedding a small field GF(p^s) into a larger one GF(p^(sm)) (by using Fsmall.extension(m, map=True)). It also supports the inverse map (returned by the section() method on the embedding map).

The new functionality of this ticket is to support representing any GF(p^(sm)) element in a basis over GF(p^s). AFAIK, the current implementation supports this with only one particular choice of bases: if 1, beta, ..., beta^(sm-1) is the basis of GF(p^(sm)) that Sage currently uses natively, then it is always the case that 1, beta, ..., beta^(m-1) is a basis of GF(p^(sm)) over GF(p^s). This is the basis employed by the current ticket.

More precisely, it gives a function that takes an element e in GF(p^(sm)) and returns a vector (v[0],...,v[m-1]) in GF(p<sup>s)</sup>m, such that

    e = sum_{i=0}^{m-1} phi(v[i]) * beta^i

where phi is a given embedding from GF(p^s) into GF(p^(sm)).

Best, Johan


archive/issue_comments_292115.json:

{
    "body": "<div id=\"comment:5\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/7ffd2c0a9f3bd5e36b3b56aab4f66896dfecd0d3\"><code>7ffd2c0</code></a></td><td><code>Update to 7.3beta2</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/74a8c237c130e173b527dcd8e8597efa16a38ee8\"><code>74a8c23</code></a></td><td><code>representation_matrix is now a private method</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/4f4c0a677ec818771049d35e870abc1198c0c8d7\"><code>4f4c0a6</code></a></td><td><code>Changed names: Fqm over Fq is now designated as a relative finite field extension</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/87deeba348f41603a49d85d0d0810b00bf6d5046\"><code>87deeba</code></a></td><td><code>Changed return value of big_field_representation</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/0eb1d5a0956026fe2dbf16b2daf196bfd8f26f93\"><code>0eb1d5a</code></a></td><td><code>Changed naming: small field -> relative field, big field -> absolute field</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/38b77f9f34a7e3480b5656e557fcf9c0c2a6e732\"><code>38b77f9</code></a></td><td><code>Added method to check if an element of the absolute field is in the relative field under the embedding</code></td></tr></table>\n",
    "created_at": "2016-05-31T14:48:52Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292115",
    "user": "https://github.com/sagetrac-git"
}

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

7ffd2c0Update to 7.3beta2
74a8c23representation_matrix is now a private method
4f4c0a6Changed names: Fqm over Fq is now designated as a relative finite field extension
87deebaChanged return value of big_field_representation
0eb1d5aChanged naming: small field -> relative field, big field -> absolute field
38b77f9Added method to check if an element of the absolute field is in the relative field under the embedding

archive/issue_comments_292116.json:

{
    "body": "Changed commit from **[`49cebee`](https://github.com/sagemath/sagetrac-mirror/commit/49cebeef342bec6763892c3d9d1029b94f852867)** to **[`38b77f9`](https://github.com/sagemath/sagetrac-mirror/commit/38b77f9f34a7e3480b5656e557fcf9c0c2a6e732)**",
    "created_at": "2016-05-31T14:48:52Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292116",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 49cebee to 38b77f9


archive/issue_comments_292117.json:

{
    "body": "<div id=\"comment:6\" align=\"right\">comment:6</div>\n\nHello,\n\nI made some changes to the class:\n\n- I completely changed its nomenclature, which is now based on the one defined for [relative extensions](http://doc.sagemath.org/html/en/thematic_tutorials/explicit_methods_in_number_theory/nf_orders.html#relative-extensions).\n- I changed the behaviour of some methods.\n- I added a method to check if an element of the \"big field\" is in the relative field under the embedding.\n\nThis is still open for review.\n\nBest,\n\nDavid",
    "created_at": "2016-05-31T14:51:05Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292117",
    "user": "https://github.com/sagetrac-dlucas"
}
comment:6

Hello,

I made some changes to the class:

  • I completely changed its nomenclature, which is now based on the one defined for relative extensions.
  • I changed the behaviour of some methods.
  • I added a method to check if an element of the "big field" is in the relative field under the embedding.

This is still open for review.

Best,

David


archive/issue_events_283755.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-05-31T14:51:05Z",
    "event": "demilestoned",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "milestone_number": null,
    "milestone_title": "sage-7.2",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283755"
}

archive/issue_events_283756.json:

{
    "actor": "https://github.com/sagetrac-dlucas",
    "created_at": "2016-05-31T14:51:05Z",
    "event": "milestoned",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "milestone_number": null,
    "milestone_title": "sage-7.3",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283756"
}

archive/issue_comments_292118.json:

{
    "body": "<div id=\"comment:7\" align=\"right\">comment:7</div>\n\nTwo naive questions:\n\n- Why is this in sage/coding?\n- Why not extending the preceding existing embedding class?\n\nVincent",
    "created_at": "2016-05-31T16:28:32Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292118",
    "user": "https://github.com/videlec"
}
comment:7

Two naive questions:

  • Why is this in sage/coding?
  • Why not extending the preceding existing embedding class?

Vincent


archive/issue_comments_292119.json:

{
    "body": "<div id=\"comment:8\" align=\"right\">comment:8</div>\n\nReplying to [@videlec](#comment%3A7):\n> Two naive questions:\n> \n> - Why is this in sage/coding?\n> - Why not extending the preceding existing embedding class?\n\nBecause we did not know where to put it, and we didn't get input from anyone. We need the functionality for several things in sage/coding, so we just wanted to add it. And it's on the agenda for Sage Days 75 to merge it much more sensibly with the rest of Sage.\n\nIncidentally, will you be coming for SD75?",
    "created_at": "2016-05-31T19:54:39Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292119",
    "user": "https://github.com/johanrosenkilde"
}
comment:8

Replying to @videlec:

Two naive questions:

  • Why is this in sage/coding?
  • Why not extending the preceding existing embedding class?

Because we did not know where to put it, and we didn't get input from anyone. We need the functionality for several things in sage/coding, so we just wanted to add it. And it's on the agenda for Sage Days 75 to merge it much more sensibly with the rest of Sage.

Incidentally, will you be coming for SD75?


archive/issue_comments_292120.json:

{
    "body": "<div id=\"comment:9\" align=\"right\">comment:9</div>\n\nReplying to [@johanrosenkilde](#comment%3A8):\n> Replying to [@videlec](#comment%3A7):\n> > Two naive questions:\n> > \n> > - Why is this in sage/coding?\n> > - Why not extending the preceding existing embedding class?\n> \n> \n> Because we did not know where to put it, and we didn't get input from anyone. We need the functionality for several things in sage/coding, so we just wanted to add it. And it's on the agenda for Sage Days 75 to merge it much more sensibly with the rest of Sage.\n\nWould make more sense with everything about finite field, no? That is to say `sage/rings/finite_rings/`.\n\n> Incidentally, will you be coming for SD75?\n\nSadly not. I will be in Chile at that time.",
    "created_at": "2016-05-31T20:00:12Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292120",
    "user": "https://github.com/videlec"
}
comment:9

Replying to @johanrosenkilde:

Replying to @videlec:

Two naive questions:

  • Why is this in sage/coding?
  • Why not extending the preceding existing embedding class?

Because we did not know where to put it, and we didn't get input from anyone. We need the functionality for several things in sage/coding, so we just wanted to add it. And it's on the agenda for Sage Days 75 to merge it much more sensibly with the rest of Sage.

Would make more sense with everything about finite field, no? That is to say sage/rings/finite_rings/.

Incidentally, will you be coming for SD75?

Sadly not. I will be in Chile at that time.


archive/issue_comments_292121.json:

{
    "body": "<div id=\"comment:10\" align=\"right\">comment:10</div>\n\nI'll be there at sd75.\nAnd I do agree it would nice to use such functionalities in a more general setting.\nWe could still put it in `coding` first and move it later.",
    "created_at": "2016-06-01T06:42:17Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292121",
    "user": "https://github.com/jpflori"
}
comment:10

I'll be there at sd75. And I do agree it would nice to use such functionalities in a more general setting. We could still put it in coding first and move it later.


archive/issue_comments_292122.json:

{
    "body": "<div id=\"comment:11\" align=\"right\">comment:11</div>\n\nHello,\n\n> And I do agree it would nice to use such functionalities in a more general setting.\n> We could still put it in `coding` first and move it later.\n\nI would indeed prefer to put it in `coding` first, as it locks several very useful tickets for us (#20039, #20100, #20335) while it's not reviewed. Furthermore, we need it for our GSoC project on rank-metric codes.\n\nI can put an experimental warning in it: this way, we will be able to move it later on without being worried by deprecation warnings.\n\nBest,\n\nDavid",
    "created_at": "2016-06-01T08:49:27Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292122",
    "user": "https://github.com/sagetrac-dlucas"
}
comment:11

Hello,

And I do agree it would nice to use such functionalities in a more general setting. We could still put it in coding first and move it later.

I would indeed prefer to put it in coding first, as it locks several very useful tickets for us (#20039, #20100, #20335) while it's not reviewed. Furthermore, we need it for our GSoC project on rank-metric codes.

I can put an experimental warning in it: this way, we will be able to move it later on without being worried by deprecation warnings.

Best,

David


archive/issue_comments_292123.json:

{
    "body": "<div id=\"comment:12\" align=\"right\">comment:12</div>\n\n> I can put an experimental warning in it: this way, we will be able to move it later on without being worried by deprecation warnings.\n\n+1",
    "created_at": "2016-06-01T13:13:43Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292123",
    "user": "https://github.com/johanrosenkilde"
}
comment:12

I can put an experimental warning in it: this way, we will be able to move it later on without being worried by deprecation warnings.

+1


archive/issue_comments_292124.json:

{
    "body": "<div id=\"comment:13\"></div>\n\nBranch pushed to git repo; I updated commit sha1. New commits:\n<table><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/311b960f9252d66a080e76fffd5d9ed475581c01\"><code>311b960</code></a></td><td><code>Added experimental warning for RelativeFiniteFieldExtension</code></td></tr><tr><td><a href=\"https://github.com/sagemath/sagetrac-mirror/commit/2492c313523014a07d88bc9af3809b96bf595700\"><code>2492c31</code></a></td><td><code>Added relative_finite_field_extension to sage.coding's index.rst</code></td></tr></table>\n",
    "created_at": "2016-06-01T13:35:53Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292124",
    "user": "https://github.com/sagetrac-git"
}

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

311b960Added experimental warning for RelativeFiniteFieldExtension
2492c31Added relative_finite_field_extension to sage.coding's index.rst

archive/issue_comments_292125.json:

{
    "body": "Changed commit from **[`38b77f9`](https://github.com/sagemath/sagetrac-mirror/commit/38b77f9f34a7e3480b5656e557fcf9c0c2a6e732)** to **[`2492c31`](https://github.com/sagemath/sagetrac-mirror/commit/2492c313523014a07d88bc9af3809b96bf595700)**",
    "created_at": "2016-06-01T13:35:53Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292125",
    "user": "https://github.com/sagetrac-git"
}

Changed commit from 38b77f9 to 2492c31


archive/issue_comments_292126.json:

{
    "body": "<div id=\"comment:14\" align=\"right\">comment:14</div>\n\nI added this experimental warning to the class.\n\nI also added this module in `sage.coding`'s index.",
    "created_at": "2016-06-01T13:37:14Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292126",
    "user": "https://github.com/sagetrac-dlucas"
}
comment:14

I added this experimental warning to the class.

I also added this module in sage.coding's index.


archive/issue_events_283757.json:

{
    "actor": "https://github.com/arpitdm",
    "created_at": "2016-06-08T16:15:36Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/needs%20review",
    "label_color": "7fff00",
    "label_name": "needs review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283757"
}

archive/issue_events_283758.json:

{
    "actor": "https://github.com/arpitdm",
    "created_at": "2016-06-08T16:15:36Z",
    "event": "labeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283758"
}

archive/issue_comments_292127.json:

{
    "body": "Reviewer: **Arpit Merchant**",
    "created_at": "2016-06-08T16:15:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292127",
    "user": "https://github.com/arpitdm"
}

Reviewer: Arpit Merchant


archive/issue_comments_292128.json:

{
    "body": "<div id=\"comment:15\" align=\"right\">comment:15</div>\n\nI went through the reviewer's checklist and all the tests pass. The naming conventions are quite suitable and make it easier to interpret the functions. Giving it a positive review.",
    "created_at": "2016-06-08T16:15:36Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292128",
    "user": "https://github.com/arpitdm"
}
comment:15

I went through the reviewer's checklist and all the tests pass. The naming conventions are quite suitable and make it easier to interpret the functions. Giving it a positive review.


archive/issue_events_283759.json:

{
    "actor": "https://github.com/vbraun",
    "created_at": "2016-06-09T16:14:09Z",
    "event": "unlabeled",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "label": "https://github.com/sagemath/sage/labels/positive%20review",
    "label_color": "dfffc0",
    "label_name": "positive review",
    "label_text_color": "ffffff",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283759"
}

archive/issue_events_283760.json:

{
    "actor": "https://github.com/vbraun",
    "commit_id": "19e2b5d2c5cb50ca01ef1c967ff194aad422e200",
    "commit_repository": "https://github.com/sagemath/sage",
    "created_at": "2016-06-09T16:14:09Z",
    "event": "closed",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_event",
    "url": "https://github.com/sagemath/sage/issues/20284#event-283760"
}

archive/issue_comments_292129.json:

{
    "body": "Changed branch from **[u/dlucas/field_embedding](https://github.com/sagemath/sagetrac-mirror/tree/u/dlucas/field_embedding)** to **[`2492c31`](https://github.com/sagemath/sagetrac-mirror/commit/2492c313523014a07d88bc9af3809b96bf595700)**",
    "created_at": "2016-06-09T16:14:09Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292129",
    "user": "https://github.com/vbraun"
}

Changed branch from u/dlucas/field_embedding to 2492c31


archive/issue_comments_292130.json:

{
    "body": "<div id=\"comment:17\" align=\"right\">comment:17</div>\n\nWas there ever a follow up ticket created?",
    "created_at": "2017-09-08T09:10:01Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292130",
    "user": "https://github.com/koffie"
}
comment:17

Was there ever a follow up ticket created?


archive/issue_comments_292131.json:

{
    "body": "Changed commit from **[`2492c31`](https://github.com/sagemath/sagetrac-mirror/commit/2492c313523014a07d88bc9af3809b96bf595700)** to none",
    "created_at": "2017-09-08T09:10:01Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292131",
    "user": "https://github.com/koffie"
}

Changed commit from 2492c31 to none


archive/issue_comments_292132.json:

{
    "body": "<div id=\"comment:18\" align=\"right\">comment:18</div>\n\nReplying to [@koffie](#comment%3A17):\n> Was there ever a follow up ticket created?\n\nI don't think so. At least the code is still there in `sage/coding/relative_finite_field_extension.py`.\n\n<rant start>\nIt is a pitty that this ticket has been merged despite my objections in [comment:7](#comment%3A7). It should have definitely be a file in `sage/rings/finite_field/` so that people actually working with finite field would have noticed. Putting a blob of general purpose functionalities in a specialized repository is not the way to proceed. People are free to do that on their home git repository but would better avoid such practice in a large public open source software.\n<rant end>",
    "created_at": "2017-09-10T20:26:31Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292132",
    "user": "https://github.com/videlec"
}
comment:18

Replying to @koffie:

Was there ever a follow up ticket created?

I don't think so. At least the code is still there in sage/coding/relative_finite_field_extension.py.

It is a pitty that this ticket has been merged despite my objections in [comment:7](#comment%3A7). It should have definitely be a file in `sage/rings/finite_field/` so that people actually working with finite field would have noticed. Putting a blob of general purpose functionalities in a specialized repository is not the way to proceed. People are free to do that on their home git repository but would better avoid such practice in a large public open source software.

archive/issue_comments_292133.json:

{
    "body": "<div id=\"comment:19\" align=\"right\">comment:19</div>\n\nSo let's create one: #23828.\n\nThere is also the old and somehow useless #8751.\nAnd related works: https://github.com/wbhart/flint2/issues/366",
    "created_at": "2017-09-11T08:54:47Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292133",
    "user": "https://github.com/jpflori"
}
comment:19

So let's create one: #23828.

There is also the old and somehow useless #8751. And related works: flintlib/flint#366


archive/issue_comments_292134.json:

{
    "body": "<div id=\"comment:20\" align=\"right\">comment:20</div>\n\nThe follow-up ticket is #21413. It was created shortly after SD75 following discussion between Xavier Caruso, Luca De Feo, Nicola Thierry, Bruno Grenet and myself. The main difficulty in moving the code to `/sage/rings/` is to find the proper and general interface. Xavier in particular came up with centering these kinds of embeddings around the algebra induced by the field extension `L/K`.\n\nThe ticket #21413 then stalled because of lack of time, I think, and because we hit a snag wrt. implicit coercion vs use of multiplication btw. elements of the `L/K` algebra and elements of `K` leading to (perhaps) unintuitive non-commutative behaviour. See the discussion on that ticket for a more precise description.",
    "created_at": "2017-09-11T08:57:56Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292134",
    "user": "https://github.com/johanrosenkilde"
}
comment:20

The follow-up ticket is #21413. It was created shortly after SD75 following discussion between Xavier Caruso, Luca De Feo, Nicola Thierry, Bruno Grenet and myself. The main difficulty in moving the code to /sage/rings/ is to find the proper and general interface. Xavier in particular came up with centering these kinds of embeddings around the algebra induced by the field extension L/K.

The ticket #21413 then stalled because of lack of time, I think, and because we hit a snag wrt. implicit coercion vs use of multiplication btw. elements of the L/K algebra and elements of K leading to (perhaps) unintuitive non-commutative behaviour. See the discussion on that ticket for a more precise description.


archive/issue_comments_292135.json:

{
    "body": "<div id=\"comment:21\" align=\"right\">comment:21</div>\n\nArgh then let's already close #23828.",
    "created_at": "2017-09-11T08:59:58Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292135",
    "user": "https://github.com/jpflori"
}
comment:21

Argh then let's already close #23828.


archive/issue_comments_292136.json:

{
    "body": "<div id=\"comment:22\" align=\"right\">comment:22</div>\n\nSee also #24170",
    "created_at": "2017-11-12T11:20:07Z",
    "formatter": "markdown",
    "issue": "https://github.com/sagemath/sage/issues/20284",
    "type": "issue_comment",
    "url": "https://github.com/sagemath/sage/issues/20284#issuecomment-292136",
    "user": "https://github.com/videlec"
}
comment:22

See also #24170