Macaulay2 » Documentation
Packages » CodingTheory > LinearCode > linearCode > locallyRecoverableCode
next | previous | forward | backward | up | index | toc

locallyRecoverableCode -- constructs a locally recoverable code (LRC)

Synopsis

Description

L is the list $\{q,n,k,r\},$ where $q$ is a prime power, and $n$, $k$ and $r$ are positive integers. A is a list that contains lists of elements of the field GF(q). Every sublist contains different elements of GF(q). The intersection between every two sublists is empty. The polynomial g is "good", which means that is constant on every sublist of A. This function generates an LRC code $C$ of length $n$, dimension $k$, and locality $r$, over GF(q). This code $C$ has the property that for every $1\leq i \leq n$, there exist $i_1,\ldots,i_r$ such that for every codeword $c$ in $C$, the entry $c_i$ can be recovered from the entries $c_{i_1},...,c_{i_r}$. This construction was introduced by Tamo and Barg in the paper A family of optimal locally recoverable codes: https://arxiv.org/pdf/1311.3284v2.pdf.

i1 : A={{1,3,9},{2,6,5},{4,12,10}}

o1 = {{1, 3, 9}, {2, 6, 5}, {4, 12, 10}}

o1 : List
i2 : R=(ZZ/13)[x]

o2 = R

o2 : PolynomialRing
i3 : g=x^3

      3
o3 = x

o3 : R
i4 : locallyRecoverableCode({13,9,4,2},A,g)

                                        9
o4 = LinearCode{AmbientModule => (GF 13)                                                                                                                                                    }
                BaseField => GF 13
                cache => CacheTable{}
                Code => image | 1 1  1  1  |
                              | 1 1  3  3  |
                              | 1 1  -4 -4 |
                              | 1 -5 2  3  |
                              | 1 -5 6  -4 |
                              | 1 -5 5  1  |
                              | 1 -1 4  -4 |
                              | 1 -1 -1 1  |
                              | 1 -1 -3 3  |
                GeneratorMatrix => | 1 1 1  1  1  1  1  1  1  |
                                   | 1 1 1  -5 -5 -5 -1 -1 -1 |
                                   | 1 3 -4 2  6  5  4  -1 -3 |
                                   | 1 3 -4 3  -4 1  -4 1  3  |
                Generators => {{1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, -5, -5, -5, -1, -1, -1}, {1, 3, -4, 2, 6, 5, 4, -1, -3}, {1, 3, -4, 3, -4, 1, -4, 1, 3}}
                ParityCheckMatrix => | 1 0 0 0 -2 -4 0 -3 -5 |
                                     | 0 1 0 0 -1 -5 0 2  3  |
                                     | 0 0 1 0 2  5  0 4  1  |
                                     | 0 0 0 1 3  -4 0 0  0  |
                                     | 0 0 0 0 0  0  1 3  -4 |
                ParityCheckRows => {{1, 0, 0, 0, -2, -4, 0, -3, -5}, {0, 1, 0, 0, -1, -5, 0, 2, 3}, {0, 0, 1, 0, 2, 5, 0, 4, 1}, {0, 0, 0, 1, 3, -4, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 3, -4}}

o4 : LinearCode

Ways to use locallyRecoverableCode :

For the programmer

The object locallyRecoverableCode is a method function.

Menu

Related function: