# Dual additive code

## Description

For any \(q\)-ary additive code \(C\), the dual additive (or orthogonal additive) code is \begin{align} C^\perp = \{ y\in GF(q)^{n} ~|~ x \star y=0 \forall x\in C\}, \end{align} where the trace inner product is \(x\star y = \sum_{i=1}^n \text{tr}(x_i y_i)\) for coordinates \(x_i,y_i\), and the trace maps elements of the field \(GF(q)\) with \(q=p^m\) to elements of \(GF(p)\) as \begin{align} \text{tr}(\gamma)=\sum_{k=0}^{m-1}\gamma^{p^{k}}~. \end{align}

A code that is contained in its dual, \(C \subseteq C^\perp\), is called self-orthogonal additive or weakly self-dual additive. A code that contains its dual, \(C^\perp \subseteq C\), is called dual-containing additive. A code that is equal to its dual, \(C^\perp = C\), is called self-dual additive. A code is dual-containing additive iff its dual is self-orthogonal additive.

For cases when \(q\) is a square, an alternative definition of dual substitutes the trace inner product for the trace-Hermitian inner product, \(x\star y \to \sum_{i=1}^n \text{tr}(x_i y^{\sqrt{q}}_i)\). Another extension, relevant to certain stabilizer codes and reducing to the trace-Hermitian case for \(q=4\), is the trace-alternating inner product, \begin{align} x\star y \to \sum_{i=1}^{n}\text{tr}\left(\frac{x_{i}y_{i}^{\sqrt{q}}-x_{i}^{\sqrt{q}}y_{i}}{\alpha-\alpha^{q}}\right)~, \end{align} where \(\{1,\alpha\}\) is a basis of \(GF(q)\) over \(GF(\sqrt{q})\). Self-dual additive codes with respect to the trace-Hermitian (trace-alternating) inner product are called trace Hermitian (trace-alternating) self-dual additive; similar definitions hold for self-orthogonal additive and dual-containing additive.

## Parent

## Cousins

- Dual linear code — The difference between the definitions of dual linear and dual additive codes is in the trace used in the inner product. Self-dual linear codes are also self-dual additive codes.
- Galois-qudit stabilizer code — An additive code of length \(2n\) over \(GF(q)\) that is self-orthogonal with respect to the trace-symplectic inner product corresponds to symplectic representations of an \(n\) Galois-qudit stabilizer group [1]. Moreover, any additive code whose self-orthogonality under some inner product (such as Hermitian, Euclidean, or symplectic) implies trace-symplectic self-orthogonality of an equivalent code can be used to construct a Galois-qudit stabilizer code.
- Octacode — The octacode is self-dual with respect to the Euclidean inner product.
- Stabilizer code over \(GF(4)\) — The stabilizer commutation condition for stabilizer codes over \(GF(4)\) can equivalently be stated in the representation of stabilizers as quaternary vectors. A pair of \(n\)-qubit stabilizers commute iff the trace-Hermitian inner product of their corresponding vectors is zero. Stabilizer codes over \(GF(4)\) can thus be constructed from trace-Hermitian self-orthogonal additive quaternary codes.
- Stabilizer code over \(GF(q^2)\) — The stabilizer commutation condition for stabilizer codes over \(GF(q^2)\) can equivalently be stated in the representation of stabilizers as vectors over \(GF(q^2)\). A pair of \(n\) Galois-qudit stabilizers commute iff the trace-alternating inner product of their their corresponding vectors is zero. Stabilizer codes over \(GF(q^2)\) can thus be constructed from trace-alternating self-orthogonal additive codes over \(GF(q^2)\).

## References

- [1]
- A. Ashikhmin and E. Knill, “Nonbinary quantum stabilizer codes”, IEEE Transactions on Information Theory 47, 3065 (2001). DOI

## Page edit log

- Victor V. Albert (2022-07-22) — most recent

## Zoo code information

## Cite as:

“Dual additive code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/dual_additive