GSOC '16 - Rank Metric Codes

Skip to first unread message

Arpit Merchant

Mar 1, 2016, 2:38:04 AM3/1/16
to sage-gsoc,

My name is Arpit Merchant and I'm interested in contributing to Sage for GSOC '16. I have basic familiarity with coding theory and hopefully would like to implement a module/algorithm for the same. I looked at the ideas page and found "Rank-Metric Codes" project interesting.
I would be grateful to get in touch with the mentors for the aforementioned projects and discuss the details.

Thank you.

Arpit Merchant.

Mar 1, 2016, 7:04:45 AM3/1/16
to sage-coding-theory,

I'm David Lucas, one of the two mentors of this "Rank-metric codes" project.

Glad to hear you found our project interesting!

To give you a short history of the project:

Since October 2014, we started a two-year working on a big project called ACTIS [1] (for Algorithmic Coding Theory In Sage) at Inria (France).
The goal of this project is to enhance the existing coding theory library in Sage, by implementing classical code families (generalized Reed-Solomon codes, cyclic codes, BCH codes etc) as classes in Sage, alongside with classical decoding algorithms.

So far, we redesigned the API of the library, introduced a mechanism to handle encoding and decoding, and implemented some code families and decoding algorithms. I'm maintaining a list of all tickets related to ACTIS, you can check it here [2].

But for now, we only considered codes under the Hamming metric. While rank-metric is a research topic of interest these days, it seems interesting to have it in Sage. Hence this GSoC project ;)

As I dont't want to spam the list with technical details, you can email me for any question at (david [dot] lucas [at]




P Purkayastha

Mar 1, 2016, 7:42:18 AM3/1/16
Hi David,

I didn't have much time to follow the developments in Sage for the past year or so. I am really happy to see a concerted effort to improve the coding theory in Sage! I had performed many simulations using codes, and had to implement several codes, including nonlinear and product codes, using classes. The current implementation is immensely better that what I could conjure up in my implementation.

Thanks and regards,
> --
> You received this message because you are subscribed to the Google
> Groups "sage-coding-theory" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
> <>.
> To post to this group, send email to
> <>.
> To view this discussion on the web visit
> <>.
> For more options, visit

Mar 29, 2016, 9:20:58 AM3/29/16
to sage-coding-theory

Sorry for my (very) late answer.

Thanks a lot for your message!

To give you (and other people using Sage for coding theory) a quick summary of
what we did since we started the project:

- We introduced a new API, based on objects, to represent linear codes' families in Sage, alongside with encoders and decoders. This means codes families are no longer considered as "structureless" linear codes, but as families in themselves. This allows to use better formulae/algorithm than the generic ones to compute codes' parameters. For instance, our class for GRS codes has specific, fast methods to compute the covering radius, the minimum distance, and the weight distribution of a GRS code. It also means we can use specific decoding algorithms.

- I was talking about GRS codes: since 7.1, a full support of GRS codes as a specific code class is available in Sage. This allows to use fast methods I was talking about above, but also specific decoding algorithms. We have implemented Berlekamp-Welch decoding algorithm, Gao decoding algorithm and we even have a list -decoder based on Guruswami-Sudan algorithm.

I also implemented/rewrote some other code families: a dedicated class for Hamming codes is available since 7.2beta0, and I have a ticket pending on Cyclic codes.
Furthermore, I also implemented some classes based on existing codes' manipulation: puncturing, shortening, extending and taking the subfield subcode.

We keep a list of our tickets in trac ticket #18846.

All this being said, we'd like to have some input from people using this upgraded library: what do you enjoy, what can be enhanced?
Any feedback would be much appreciated ;)

Furthermore, is there something you use for your research you would like us to implement?


Reply all
Reply to author
0 new messages