lunes, 22 de julio de 2013

GSoC Report (Third Week)

This time I implemented a function that given a linear code and a degree ordering it returs the set of coset leaders.
The important thing about this functions is that after we have it, we can calculate parameters of the code almost directly, such as: newton radius, covering radius and weight distribution of the cosets. I implemented them as well.

The algorithm and expalantion goes here : Algorithm

The code of the function goes here: Code

And, I already tested it with some examples in Sage : Examples

Notes: The algorithm for computing coset leaders is almost the same for computing the grobner representation(Second Week) . So the idea is that if the grobner representation is computed, we save the set of the coset leaders as an atribute of the code. In this way we don't have to compute the set of coset leaders every time we want some of the parameters I mentioned before. We only have to do it once.

3 comentarios:

  1. Interesting. Does this generate all the coset leaders? Will it not be a huge list if the code is small. I think such things can be taken care of by converting your lists to generators. You can focus on that later (after gsoc).

    The LinearCode class needed several cleanups to make sure that it works with large linear codes. By "large", I imply even such "small" lengths as n=15 and dimension k=12 over a finite field GF(16).

    Did you consider using "._coset_leaders" instead of ".__coset_leaders"? The latter makes it difficult to inherit the LinearCode class and extend its methods while keeping all the methods that it already has.

    1. Yes, it generates all the coset leaders. By now I'm working only with binary linear codes(i.e linear codes over GF(2)). But even that, the list can be big. For example the extended [24,12,8]-binary Golay Code it has 2035 cosets, each one with only one coset leaders and 1771 cosets with six coset leaders each. So, your idea of using generator sounds good, I'll see what I can do.Thanks!

      About using "_coset_leaders" instead "__coset_leaders" I'm not sure I understood the difference. I'm using "__coset_leaders" following the notation that LinearCode class already has for its attributes. For example "__dim", "__distance",etc.

    2. Oh I see. Then the LinearCode class needs another cleanup! I once performed such a cleanup for the Graphics class. Well, then carry on with the double "__". We will try to fix it in some future version of Sage.