Additive Codes
- Introduction
- Construction of Additive Codes
- Construction of General Additive Codes
- Some Trivial Additive Codes
AdditiveZeroCode(F, K, n): FldFin, FldFin, RngIntElt → CodeAdd
AdditiveRepetitionCode(F, K, n): FldFin, FldFin, RngIntElt → Code
AdditiveZeroSumCode(F, K, n): FldFin, FldFin, RngIntElt → Code
AdditiveUniverseCode(F, K, n): FldFin, FldFin, RngIntElt → Code
RandomAdditiveCode(F, K, n, k): FldFin, FldFin, RngIntElt, RngIntElt → Code
Example: Simple Code Chain
- Invariants of an Additive Code
- Operations on Codewords
- Construction of a Codeword
- Arithmetic Operations on Codewords
- Distance and Weight
- Vector Space and Related Operations
(u, v): ModTupRngElt, ModTupRngElt → RngElt
InnerProduct(u, v): ModTupRngElt, ModTupRngElt → RngElt
TraceInnerProduct(K, u, v): FldFin, ModTupFldElt, ModTupFldElt → FldFinElt
Support(w): ModTupRngElt → { RngIntElt }
Coordinates(C, u): Code, ModTupRngElt → [ RngFinElt ]
Parent(w): ModTupRngElt → ModTupRng
Rotate(u, k): ModTupRngElt, RngIntElt → ModTupRngElt
Rotate(~u, k): ModTupRngElt, RngIntElt
Trace(u, S): ModTupFldElt, FldFin → ModTupFldElt
Trace(u): ModTupFldElt → ModTupFldElt
- Predicates for Codewords
- Accessing Components of a Codeword
- Subcodes
- The Subcode Constructor
sub<C | L>: CodeAdd, List → CodeAdd
Subcode(C, k): CodeAdd, RngIntElt → CodeAdd
Subcode(C, S): CodeAdd, { RngIntElt } → Code
SubcodeBetweenCode(C1, C2, k): CodeAdd, CodeAdd, RngIntElt → CodeAdd
SubcodeWordsOfWeight(C, w): CodeAdd, RngIntElt → CodeAdd
SubcodeWordsOfWeight(C, S): CodeAdd, { RngIntElt } → CodeAdd
Example: Subcode Between Code
- Sum, Intersection and Dual
- Membership and Equality
- Properties of Codes
- The Weight Distribution
- Families of Linear Codes
- Cyclic Codes
AdditiveCyclicCode(v): ModTupFldElt → CodeAdd
AdditiveCyclicCode(K, v): FldFin, ModTupFldElt → CodeAdd
AdditiveCyclicCode(Q): [ModTupFldElt] → CodeAdd
AdditiveCyclicCode(K, Q): FldFin, [ModTupFldElt] → CodeAdd
AdditiveCyclicCode(n, f): RngIntElt, RngUPolElt → CodeAdd
AdditiveCyclicCode(K, n, f): FldFin, RngIntElt, RngUPolElt → CodeAdd
AdditiveCyclicCode(n, Q): RngIntElt, [RngUPolElt] → CodeAdd
AdditiveCyclicCode(K, n, Q): FldFin, RngIntElt, [RngUPolElt] → CodeAdd
AdditiveCyclicCode(v4, v2): ModTupFldElt, ModTupFldElt → CodeAdd
AdditiveCyclicCode(n, f4, f2): RngIntElt, RngUPolElt, RngUPolElt → CodeAdd
- Quasicyclic Codes
AdditiveQuasiCyclicCode(n, Q): RngIntElt, SeqEnum[RngUPolElt] → CodeAdd
AdditiveQuasiCyclicCode(K, n, Q): FldFin, RngIntElt, SeqEnum[RngUPolElt] → CodeAdd
AdditiveQuasiCyclicCode(n, Q, h): RngIntElt, SeqEnum[RngUPolElt], RngIntElt → CodeAdd
AdditiveQuasiCyclicCode(K, n, Q, h): FldFin, RngIntElt, SeqEnum[RngUPolElt], RngIntElt → CodeAdd
AdditiveQuasiCyclicCode(Q): SeqEnum[ModTupFldElt] → CodeAdd
AdditiveQuasiCyclicCode(K, Q): FldFin, SeqEnum[ModTupFldElt] → CodeAdd
AdditiveQuasiCyclicCode(Q, h): SeqEnum[ModTupFldElt], RngIntElt → CodeAdd
AdditiveQuasiCyclicCode(K, Q, h): FldFin, SeqEnum[ModTupFldElt], RngIntElt → CodeAdd
- New Codes from Old
- Standard Constructions
AugmentCode(C): CodeAdd → Code
CodeComplement(C, S): Code, Code → Code
DirectSum(C, D): Code, Code → Code
DirectSum(Q): [Code] → Code
DirectProduct(C, D): Code, Code → Code
ExtendCode(C): CodeAdd → CodeAdd
ExtendCode(C, n): Code, RngIntElt → Code
PadCode(C, n): CodeAdd, RngIntElt → CodeAdd
PlotkinSum(C1, C2): Code, Code → Code
PlotkinSum(C1, C2, C3: parameters): Code, Code, Code → Code
PunctureCode(C, i): CodeAdd, RngIntElt → Code
PunctureCode(C, S): CodeAdd, { RngIntElt } → Code
ShortenCode(C, i): Code, RngIntElt → Code
ShortenCode(C, S): Code, { RngIntElt } → Code
- Combining Codes
- Automorphism Group