The functions described in this section use the symplectic inner product defined for quantum codes.
ExtendedFormat: BoolElt Default: false
Let v1 and v2 be two vectors belonging to the vector space K(n), where K is a finite field. This function returns the inner product of v1 and v2 with respect to the symplectic inner product. The symplectic inner product in extended format is defined by (a|b) * (c|d) = ad - bc, and its definition transfers naturally to the compact format.For binary quantum codes whose compact format is over GF(4), the symplectic inner product is given by Trace(v1 ./line(v)2).
ExtendedFormat: BoolElt Default: false
The dual of the additive (or possibly linear) code C with respect to the symplectic inner product. By default, C is interpreted as being in the compact format (a length n code over GF(q2)), but if ExtendedFormat is set to true, then it will be interpreted as being in extended format (a code of length 2n over GF(q)).
ExtendedFormat: BoolElt Default: false
Return true if the code C is equal to its symplectic dual and false otherwise. By default, C is interpreted as being in the compact format (a length n code over GF(q2)), but if ExtendedFormat is set to true, then it will be interpreted as being in extended format (a code of length 2n over GF(q)).
ExtendedFormat: BoolElt Default: false
Return true if the code C is contained in its symplectic dual. By default, C is interpreted as being in the compact format (a length n code over GF(q2)), but if ExtendedFormat is set to true, then it will be interpreted as being in extended format (a code of length 2n over GF(q)).
> F<w> := GF(4); > V5 := VectorSpace(F, 5); > v := V5 ! [1,0,w,0,1]; > w := V5 ! [w,1,0,w,w]; > SymplecticInnerProduct(v,w); 0 > C := AdditiveCode<F, GF(2), 5 | v, w>; > C; [5, 1 : 2] GF(2)-Additive Code over GF(2^2) Generator matrix: [ 1 0 w 0 1] [ w 1 0 w w] > D := SymplecticDual(C); > D; [5, 4 : 8] GF(2)-Additive Code over GF(2^2) Generator matrix: [ 1 0 0 0 1] [ w 0 0 0 w] [ 0 1 0 0 0] [ 0 w 0 0 1] [ 0 0 1 0 w] [ 0 0 w 0 0] [ 0 0 0 1 1] [ 0 0 0 w 0] > C subset D; true > Q := QuantumCode(C); > Q; [[5, 3]] Quantum code over GF(2^2), stabilised by: [ 1 0 w 0 1] [ w 1 0 w w]
> V5 := VectorSpace(GF(4), 5); > { SymplecticInnerProduct(v, v) : v in V5 }; { 0 }