Opened 3 years ago

Last modified 9 hours ago

#21226 new enhancement

An Abstract Class for Rank Metric Codes

Reported by: arpitdm Owned by: gh-emes4
Priority: major Milestone:
Component: coding theory Keywords:
Cc: dlucas, jsrn, dimpase Merged in:
Authors: Arpit Merchant, Marketa Slukova Reviewers:
Report Upstream: N/A Work issues:
Branch: u/gh-emes4/coding/linear_rank_metric (Commits) Commit: 08b6e4f604eb23e53fdb60e7ee724c643b46b125
Dependencies: #28073, #28209 Stopgaps:

Description (last modified by gh-emes4)

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 from AbstractCode 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 class LinearRankMetricCode as well as encoding (generator matrix, systematic) and decoding (nearest neighbour) methods.

Change History (13)

comment:1 Changed 3 years ago by arpitdm

  • Branch set to u/arpitdm/abstract_linear_rank_metric_code_class

comment:2 Changed 3 years ago by arpitdm

  • Commit set to 7e4b3a3b6fb6b6bcce84f85007b0ae0574f5c37f
  1. I've written a basic constructor for the class along with a couple of getter methods.
  2. I've added some modified rank-metric based methods.
  3. And deleted some methods from the ALC class according to the schema described in past discussions. There's about 10 more that need to be deleted similarly. I'm trying to see if this be written more compactly. Open to ideas.

More to follow.


New commits:

7e4b3a3added a very basic constructor, a couple of basic getter methods and deleted a couple of methods from ALC class. added some rank distance, rank weight, to_matrix_representation and from_matrix_representation.

comment:3 follow-up: Changed 3 years ago by dlucas

Hello,

I won't comment extensively for now, as there's still a lot to do. I just have one small comment/remark to keep in mind for later: when you will work on documentation, remember to carefully explain which representation you chose (matrix vs. vector) and how to get the other one to be sure users do understand how this class works and what they should expect from it.

David

comment:4 in reply to: ↑ 3 Changed 3 years ago by jsrn

Replying to dlucas:

Hello,

I won't comment extensively for now, as there's still a lot to do. I just have one small comment/remark to keep in mind for later: when you will work on documentation, remember to carefully explain which representation you chose (matrix vs. vector) and how to get the other one to be sure users do understand how this class works and what they should expect from it.

Seconded. And remember to explain that this class *only* supports rank-metric codes which are linear over the big field!

Best, Johan

comment:5 Changed 3 years ago by jsrn

What's the state of this? What is missing? When do you plan to do it?

Best, Johan

comment:6 Changed 3 years ago by jsrn

I think the class should be call AbstractLinearRankMetricCode by the way. It's terribly long, but the Linear is important.

comment:7 Changed 6 days ago by gh-emes4

  • Authors changed from Arpit Merchant to Arpit Merchant, Marketa Slukova
  • Branch changed from u/arpitdm/abstract_linear_rank_metric_code_class to u/gh-emes4/coding/linear_rank_metric
  • Commit 7e4b3a3b6fb6b6bcce84f85007b0ae0574f5c37f deleted
  • Dependencies set to #28073
  • Description modified (diff)

comment:8 Changed 6 days ago by git

  • Commit set to a251c61567015e7159d231a6b828ef617ee5566b

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

64f446aMerge branch 'develop' of git://trac.sagemath.org/sage into abstract_code
53e445badded base_ring and length parameter to AbstractCode
5e6dffeFixed some dependencies. Category still set up wrong.
ba4fc53Merge branch 'abstract_code' into t/28073/abstract_code
e8edfebFixed unclean merge.
880aebbFixed default decoder/encoder dependencies. Set to None by default.
d115600No category set up and base_field in AbstractCode. No encoder/decoder error msgs. Documentation and tests.
82fdc3cMerge branch 'develop' of git://trac.sagemath.org/sage into rank_metric
5c0fd69Merge branch 'develop' of git://trac.sagemath.org/sage into rank_metric
a251c61Inheriting from Abstract Code. Encoding, decoding methods. Generic LinearRankMetricCode class.

comment:9 Changed 6 days ago by git

  • Commit changed from a251c61567015e7159d231a6b828ef617ee5566b to 05476b32a4a94be0d02eba67c9922217ccf7dc9f

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

05476b3Generator matrix methods in AbstractLinearRankMetricCode

comment:10 Changed 6 days ago by gh-emes4

  • Owner changed from (none) to gh-emes4

comment:11 Changed 6 days ago by git

  • Commit changed from 05476b32a4a94be0d02eba67c9922217ccf7dc9f to 08b6e4f604eb23e53fdb60e7ee724c643b46b125

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

524efc8Inheriting from Abstract Code. Encoding, decoding methods. Generic LinearRankMetricCode class.
77fc1e2Generator matrix methods in AbstractLinearRankMetricCode
08b6e4fMerge branch 'u/gh-emes4/coding/linear_rank_metric' of git://trac.sagemath.org/sage into rank_metric

comment:12 Changed 5 days ago by gh-emes4

  • Cc dimpase added

comment:13 Changed 9 hours ago by gh-emes4

  • Dependencies changed from #28073 to #28073, #28209
Note: See TracTickets for help on using tickets.