Closed 5b3bd7e6-c3f3-4830-a555-991f5e6beec0 closed 4 years ago
Changed branch from u/dimpase/coding/linear_rank_metric to u/jsrn/coding/linear_rank_metric
I've fixed the issue with __eq__
by implementing and documenting a correct version. Then sage.coding.linear_code.AbstractLinearCode
had a redundant (and less efficient) implementation of __eq__
that I removed. I also moved __ne__
from that class to AbstractLinearCodeNoMetric
.
Using ./sage -coverage
, I found that linear_rank_code
had another method decode_to_code
with no doctests. I added one. I discovered then that two other doctests of that file were running very slowly (>10 s), so I just changed the tests to a smaller ones which runs much faster.
New commits:
150d834 | Example for coding.linear_code_no_metric.__init__ |
5f32a03 | Merge branch 'u/dimpase/coding/linear_rank_metric' of git://trac.sagemath.org/sage into 21226_abstract_rank_metric |
4a770f8 | Fix `__eq__` and `__ne__` for AbstractLinearCodeNoMetric, and remove it from AbstractLinearCode |
9ef1e9c | Add doctest to coding.linear_rank_metric.LinearRankMetricCodeNearestNeighborDecoder.decode_to_code |
5f46031 | Make doctests of sage.coding.linear_rank_metric run 50 times faster |
Changed author from Arpit Merchant, Marketa Slukova to Arpit Merchant, Marketa Slukova, Johan Rosenkilde
Thanks.
Since I haven't really looked into the code of this ticket, I let Dima give again a positive review if appropriate.
Btw, I'm wondering: is it preferable to implement __eq__
, __ne__
, etc. or _richcmp_
? I believed that the latter solution was better, but I'm not sure.
Note also that the patchbot reported some warning (pyflakes, pycodestyle and blocks).
Thanks. First time I missed the _eq_
problem, as I thought it's just some kind of Python3 formality. Looks OK now.
PDF docs don't build:
[docpdf] l.4668 \(1,^^H
[docpdf] eta,\ldots,^^Heta^{sm}\) be the power basis that SageMath uses to
hmm, is \beta
the problem, or \ldots
, or both?
I'm not 100% sure but I think it comes from \beta
. However, I don't know what's wrong.
Besides, reading this doctest, I find that it's not very clear; for instance, what is q
is implicit and not obvious, I would say. Moreover, the two notations GF(q)
and F_{q}
are used to refer to the same object (namely, the finite field with q elements) and I think that they are both incorrect, the correct one being \GF(q)
.
by the way, there are typos - beta vs \beta in 6 places.
Perhaps \beta must be added to some silly list... (and/or written in utf-8)
Changed dependencies from #28350 to none
Changed branch from u/jsrn/coding/linear_rank_metric to u/dimpase/coding/linear_rank_metric
Changed branch from u/dimpase/coding/linear_rank_metric to 899d390
the last commit did not make it into the beta, or got overwritten
Volker, something went missing with this merge, e.g. the last commit, 899d390, did not get merged.
This ticket isn't in any relased beta yet. 899d390018 will be in 9.2.beta7 which I'm releasing right now
OK - it was confusing that it was marked as closed already.
We propose to implement
AbstractRankMetricCode
, an abstract class for rank metric codes which will initialize the basic parameters that every rank metric code possesses. This will inherit fromAbstractCode
class. Further, we propose to add rank-metric based methods to compute distance, weight and allow for matrix to vector (and reverse) conversions between representations. Finally, we create a generic representative classLinearRankMetricCode
as well as encoding (generator matrix, systematic) and decoding (nearest neighbour) methods.CC: @sagetrac-dlucas @johanrosenkilde @dimpase @xcaruso @Adurand8 @mbombar @vbraun
Component: coding theory
Author: Arpit Merchant, Marketa Slukova, Johan Rosenkilde
Branch:
899d390
Reviewer: Dima Pasechnik, Johan Rosenkilde, Xavier Caruso
Issue created by migration from https://trac.sagemath.org/ticket/21226