Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
Research article Special Issues

Weighted spectral geometric means and matrix equations of positive definite matrices involving semi-tensor products

  • Received: 22 January 2024 Revised: 04 March 2024 Accepted: 07 March 2024 Published: 25 March 2024
  • MSC : 15A24, 15A69

  • We characterized weighted spectral geometric means (SGM) of positive definite matrices in terms of certain matrix equations involving metric geometric means (MGM) and semi-tensor products . Indeed, for each real number t and two positive definite matrices A and B of arbitrary sizes, the t-weighted SGM AtB of A and B is a unique positive solution X of the equation

    A1X=(A1B)t.

    We then established fundamental properties of the weighted SGMs based on MGMs. In addition, (A1/2B)2 is positively similar to AB and, thus, they have the same spectrum. Furthermore, we showed that certain equations concerning weighted SGMs and MGMs of positive definite matrices have a unique solution in terms of weighted SGMs. Our results included the classical weighted SGMs of matrices as a special case.

    Citation: Arnon Ploymukda, Kanjanaporn Tansri, Pattrawut Chansangiam. Weighted spectral geometric means and matrix equations of positive definite matrices involving semi-tensor products[J]. AIMS Mathematics, 2024, 9(5): 11452-11467. doi: 10.3934/math.2024562

    Related Papers:

    [1] Adel Alahmadi, Altaf Alshuhail, Patrick Solé . The mass formula for self-orthogonal and self-dual codes over a non-unitary commutative ring. AIMS Mathematics, 2023, 8(10): 24367-24378. doi: 10.3934/math.20231242
    [2] Adel Alahmadi, Asmaa Melaibari, Patrick Solé . Quasi self-dual codes over non-unital rings from three-class association schemes. AIMS Mathematics, 2023, 8(10): 22731-22757. doi: 10.3934/math.20231158
    [3] Ted Hurley . Ultimate linear block and convolutional codes. AIMS Mathematics, 2025, 10(4): 8398-8421. doi: 10.3934/math.2025387
    [4] Doris Dumičić Danilović, Andrea Švob . On Hadamard 2-(51,25,12) and 2-(59,29,14) designs. AIMS Mathematics, 2024, 9(8): 23047-23059. doi: 10.3934/math.20241120
    [5] Guoqing Wang . Lower bound for the Erdős-Burgess constant of finite commutative rings. AIMS Mathematics, 2020, 5(5): 4424-4431. doi: 10.3934/math.2020282
    [6] Ismail Aydogdu . On double cyclic codes over Z2+uZ2. AIMS Mathematics, 2024, 9(5): 11076-11091. doi: 10.3934/math.2024543
    [7] Jie Liu, Xiying Zheng . Equivalence of constacyclic codes over finite non-chain ring and quantum codes. AIMS Mathematics, 2025, 10(7): 15193-15205. doi: 10.3934/math.2025681
    [8] Fatma Zehra Uzekmek, Elif Segah Oztas, Mehmet Ozen . (θi,λ)-constacyclic codes and DNA codes over Z4+uZ4+u2Z4. AIMS Mathematics, 2024, 9(10): 27908-27929. doi: 10.3934/math.20241355
    [9] Sami Alabiad, Yousef Alkhamees . On classification of finite commutative chain rings. AIMS Mathematics, 2022, 7(2): 1742-1757. doi: 10.3934/math.2022100
    [10] Chaofeng Guan, Ruihu Li, Hao Song, Liangdong Lu, Husheng Li . Ternary quantum codes constructed from extremal self-dual codes and self-orthogonal codes. AIMS Mathematics, 2022, 7(4): 6516-6534. doi: 10.3934/math.2022363
  • We characterized weighted spectral geometric means (SGM) of positive definite matrices in terms of certain matrix equations involving metric geometric means (MGM) and semi-tensor products . Indeed, for each real number t and two positive definite matrices A and B of arbitrary sizes, the t-weighted SGM AtB of A and B is a unique positive solution X of the equation

    A1X=(A1B)t.

    We then established fundamental properties of the weighted SGMs based on MGMs. In addition, (A1/2B)2 is positively similar to AB and, thus, they have the same spectrum. Furthermore, we showed that certain equations concerning weighted SGMs and MGMs of positive definite matrices have a unique solution in terms of weighted SGMs. Our results included the classical weighted SGMs of matrices as a special case.



    Historically, the classification of self-dual codes over unitary rings and finite fields has rested on two pillars: an algorithm to generate short length codes, and a mass formula to signal the completion of the classification [7,15]. While the pionneers (Conway, Pless Sloane, and so on), were using various ad hoc methods like glueing theory to generate short codes [17], in recent years the build up method emerged as a systematic generation method [10,13,14]. By using a recursion on generator matrices, from a self-dual code of length n, it creates a self-dual code of length n+h (with h small and fixed). This is sometimes called a propagation rule of order h. For concreteness, one may take h=2 for binary codes [6] and codes over a certain ring of order 4 [12], and h=4 for ternary codes [13]. In [5], this technique was applied to a commutative non-unital ring with success.

    In this paper, we initiate the study of self-dual codes over the ring E3, defined on two generators a,b by the relations

    E3=a,b| 3a=3b=0, a2=a, b2=b, ab=a, ba=b.

    This ring is a non-unital, non commutative ring of order 9. This notation is consistent with the classification of rings of order p2 for p, a prime of [9]. While the use of finite fields as alphabets in Coding Theory dates back to its inception in the 1940's, and the use of finite rings from the 1980's, it is only in recent years that non-unitary rings have been used as alphabets at the cost of theoretical hurdles [1,2,3,4].

    We will use a definition of self-dual codes for non-commutative rings introduced in [2]. This new notion of self-dual codes coincides with that of QSD codes for that special ring. Also of interest are left self-dual (LSD) and right self-dual (RSD) codes, in agreement with the non-commutativity of the alphabet ring. In particular, we modify the propagation rules of [1] to produce self-orthogonal and self-dual codes, as well as one-sided self-dual codes. As an application, we classify the three types of codes considered in lengths at most 7. We derive mass formulas for the these three types that guarantee that the classification is complete.

    The material is arranged as follows. The next section contains the preliminary notions and notations needed in the later sections. Section 3 derives building-up constructions for the three classes of codes mentioned. Section 4 applies these propagation rules to concrete classifications in short lengths. Section 5 concludes the article.

    Let Fn3 represent the vector space of n-tuples over the 3-element field F3. A ternary linear code C of length n and dimension k, denoted shortly as an [n,k]3 code, is a k-dimensional subspace of Fn3.

    The number of nonzero coordinates of a vector xFn3 is called its Hamming weight wt(x). The Hamming distance d(x,y) between two vectors x,yFn3 is defined by d(x,y)=wt(xy). The minimum distance of a linear code C is

    d(C)=min{d(x,y)|x,yC,xy}=min{wt(c)|cC,c0}

    A 3-ary linear code of length n, dimension k, and minimum distance d is said to be an [n,k,d]3 code.

    Following [9], we define the ring E3 of order 9 on two generators a and b by the relations:

    E3=a,b| 3a=3b=0, a2=a, b2=b, ab=a, ba=b.

    Thus, E3 has characteristic three, and consists of nine elements

    E3={0,a,b,c,d,e,f,g,h},

    where

    c=a+b, d=2b, e=2a,f=e+b, g=a+d,  and h=d+e.

    These definitions immediately lead to the addition and the multiplication tables given as follow.

    Table 1.  Addition and multiplication tables for E3.

     | Show Table
    DownLoad: CSV

    We may deduce from the multiplication table that this ring is non-commutative without identity and has unique maximal ideal J3={0,f,g=2f} with residue field E3/J3F3.

    As a result, we have the following f-adic decomposition. It can be checked by inspection that any element iE3 can be expressed as i=ax+fy, for unique scalars x,yF3. We have defined a natural action of F3 on the ring E3 by the rule

    r0=0r=0,r1=1r=r,and r2=r+r=2r for all rE3.

    Note that, for all rE3, x,yF3, this action is "distributive" in the sense that r(xy)=rx+ry, where denote the addition in F3. When xFn3, and rEn3, we will occasionally use the inner product notation (x,r) to indicate

    (x,r)=x1r1++xnrn.

    We define the reduction map modulo S as π:E3E3/J3F3 by

    π(0)=π(f)=π(g)=0,
    π(a)=π(b)=π(h)=1,
    π(e)=π(d)=π(c)=2.

    This map is extended in the natural way in a map from En3 to Fn3.

    A linear E3-code C of length n is a one-sided E3-submodule of En3. It may be thought of as the E3-span of the rows of a matrix called a generator matrix (we assume that these rows belong to C). There are two ternary codes of length n associated with the code C. The residue code res(C) is just π(C), and the torsion code tor(C) is {xFn3| fxC}. It is easy to verify that res(C)tor(C) [3]. We denote the dimension of the residue code by k1, and the dimension of the torsion code by k1+k2. Such a code C is of type {k1,k2}. A straightforward application of the first isomorphism theorem [3] shows that

    |C|=|res(C)||tor(C)|=32k1+k2.

    By a result similar to [3, Theorem 1], we can show that every code C over E3 of length n and type {k1,k2} is equivalent to a code with a generator matrix

    [aIk1aXY0fIk2fZ],

    where Y is a matrix with entries in E3, X and Z are matrices with entries from F3, and Ik1, Ik2 are identity matrices.

    In fact, generator matrices of res(C) and tor(C) are given by

    [Ik1Xπ(Y)] and [Ik1Xπ(Y)0Ik2Z],

    respectively.

    Define the inner product of x and y in En3 as (x,y)=x1y1+x2y2++xnyn, where x=(x1,x2,,xn) and y=(y1,y2,,yn).

    The left dual code CL of a code C is the module defined as

    CL={yEn3 | xC , (y,x)=0}.

    The right dual code CR of a code C is the module defined as:

    CR={yEn3 | xC , (x,y)=0}.

    Thus, the left (respectively, right) dual of a left (respectively, right) module is a left (respectively, right) module.

    A left self-dual code C satisfies C=CL. Likewise, a right self-dual code C satisfies C=CR.

    The two-sided dual of C, denoted by C, is given by C=CLCR. We say that a code C is self-dual (SD) iff C=CLCR. A code C is self-orthogonal (SO) if for all x,yC, (x,y)=0.

    Clearly, C is a self-orthogonal code C, iff CCLCR.

    Two E3-codes are monomially equivalent if there is a monomial transformation of coordinates that maps one to the other. Here a monomial transformation is a matrix with entries in F3 and with exactly one element per row and per column. The parameters (n,3k,d) of an E3-code are identified with that of its image by ϕ, defined in the next subsection.

    An additive code C of length n over F9 is an additive subgroup of Fn9. Thus, C contains 3k codewords for some integer 0k2n, and is called an (n,3k) code. If, furthermore, C has minimum distance d, we write the parameters of C as (n,3k,d). An additive code C over F9 can be represented by a k×n generator matrix with entries from F9 whose rows span C, called a generator matrix. That is, C is the F3-span of its rows.

    Let ωF9 be such that ω2=ω+1. Since the polynomial t2t1 is irreducible over F3, we can write F9=F3[ω]. The trace map, Tr:F9F3, is defined as Tr(x)=x+x3.

    Every linear E3-code C is attached with an additive F9-code ϕ(C) by the alphabet substitution

    00,  a2,  bω,
    c2+ω,  d2ω,  e1,
    fω+1,  g2(ω+1),  h1+2ω,

    extended naturally to Fn9. The parameters (n,3k,d) of an E3-code are identified with that of its image under ϕ. It can be checked that, for all xEn3, we have Tr(ϕ(x))=π(x), and thus res(C)=Tr(ϕ(C)).

    Similarly, we see that tor(C) is the so-called subfield subcode of ϕ(C), that is Fn3ϕ(C).

    We recall from [17] that the weight enumerator of any linear or additive code C of length n is the polynomial

    WC(x,y)=xn+ni=1Aixniyi

    where the sequence A1,......,An is the weight distribution of C. That is, Ai is the number of codewords in C of weight i.

    Lemma 1. If C is a linear code of length n over E3 with weight enumerator WC(x,y), then the weight enumerator of the dual code C is given by

    WC=3nWC(x+8y,xy).

    In particular, the weight enumerator of a self-dual code is invariant under the matrix group generated by 13(1811).

    Proof. The first statement, analogous to the MacWilliams identity for linear codes over Fq, follows from the general theory [17, Theorem 13], since our trace inner product ϕ(C) is an (n,32k1+k2) additive code over F9 with

    WC(x,y)=Wϕ(C)(x,y).

    The second statement follows from the first, by noticing that, for a self-dual code, we have WC=WC.

    Let φn,k denote the number of distinct self-orthogonal ternary codes having parameters [n,k1] (see [15, Theorem 4.7]. We define the Gaussian coefficient (kr)3 for rk as

    (kr)3=(3k1)(3k11)....(3kr+11)(3r1)(3r11)....(31)

    which gives the number of subspaces of dimension r contained in a k-dimensional vector space over F3.

    In what follows, we present a mass formula for self-orthogonal codes over E3 which is a characteristic 3-version of [4, Theorem 8].

    Theorem 1. For all lengths n, and for the type {k1,k2}, where k11, the number of self-orthogonal codes over E3 is

    NSO(n,k1,k2)=φn,k1(n2k1k2)33k1(n2k1k2).

    If k1=0, then

    NSO(n,0,k2)=(nk2)3.

    The following mass formulas follow by the usual counting technique under group action. Corollaries 1–4 are a consequence of Theorem 1.

    Corollary 1. For given length n and type {k1,k2}, with 0k1,k2n, we have

    C1|Aut(C)|=NSO(n,k1,k2)2nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of SO codes of length n and type (k1,k2).

    Corollary 2. For given length n and type {k1,k2}, with k11, we have

    C1|Aut(C)|=NSD(n,k1,k2)2nn!=φn,k12nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of SD codes of length n and type {k1,k2}.

    Corollary 3. For given length n and type {0,k2}, with k21, we have

    C1|Aut(C)|=NRSD(n,k1,k2)2nn!=12nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of RSD codes of length n and type {0,k2}.

    Corollary 4. For given length n and type {n2,0}, with n21, we have

    C1|Aut(C)|=NLSD(n,k1,k2)2nn!=φn,n22nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of LSD codes of length n and type {n2,0}.

    In this section we provide the building-up construction for self-orthogonal codes, (one-sided) self-dual, and self-dual codes over E3. Our building-up construction needs the following theorems.

    Theorem 2. Let C be an E3 code of length n, with residue code C1 and torsion code C2. The following hold:

    If C is a linear code of length n over E3, then C=aC1+fC2.

    If C1 is self-orthogonal with C1C2C1, then C is a self-orthogonal code.

    If, furthermore, |C|=3n, then C2=C1.

    Proof. The first statement:_ It suffices to prove that CaC1+fC2.

    Let iC. We can write i in f-adic decomposition form as i=ax+fy where x,yFn3.

    Since π(ax+fy)=x, it follows that xres(C).

    By following [3, Lemma 3], we have axC. Also by a linearity of C, we can see that fyC, and hence ytor(C).

    This proves that CaC1+fC2.

    The second statement:_ Suppose i1,i2C. We can write i1 and i2 in f-adic decomposition form as i1=ax1+fy1 and i2=ax2+fy2 where x1,x2res(C) and y1,y2tor(C). Compute (i1,i2),

    (ax1+fy1,ax2+fy2)=a2(x1,x2)+af(x1,y2)+fa(x2,y1)+f2(y1,y2)=a(x1,x2)+f(x2,y1).

    Since tor(C)res(C), it follows that (x1,x2)=(x2,y1)=0, which is self-orthogonal. Thus, C is self-orthogonal.

    The last statement:_ It follows that C2=3nk1=C1.

    The next result control the linear structure of SO codes.

    Corollary 5. For any SO codes C over E3 of length n, we have

    (i) tor(C)res(C).

    (ii) res(C) must be a self-orthogonal ternary code.

    Proof. For (i), let ytor(C), then fyC and qC, we can write q in f-adic decomposition form as q=au+fv, where ures(C) and vtor(C).

    (fy,au+fv)=fa(y,u)=f(y,u)=0.

    Thus, yres(C) and tor(C)res(C).

    For (ii), By (i), and the fact that res(C)tor(C), it follows that

    res(C)tor(C)res(C).

    The following theorem characterizes one-sided self-dual codes over E3.

    Theorem 3. For any linear code C over E3, we have

    (i) CL=a res(C)+f res(C).

    (ii) CR=a tor(C)+f Fn3.

    Proof. For (i), we need to prove that res(CL)=res(C)=tor(CL).

    From the fact res(CL)tor(CL), it follows that res(CL)res(C)tor(CL).

    Now, let ytor(CL), then fyCL and xres(C), then axC. By definition of CL, we can see that

    (fy,ax)=fa(y,x)=f(y,x)=0.

    Thus, yres(C) and tor(CL)res(C).

    On the other hand, given rres(C) and iC, i may be expressed in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C),respectively. It can be seen that

    (ar,i)=(ar,au+fv)=a(r,u)=0

    by definition of C. Thus, arCL, and rres(CL). This implies that, res(C)res(CL). Therefore,

    res(CL)=res(C)=tor(CL).

    For (ii), suppose ytor(C)res(C), and iC, we can write i in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C). By definition of C, we have

    (i,ay)=(au+fv,ay)=a(u,y)+f(v,y)=0.

    Thus, ayCR, and yres(CR). This implies that, tor(C)res(CR). Conversely, let xres(CR), then axCR. Let ytor(C), then fyC. Observe that

    (fy,ax)=fa(y,x)=f(y,x)=0.

    Thus, fyC and ytor(C). This implies that res(CR)=tor(C).

    Now to prove tor(CR)=Fn3, it suffices to show that Fn3tor(CR).

    Let rFn3, and iC, we can write i in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C). We can see that

    (i,fr)=(au+fv,fr)=af(u,r)+f2(v,r)=0.

    Thus, frCR, then rtor(CR), and so Fn3tor(CR). This completes the proof.

    Corollary 6. For any linear code C over E3, we have

    (i) C is left self-dual (LSD) iff C is of type {n2,0}.

    (ii) C is right self-dual (RSD) iff C=f Fn3.

    The lengths of LSD codes can be determined completely.

    Corollary 7. Left self-dual codes over E3 of length n occurs if and only if n is a multiple of 4.

    Proof. From Theorem 3, C is left self-dual iff res(C) is a self-dual ternary code. Then, by [16, Theorem 3], a self-dual code over F3 of length n exists only if n is a multiple of 4.

    This completes the proof. The next theorem characterizes SD codes.

    Theorem 4. Assume C is an E3-code of length n, C is a SD code if and only if

    C=a res(C)+f res(C);

    moreover, |C|=3n.

    Proof. We know that C is self-dual code over E3 iff C=C=CRCL. By Theorem 2, we can see that

    C=a (res(CR)res(CL))+f (tor(CR)tor(CL)).

    Thus, by Theorem 3, it can be seen that

    C=a tor(C)+f res(C)=a res(C)+f res(C).

    Corollary 8. For any linear code C over E3, we have:

    (1) If C is SD with k1=0, then C is RSD.

    (2) If C is SD with k2=0, then C is LSD.

    The next result bounds the minimum distances of SD and LSD codes.

    Corollary 9. (i) The minimum distance d(C) of a self-dual code over E3 is less than or equal to min.

    (ii) If \mathcal{C} is a left self-dual code \mathcal{C} over \mathit{E}_3 , then the minimum distance d(\mathcal{C}) is equal to d(\mathrm{res(\mathcal{C})}) .

    Proof. For ( i ), by Theorem 4, we have \mathcal{C} = a \ \mathrm{res(\mathcal{C})} + f \ \mathrm{res(\mathcal{C})}^\bot.

    Let d_1 and d_2 denote the minimum distances of \mathrm{res(\mathcal{C})} and \mathrm{res(\mathcal{C})}^\bot , respectively.

    By definition of \mathrm{tor(\mathcal{C})} , we have d(\mathcal{C})\le d_2 . By [3, Lemma 3], we have a \ \mathrm{res(\mathcal{C})}\subseteq \mathcal{C} , which indicates that d(\mathcal{C})\le d_1 . It follows that d(\mathcal{C})\le min\left\{ d_1, d_2 \right\} .

    For ( ii ), by Theorem 3, we have \mathcal{C} = a \ \mathrm{res(\mathcal{C})}^\bot + f \ \mathrm{res(\mathcal{C})}^\bot, where \mathrm{res(\mathcal{C})}^\bot = \mathrm{res(\mathcal{C})}. This means that d_1 = d_2.

    We now establish that d(\mathcal{C}) \ge d_1 . Assume {\mathbf q} is in \mathcal{C} and wt({\mathbf q}) = d . Because {\mathbf r} \in \mathrm{res(\mathcal{C})}^\bot and {\mathbf s} \in \mathrm{res(\mathcal{C})}^\bot , {\mathbf q} = a{\mathbf r}+f{\mathbf s} by Theorem 2. We have the following three scenarios, which rely on {\mathbf r} and {\mathbf s}, since \mathcal{C} is nonzero:

    (1) wt({\mathbf q}) = wt(a {\mathbf r}) = wt({\mathbf r}) \, \ \text{if} \, \ {\mathbf r}\neq 0 \, \ \text{and} \, \ {\mathbf s} = 0 ,

    (2) wt({\mathbf q}) = wt(f {\mathbf s}) = wt({\mathbf s}) \, \ \text{if} \, \ {\mathbf r} = 0 \, \ \text{and} \, \ {\mathbf s}\neq 0 ,

    (3) wt({\mathbf q}) = wt(a {\mathbf r}+f {\mathbf s})\ge wt({\mathbf ar}) = wt({\mathbf r}) \, \ \text{if} \, \ {\mathbf r}, {\mathbf s}\neq 0.

    It follows that d(\mathcal{C}) \ge d_1 since d_1 = d_2 . Thus, from (i) , we conclude that d(\mathcal{C}) = d_1.

    In this subsection, we present the build-up construction method for self-orthogonal codes over \mathit{E}_3 . The following theorem is a propagation rule of order three which increases the number of generators by one.

    Theorem 5. Let \mathcal{C}_{0} be a self-orthogonal code over \mathit{E}_3 of length n with generator matrix \mathcal{G}_{0} = ({\mathbf r}_{i}) where {\mathbf r}_{i} is the i th row of \mathcal{G}_{0} , for i = 1, 2, \ldots, m . Let {\mathbf x}\in\mathbb{F}_{3}^{n} and \alpha, \beta, \gamma \in \mathit{E}_3, such that \alpha+\beta+\gamma = 0 . Then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \left(\begin{array}{ccc|c} \alpha & \beta & 0 & \gamma{\mathbf x}\\ \hline ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & {\mathbf r}_{1}\\ \vdots & \vdots & \vdots & \vdots\\ ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & {\mathbf r}_{m} \end{array}\right)

    is a self-orthogonal code of length n+3 if:

    (i) ({\mathbf x}, {\mathbf x}) = 1 , and \alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3 ; or

    (ii) ({\mathbf x}, {\mathbf x}) = -1 and (\alpha \neq 0, \, \ \beta = 0, \, \ \gamma = 2\alpha) .

    Proof. It suffices to show that the rows of \mathcal{G} are orthogonal to each other. Let {\mathbf y}_{0} = \left(\begin{array}{cccc} \alpha & \beta & 0 & \gamma{\mathbf x}\end{array}\right) , the first row of \mathcal{G} and {\mathbf y}_{i} = \left(\begin{array}{cccc} ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & {\mathbf r}_{i}\end{array}\right) , the i+1 st row of \mathcal{G} , for i = 1, 2, \ldots, m .

    (i) If ({\mathbf x}, {\mathbf x}) = 1 and \alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3 , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \alpha^{2}+\beta^{2}+\gamma^{2}({\mathbf x}, {\mathbf x}) = \alpha^{2}+\beta^{2}+\gamma^{2} = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \alpha({\mathbf x}, {\mathbf r}_{i})+\beta({\mathbf x}, {\mathbf r}_{i})+\gamma({\mathbf x}, {\mathbf r}_{i}) = (\alpha+\beta+\gamma)({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    (ii) If ({\mathbf x}, {\mathbf x}) = -1 and (\alpha \neq 0, \, \ \beta = 0, \, \ \gamma = 2\alpha) , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \alpha^{2}+(2\alpha)^{2}({\mathbf x}, {\mathbf x}) = \alpha^2- \alpha^2 = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \alpha({\mathbf x}, {\mathbf r}_{i})+2\alpha({\mathbf x}, {\mathbf r}_{i}) = 3\alpha({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    In both cases, we see that { \mathcal{C}} is a self-orthogonal code.

    Example 1. We construct self-orthogonal codes of length 6 derived from length 3. By Theorem 2, we have the self-orthogonal (3, 3^2, 3) code with generator matrix \mathcal{G}_0 given by

    \mathcal{G}_0 = \begin{pmatrix} a & b & h\\ \end{pmatrix}.

    Using Theorem 5 from \mathcal{G}_0 , we get three non-equivalent monomial SO (6, 3^4, 3) codes, with generator matrices:

    \left( \begin{array}{ccc|ccc} a & 0& 0& a & e & 0\\ \hline f & f& f& a & b & h\\ \end{array}\right), \ \, \ \ \, \ \left( \begin{array}{ccc|ccc} a & a& 0& a & 0 & 0\\ \hline a & a& a& a & b & h\\ \end{array}\right), \ \, \ \text{and } \, \ \left( \begin{array}{ccc|ccc} a & b& 0& h & 0 & 0\\ \hline a & a& a& a & b & h\\ \end{array}\right).

    Their Hamming weight enumerators are

    \begin{align*} W_1(x, y) & = x^6 + 14x^3y^3 + 12x^2y^4+18xy^5+36y^6 , \\ W_2(x, y) & = x^6 + 16x^3y^3 + 64y^6 , \end{align*}

    and

    W_3(x, y) = x^6 + 10x^3y^3 +18xy^5+ 52y^6 ,

    respectively.

    Remark 1. The build-up construction method given in Theorem 5, cannot be also used for self-dual codes as the cardinality of the code \mathcal{C} is not 3^{n+3}.

    Remark 2. If any two self-orthogonal \mathit{E}_3 -codes are monomially equivalent, then their residue and torsion codes are also monomially equivalent, but the converse is not necessarily true. For example, when n = 3 and type \left\{ 1, 0 \right\} , the codes \mathcal{C}_1 and {\mathcal{C}}_2 with generator matrices \begin{pmatrix} a & a & a\\ \end{pmatrix} and \begin{pmatrix} a & b & h\\ \end{pmatrix} , respectively. They have the same residue and torsion codes, but are not monomially equivalent.

    We will provide a construction approach for one-sided self-dual codes over \mathit{E}_3 in this subsection. Initially, this structure was provided for left self-dual codes with two extra generators and a length increase of four. We only need to take into consideration the situation in which the length n is a multiple of 4 , as a result of Corollary 7.

    Theorem 6. Let \mathcal{C}_{0} be a left self-dual code over \mathit{E}_3 of length n with generator matrix \mathcal{G}_{0} = ({\mathbf r}_{i}) where {\mathbf r}_{i} is the i th row of \mathcal{G}_{0} , for i = 1, 2, \ldots, m . Let {\mathbf x}_1, {\mathbf x}_2 \in \mathbb{F}_{3}^{n} such that ({\mathbf x}_1, {\mathbf x}_2) = 0 , and ({\mathbf x}_i, {\mathbf x}_i) = 2 for i = 1, 2 . For 1 \le i \le m , define u_i = ({\mathbf x}_1, {\mathbf r}_i) and v_i = ({\mathbf x}_2, {\mathbf r}_i) . If \alpha \in \mathit{E}_3 \setminus J_3 , then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \left( \begin{array}{cccc|c} \alpha & 0 & 0 & 0 & 2\alpha {\mathbf x}_1 \\ 0 & \alpha & 0 & 0 & 2\alpha {\mathbf x}_2\\ \hline u_1& v_1& u_1+v_1 &2u_1+v_1 & {\mathbf r}_1 \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ u_m& v_m& u_m+v_m &2u_m+v_m & {\mathbf r}_m \end{array} \right)

    is a left self-dual code of length n+4 .

    Proof. Let {\mathbf y}_0 = \left(\begin{array}{ccccc} \alpha & 0 & 0 & 0 & 2\alpha {\mathbf x}_1 \end{array} \right) and {\mathbf y}_0' = \left(\begin{array}{ccccc} 0 & \alpha & 0 & 0 & 2\alpha {\mathbf x}_2 \end{array} \right) . Then

    \begin{align*} ({\mathbf y}_0, {\mathbf y}_0) & = \alpha^2 + (2\alpha)^2 ({\mathbf x}_1, {\mathbf x}_1) = 0, \\ ({\mathbf y}_0', {\mathbf y}_0') & = \alpha^2 + (2\alpha)^2 ({\mathbf x}_2, {\mathbf x}_2) = 0, \\ ({\mathbf y}_0, {\mathbf y}_0') & = \alpha ({\mathbf x}_1, {\mathbf x}_2) = 0. \end{align*}

    Now, for 1 \leq i \leq m , let {\mathbf y}_i = \left(\begin{array}{ccccc} u_i & v_i & u_i+v_i & 2u_i+v_i & {\mathbf r}_i \end{array} \right) . So, for 1 \leq j \leq m ,

    ({\mathbf y}_i, {\mathbf y}_j) = u_i u_j + v_i v_j + (u_i + v_i)(u_j + v_j) + (2u_i+v_i)(2u_j+v_j) +( {\mathbf r}_i, {\mathbf r}_j) = 0.

    Thus, \mathcal{C} is self-orthogonal and since \left| \mathcal{C} \right| = 9^2\left| \mathcal{C}_0 \right| = 3^{n+4} , \mathcal{C} is left self-dual.

    Define \widehat{\mathcal{C}_0} to be the span of the last m rows of \mathcal{G} , and for every y \in \mathit{E}_3 write

    T_y = (y, 0, 0, 0, 2y{\mathbf x}_1), \, \ \text{and} \, \ \, \ U_y = (0, y, 0, 0, 2y{\mathbf x}_2).

    The construction in Theorem 6 maybe demonstrated to be equivalent to

    \mathcal{C} = \dot\cup _{t, u \in \mathit{E}_3 \setminus S }(T_t + U_u +\widehat{\mathcal{C}_0}).

    Example 2. We construct a left self-dual code of length 8 derived from length 4. By Theorem 3, we have the left self-duall (4, 3^4, 3) code with generator matrix \mathcal{G}_1 given by

    \mathcal{G}_1 = \begin{pmatrix} a & 0 & a & a \\ 0 & a & a & e \\ \end{pmatrix}.

    Using Theorem 6 from \mathcal{G}_1 with \alpha = a , we get only one non-equivalent monomial left self-dual (8, 3^8, 3) code with generator matrix

    \mathcal{G}_{1, 1} = \left( \begin{array}{cccc|cccc} a & 0 & 0& 0 & e & e & 0& 0 \\ 0 & a & 0& 0& e & a & 0&0 \\ \hline a & a & e & 0 & a & 0 &a & a \\ a & e & 0 & e & 0 & a & a & e \end{array} \right) .

    Its Hamming weight enumerator is

    W_{1, 1}(x, y) = x^8 + 64x^5y^3 + 96x^4y^4 + 1024x^2y^6 + 3072xy^7 + 2304y^8.

    Repeating this process using \mathcal{G}_{1, 1} with {\mathbf x}_1 = (1, 1, 0, 0, 0, 0, 0, 0) , we get only three non-equivalent monomial left self-dual (12, 3^{12}, 3) codes with generator matrices

    \mathcal{G}_{1, 1, 1} = \left( \begin{array}{cccc|cccccccc} a & 0 & 0 & 0 & e & e & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & a & 0 & 0 & 0 & 0 & 0 & e & a & 0 & 0 & 0\\ \hline a& a & e& 0 & a & 0 & 0& 0 & e & e & 0& 0 \\ a& a & e& 0 & 0 & a & 0& 0& e & a & 0&0 \\ e& e& a& 0 & a & a & e & 0 & a & 0 &a & a \\ 0& e & e & a & a & e & 0 & e & 0 & a & a & e \end{array} \right),
    \mathcal{G}_{1, 1, 2} = \left( \begin{array}{cccc|cccccccc} a & 0 & 0 & 0 & e & e & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & a & 0 & 0 & a & e & a & a & a & 0 & 0 & 0\\ \hline a& 0 & a& a & a & 0 & 0& 0 & e & e & 0& 0 \\ a& e & 0& e & 0 & a & 0& 0& e & a & 0&0 \\ e& 0& e& e & a & a & e & 0 & a & 0 &a & a \\ 0 & 0 & 0 & 0 & a & e & 0 & e & 0 & a & a & e \end{array} \right),

    and

    \mathcal{G}_{1, 1, 3} = \left( \begin{array}{cccc|cccccccc} a & 0 & 0 & 0 & e & e & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & a & 0 & 0 & 0 & 0 & 0 & e & e & e & e & e\\ \hline a& a & e& 0 & a & 0 & 0& 0 & e & e & 0& 0 \\ a& 0 & a& a & 0 & a & 0& 0& e & a & 0&0 \\ e& 0& e& e & a & a & e & 0 & a & 0 &a & a \\ 0 & 0 & 0 & 0 & a & e & 0 & e & 0 & a & a & e \end{array} \right).

    Their Hamming weight enumerators are

    \begin{align*} W_{1, 1, 1}(x, y) = & x^{12} + 96x^9y^3 + 144x^8y^4 + 3072x^6y^6 + 9216x^5y^7 + 6912x^4y^8+32768x^3y^9\\ & +147456x^2y^{10}+ 221184xy^{11}+ 110592y^{12}, \\ W_{1, 1, 2}(x, y) = &x^{12} + 24x^9y^3 + 8x^8y^4+ 176x^7y^5+ 1112x^6y^6 + 4376x^5y^7 +15272x^4y^8 \\ & + 47776x^3y^9+132776x^2y^{10}+ 208544xy^{11}+ 121376y^{12} , \end{align*}

    and

    W_{1, 1, 3}(x, y) = x^{12} + 32x^9y^3 + 1248x^6y^6 + 5184x^5y^7 +14256x^4y^8+ 46976x^3y^9+134784x^2y^{10}
    +207360xy^{11}+ 121600y^{12},

    respectively.

    Corollary 10. The minimum Hamming weight of left self-dual codes over \mathit{E}_3 of length n is a multiple of 3 .

    Proof. Following Corollary 9, the minimum distance d(\mathcal{C}) of a left self-dual code \mathcal{C} is equal to d(\mathrm{res(\mathcal{C})}) . Thus, by [11, Lemma 1], self-dual codes over \mathbb{F}_3 of length n exist only if n is a multiple of 4 and a minimum weight is a multiple of 3 .

    In the following theorem, we will now describe the general approach that we will utilize in finding construction methods for right self-dual codes over \mathit{E}_3 .

    Theorem 7. Let \mathcal{C}_0 be a right self-dual code of length n over \mathit{E}_3 , with generator matrix \mathcal{G}_0 = ({\mathbf r}_i) , where r_i is the i -th row of \mathcal{G}_0 , for 1 \le i\le m . Then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \begin{pmatrix} f I_h & 0 \, \ ... \, \ 0 \\ 0 & \\ \vdots & \mathcal{G}_0 \\ 0 & \\ \end{pmatrix}

    is a a right self-dual code of length n+h .

    Proof. We can show that \mathcal{G} generates a self-orthogonal code \mathcal{C} in a similar way as given in Theorem 6.

    Now, according to \left| \mathcal{C} \right| = 3^h\left| \mathcal{C}_0 \right| = 3^{n+h} , \mathcal{C} is self-dual.

    Corollary 11. Every one-sided self-dual code is also self-dual.

    Proof. Let \mathcal{C} be a left self-dual in order to demonstrate that every left self-dual is self-dual. \mathrm{res(\mathcal{C})} = \mathrm{res(\mathcal{C})^{\bot}} and \mathrm{tor(\mathcal{C})} = \mathrm{res(\mathcal{C})^{\bot}} are the results of Theorem 3. Hence, \mathcal{C} is a self-dual code according to Theorem 4.

    To prove that every right self-dual is self-dual, let \mathcal{C} be right self-dual. Also, by use Theorem 3, we see that \mathcal{C} = a \left\{ 0 \right\}+ f \mathbb{F}_3^n. Observe that \mathrm{tor(\mathcal{C})} = \mathrm{res(\mathcal{C})}^\bot . Then, by Theorem 4, \mathcal{C} is a self-dual code.

    Example 3. The linear code of length 4 with the two generators

    \mathcal{G}_2 = \begin{pmatrix} a & 0 & a& a\\ 0 & a& a& e \end{pmatrix}

    is a self-dual and left self-dual, but not right self-dual.

    Example 4. The linear code of length 3 defined by

    \mathcal{C} = \begin{Bmatrix} 000, f00, 0f0, 00f, g00, 0g0, 00g, ff0, f0f, 0ff, gg0, g0g, 0gg, gfg, \\ ggf, fgg, ffg, fgf, gff, fg0, 0gf, f0g, gf0, 0gf, g0f, fff, ggg \end{Bmatrix}

    is a self-dual and right self-dual code, but not left self-dual.

    Remark 3. We note that a similar construction method in Theorems 6 and 7 can be applied to self-dual codes over \mathit{E}_3 .

    The following result constructs a self-dual code of length n+3 from a self-dual code of length n .

    Theorem 8. Let \mathcal{C}_{0} be a self-dual code over \mathit{E}_3 of length n with generator matrix \mathcal{G}_{0} = ({\mathbf r}_{i}) where {\mathbf r}_{i} is the i th row of \mathcal{G}_{0} , for i = 1, 2, \ldots, m . Let {\mathbf x}\in\mathbb{F}_{3}^{n} and \alpha, \beta, \gamma \in \mathit{E}_3 , such that \alpha+\beta+\gamma = 0 . Let \sigma\in J_3 , non-zero element. Then the code \mathcal{C} with the following generator matrix

    \mathcal{G} = \left(\begin{array}{ccc|c} \alpha & \beta & 0 & \gamma{\mathbf x}\\ 0 & \sigma & 0& 2\sigma {\mathbf x}\\ \hline ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & ({\mathbf x}, {\mathbf r}_{1}) & {\mathbf r}_{1}\\ \vdots & \vdots & \vdots & \vdots\\ ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & ({\mathbf x}, {\mathbf r}_{m}) & {\mathbf r}_{m} \end{array}\right)

    is a self-dual code of length n+3 if:

    (1) ({\mathbf x}, {\mathbf x}) = 1 , and (\alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3) ; or

    (2) ({\mathbf x}, {\mathbf x}) = -1 , and (\alpha = 0, \, \ \beta \in \mathit{E}_3 \setminus J_3, \, \ \gamma = 2\beta) .

    Proof. We first show that \mathcal{C} is self-orthogonal. Let {\mathbf y}_{0} = \left(\begin{array}{cccc} \alpha & \beta & 0 & \gamma{\mathbf x}\end{array}\right) , the first row of \mathcal{G} , and {\mathbf y}_{0}' = \left(\begin{array}{cccc} 0 & \sigma & 0 & 2\sigma {\mathbf x}\end{array}\right) , the second row of \mathcal{G} . For 1 \le i \le m , let {\mathbf y}_{i} = \left(\begin{array}{cccc} ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & ({\mathbf x}, {\mathbf r}_{i}) & {\mathbf r}_{i}\end{array}\right) . Then,

    (i) If ({\mathbf x}, {\mathbf x}) = 1 and (\alpha, \beta, \gamma \in \mathit{E}_3 \setminus J_3) , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \alpha^{2}+\beta^{2}+\gamma^{2}({\mathbf x}, {\mathbf x}) = (\alpha^{2}+\beta^{2}+\gamma^{2}) = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{0}') & = \sigma^{2}+(2\sigma)^{2}({\mathbf x}, {\mathbf x}) = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{0}') & = \beta\sigma+\gamma(2\sigma)({\mathbf x}, {\mathbf x}) = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{0}) & = \sigma \beta+2\sigma\gamma({\mathbf x}, {\mathbf x}) = \sigma+2\sigma = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \alpha({\mathbf x}, {\mathbf r}_{i})+\beta({\mathbf x}, {\mathbf r}_{i})+\gamma({\mathbf x}, {\mathbf r}_{i}) = (\alpha+\beta+\gamma) = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{i}) & = (\sigma+2\sigma)({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    (ii) If ({\mathbf x}, {\mathbf x}) = -1 and (\alpha = 0, \, \ \beta \in \mathit{E}_3 \setminus J_3, \, \ \gamma = 2\beta) , then

    \begin{align*} ({\mathbf y}_{0}, {\mathbf y}_{0}) & = \beta^{2}+(2\beta)^{2}({\mathbf x}, {\mathbf x}) = \beta^{2}-\beta^{2} = 0, \\ ({\mathbf y}_{0}', {\mathbf y}_{0}) & = \sigma \beta+(2\sigma) (2\beta)({\mathbf x}, {\mathbf x}) = \sigma \beta-\sigma \beta = 0, \\ ({\mathbf y}_{0}, {\mathbf y}_{i}) & = \beta({\mathbf x}, {\mathbf r}_{i})+2\beta({\mathbf x}, {\mathbf r}_{i}) = 3\beta({\mathbf x}, {\mathbf r}_{i}) = 0, \\ ({\mathbf y}_{i}, {\mathbf y}_{j}) & = 3({\mathbf x}, {\mathbf r}_{i})({\mathbf x}, {\mathbf r}_{j})+({\mathbf r}_{i}, {\mathbf r}_{j}) = 0, \end{align*}

    for all i, j = 1, 2, \ldots, m .

    In both cases, we see that {\mathcal{C}} is a self-orthogonal code. Since |\mathcal{C}| = 9^13^1|\mathcal{C}_0| = 3^{n+3} , \mathcal{C} is a self-dual code of length n+3 .

    Example 5. We construct self-dual codes of length 7 derived from length 4. By Theorem 4, we have the self-dual (4, 3^4, 1) code with generator matrix \mathcal{G}_3 = \begin{pmatrix} a & 0 & a & a\\ 0 &f & 0 & 0\\ 0 & 0 & f & g \\ \end{pmatrix}.

    Using Theorem 8 from \mathcal{G}_3 , we get five non-equivalent monomial self-dual codes with generator matrices:

    \left( \begin{array}{ccc|cccc} a & a & 0 & 0 & a& 0 & 0\\ 0 & f & 0 & 0 & g& 0 & 0\\ \hline 0 & 0 & 0 & a & 0& a & a\\ f& f & f & 0 & f& 0 & 0\\ 0& 0 & 0 & 0 & 0& f & g\\ \end{array}\right) , \, \, \ \left( \begin{array}{ccc|cccc} a & a & 0 & a & e& e & a\\ 0 & f & 0 & g & f& f & g\\ \hline a & a & a & a & 0& a & a\\ g& g & g & 0 & f& 0 & 0\\ f& f & f & 0 & 0& f & g\\ \end{array}\right), \, \ \, \ \, \ \left( \begin{array}{ccc|cccc} 0 & a & 0 & e & e& 0 &0\\ 0 & g & 0& f & f& 0 & 0\\ \hline a & a & a & a & 0& a & a\\ f& f & f & 0 & f& 0 & 0\\ 0 & 0 & 0 & 0 & 0& f & g\\ \end{array}\right),
    \, \ \, \ \left( \begin{array}{ccc|cccc} 0 & a & 0 & e & 0& e &0\\ 0 & g & 0& f & 0& f & 0\\ \hline e & e & e & a & 0& a & a\\ 0 & 0 & 0 & 0 & f& 0 & 0\\ f& f & f & 0 & 0& f & g\\ \end{array}\right), \; \text{and} \, \ \left( \begin{array}{ccc|cccc} 0 & a & 0 & 0 & 0& e & a\\ 0 & g & 0& 0 & 0& f & g\\ \hline 0 & 0 & 0 & a & 0& a & a\\ 0 & 0 & 0 & 0 & f& 0 & 0\\ g& g & g & 0 & 0& f & g\\ \end{array}\right).

    Their Hamming weight enumerators are

    \begin{align*} W_1(x, y)& = x^7 + 2x^6y+ 12x^5y^2 + 64x^4y^3 + 116x^3y^4 + 312x^2y^5 + 880 xy^6+800y^7 , \\ W_2(x, y) & = x^7 + 12x^5y^2 + 40x^4y^3 + 90x^3y^4 + 240x^2y^5 + 724 xy^6+1080y^7 , \\ W_3(x, y) & = x^7 + 2x^5y^2 + 24x^4y^3 + 38x^3y^4 + 52x^2y^5 + 236 xy^6+376y^7 , \\ W_4(x, y) & = x^7 +2x^6y+ 6x^5y^2 + 40x^4y^3 + 56x^3y^4 + 48 x^2y^5 + 256 xy^6+ 320y^7 , \end{align*}

    and

    W_5(x, y) = x^7 + 2x^6y+ 34x^4y^3 + 122x^3y^4 + 162x^2y^5 + 208xy^6+200y^7 ,

    respectively.

    Theorem 9. Two self-dual \mathit{E}_3 -codes are monomially equivalent if and only if their residue codes are also equivalent.

    Proof. Let \mathcal{C}_1 and \mathcal{C}_2 be two monomially equivalent codes over \mathit{E}_3 , then their residue codes are also equivalent as a \ \mathrm{res(\mathcal{C}_1)} \subseteq \mathcal{C}_1 and a \ \mathrm{res(\mathcal{C}_2)} \subseteq \mathcal{C}_2 .

    Conversely, Let \mathcal{C}_1 and \mathcal{C}_2 be two self-dual \mathit{E}_3 -codes, and \mathrm{res(\mathcal{C}_1)} and \mathrm{res(\mathcal{C}_2)} monomially equivalent codes. Then, there is a monomial matrix M sends a code res(\mathcal{C}_{1}) into the equivalent code such that

    \mathrm{res(\mathcal{C}_2)} = \mathrm{res(\mathcal{C}_{1})} M = \left\{ uM:u \in \mathrm{res(\mathcal{C}_{1})} \right\}.

    The set of all monomials such that \mathrm{res(\mathcal{C}_2)} = \mathrm{res(\mathcal{C}_{1})} forms the automorphism group G(\mathrm{res(\mathcal{C}_{1})}) of the code \mathrm{res(\mathcal{C}_{1})} , and as \mathrm{res(\mathcal{C}_2)^\bot} = \mathrm{res(\mathcal{C}_{1})^\bot} M.

    Thus, from Theorem 4, we have

    \begin{equation} \mathcal{C}_2 = a \ \mathrm{res(\mathcal{C}_2)}+ f \ \mathrm{res(\mathcal{C}_2)^\bot} = a \ \mathrm{res(\mathcal{C}_{1})} M+f \ \mathrm{res(\mathcal{C}_1)^\bot} M = \mathcal{C}_1M. \end{equation} (3.1)

    By Eq (3.1), we have \mathcal{C}_2 = \mathcal{C}_{1} M , proving that \mathcal{C}_1 and \mathcal{C}_2 are monomially equivalent.

    Remark 4. Every one-sided self-dual code is also a self-dual code, but not conversely as the next example shows.

    Example 6. The linear code with the three generators \mathcal{G} = \begin{pmatrix} a & 0 & a & a\\ 0 & f & 0 & 0\\ 0 & 0 & f & g \end{pmatrix}, is a self-dual code, but neither left- nor right-self-dual.

    In this section, we use the multilevel constructs in Theorems 2–4 to categorize self-orthogonal, (one-sided) self-dual, and self-dual \mathit{E}_3 -codes of length n < 8 with residue dimension k_1 = 0, 1, 2 . All the computer calculations in this section were performed in Magma [8].

    There is one right self-dual code over \mathit{E}_3 of type \left\{ 0, 1 \right\} , with generator matrix in Table 2.

    Table 2.  RSD codes over \mathit{E}_3 of type \left\{ 0, 1 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    (f) 2 [1, 2]

     | Show Table
    DownLoad: CSV

    There is one right self-dual code over \mathit{E}_3 of type \left\{ 0, 2 \right\} , with generator matrix in Table 3.

    Table 3.  RSD codes over \mathit{E}_3 of type \left\{ 0, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0\\0&f \end{pmatrix} 8 [1, 4, 4]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 2 \right\} , there are three distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 4.

    Table 4.  SO codes over \mathit{E}_3 of type \left\{ 0, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0\\0&f&f \end{pmatrix} 8 [1, 2, 2, 4] \begin{pmatrix} f&0&f\\0&f&f \end{pmatrix} 12 [1, 0, 6, 2]
    \begin{pmatrix} f&0&0\\0&f&f \end{pmatrix} 16 [1, 4, 4, 0]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 3 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 5.

    Table 5.  RSD codes over \mathit{E}_3 of type \left\{ 0, 3 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0\\0&f&0\\0&0&f \end{pmatrix} 48 [1, 6, 12, 8]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 0 \right\} , there are two distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 6.

    Table 6.  SO codes over \mathit{E}_3 of type \left\{ 1, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&a \end{pmatrix} 12 [1, 0, 0, 8] \begin{pmatrix} a&b&h \end{pmatrix} 6 [1, 0, 0, 8]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 1 \right\} , there is one distinct self-dual code over \mathit{E}_3 , with generator matrix in Table 7.

    Table 7.  SD codes over \mathit{E}_3 of type \left\{ 1, 1 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&a\\0&g&f\ \end{pmatrix} 12 [1, 0, 6, 20]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 4 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 8.

    Table 8.  RSD codes over \mathit{E}_3 of type \left\{ 0, 4 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0\\0&f&0&0\\0&0&f&0\\0&0&0&f \end{pmatrix} 96 [1, 8, 24, 32, 16]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 0 \right\} , there are four distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 9.

    Table 9.  SO codes over \mathit{E}_3 of type \left\{ 1, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a \end{pmatrix} 24 [1, 0, 0, 8, 0] \begin{pmatrix} a&0&b&h \end{pmatrix} 12 [1, 0, 0, 8, 0]
    \begin{pmatrix} a&f&a&a \end{pmatrix} 12 [1, 0, 0, 2, 6] \begin{pmatrix} a&f&b&h \end{pmatrix} 6 [1, 0, 0, 2, 6]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 1 \right\} , there are six distinct self-orthogonal codes over \mathit{E}_3 , with generator matrices in Table 10.

    Table 10.  SO codes over \mathit{E}_3 of type \left\{ 1, 1 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a\\0&f&0&0 \end{pmatrix} 24 [1, 2, 0, 8, 16] \begin{pmatrix} a&0&b&h\\0&f&0&0 \end{pmatrix} 12 [1, 2, 0, 8, 16]
    \begin{pmatrix} a&0&a&a\\0&f&f&g \end{pmatrix} 12 [1, 0, 0, 14, 12] \begin{pmatrix} a&0&b&h\\0&f&f&g \end{pmatrix} 6 [1, 0, 0, 14, 12]
    \begin{pmatrix} a&0&a&a\\0&0&f&g \end{pmatrix} 24 [1, 0, 6, 20, 0] \begin{pmatrix} a&f&a&a\\f&0&0&g \end{pmatrix} 12 [1, 0, 6, 2, 18]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 2 \right\} , there is only one distinct self-dual codes over \mathit{E}_3 , with generator matrix in Table 11.

    Table 11.  SD codes over \mathit{E}_3 of type \left\{ 1, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a\\0&b&0&0\\0&0&b&d \end{pmatrix} 24 [1, 2, 6, 32, 40]

     | Show Table
    DownLoad: CSV

    For type \left\{ 2, 0 \right\} , there is only one left self-dual code over \mathit{E}_3 , with generator matrix in Table 12.

    Table 12.  LSD codes over \mathit{E}_3 of type \left\{ 2, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&a&a\\0&a&a&e \end{pmatrix} 48 [1, 0, 0, 32, 48]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 5 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 13.

    Table 13.  RSD codes over \mathit{E}_3 of type \left\{ 0, 5 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0&0\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&0\\0&0&0&0&f \end{pmatrix} 3840 [1, 10, 40, 80, 80, 32]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 0 \right\} , there are six distinct self-orthogonal codes, with generator matrices in Table 14.

    Table 14.  SO codes over \mathit{E}_3 of type \left\{ 1, 0 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&0&a&a \end{pmatrix} 96 [1, 0, 0, 8, 0, 0] \begin{pmatrix} a&0&0&b&h \end{pmatrix} 48 [1, 0, 0, 8, 0, 0]
    \begin{pmatrix} a&f&0&a&a \end{pmatrix} 24 [1, 0, 0, 2, 6, 0] \begin{pmatrix} a&f&0&b&h \end{pmatrix} 12 [1, 0, 0, 2, 6, 0]
    \begin{pmatrix} a&f&f&a&a \end{pmatrix} 24 [1, 0, 0, 2, 0, 6] \begin{pmatrix} a&f&f&b&h \end{pmatrix} 12 [1, 0, 0, 2, 0, 6]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 2 \right\} , there are ten distinct self-orthogonal codes, with generator matrices in Table 15.

    Table 15.  SO codes over \mathit{E}_3 of type \left\{ 1, 2 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0 \end{pmatrix} 96 [1, 4, 4, 8, 32, 32] \begin{pmatrix} a&0&0&b&h\\0&f&0&0&0\\0&0&f&0&0 \end{pmatrix} 48 [1, 4, 4, 8, 32, 32]
    \begin{pmatrix} a&0&0&a&a\\0&f&f&0&0\\0&0&0&f&g \end{pmatrix} 48 [1, 0, 8, 20, 12, 40] \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&f&g \end{pmatrix} 24 [1, 2, 0, 14, 40, 24]
    \begin{pmatrix} a&0&0&b&h\\0&f&f&0&0\\0&0&0&f&g \end{pmatrix} 12 [1, 2, 0, 14, 40, 24] \begin{pmatrix} a&0&0&a&a\\0&f&f&0&0\\0&0&f&f&g \end{pmatrix} 24 [1, 0, 2, 20, 30, 28]
    \begin{pmatrix} a&0&0&b&h\\0&f&f&0&0\\0&0&f&f&g \end{pmatrix} 12 [1, 0, 2, 20, 30, 28] \begin{pmatrix} a&0&0&a&a\\0&0&f&0&0\\0&0&0&f&g \end{pmatrix} 48 [1, 2, 6, 32, 40, 0]
    \begin{pmatrix} a&f&f&a&a\\0&0&f&0&0\\0&0&0&g&f \end{pmatrix} 24 [1, 2, 6, 14, 22, 36] \begin{pmatrix} a&f&g&a&a\\g&0&0&0&f\\f&0&0&0&g \end{pmatrix} 24 [1, 0, 6, 2, 18, 0]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 3 \right\} , there is only one distinct self-dual codes over \mathit{E}_3 , with generator matrix in Table 16.

    Table 16.  SD codes over \mathit{E}_3 of type \left\{ 1, 3 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&g \end{pmatrix} 96 [1, 4, 10, 44, 104, 80]

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 6 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 17.

    Table 17.  RSD codes over \mathit{E}_3 of type \left\{ 0, 6 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0&0&0\\0&f&0&0&0&0\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\0&0&0&0&0&f \end{pmatrix} 46080 [1, 6, 12, 16, 48, 96, 64]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 3 \right\} , there are 13 distinct self-orthogonal codes, with generator matrices in Table 18.

    Table 18.  SO codes over \mathit{E}_3 of type \left\{ 1, 3 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&0&0&0&a\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 576 \begin{matrix} [1, 6, 12, 16, 48, 96, 64]\end{matrix} \begin{pmatrix} a&b&0&0&0&h\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 288 \begin{matrix} [1, 6, 12, 16, 48, 96, 64] \end{matrix}
    \begin{pmatrix} a&a&0&0&0&a\\f&0&f&0&0&g\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 96 \begin{matrix} [1, 4, 4, 14, 68,104, 48]\end{matrix} \begin{pmatrix} a&b&0&0&0&h\\f&0&f&0&0&g\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 48 \begin{matrix} [1, 4, 4, 14, 68,104, 48]\end{matrix}
    \begin{pmatrix} a&a&0&0&0&a\\f&0&0&0&0&g\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 192 \begin{matrix} [1, 4, 10, 44, 104, 80, 0]\end{matrix} \begin{pmatrix} a&a&0&0&0&a\\f&0&f&0&0&g\\f&0&0&f&0&g\\f&0&0&0&f&g \end{pmatrix} 72 \begin{matrix} [1, 0, 6, 28, 54,102, 52] \end{matrix}
    \begin{pmatrix} a&b&0&0&0&h\\f&0&f&0&0&g\\f&0&0&f&0&g\\f&0&0&0&f&g \end{pmatrix} 36 \begin{matrix} [1, 0, 6, 28, 54,102, 52] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\f&0&0&g&0&0\\f&0&0&g&0&0\\f&0&0&g&0&0 \end{pmatrix} 96 \begin{matrix} [1, 0, 2, 0, 0, 4, 20] \end{matrix}
    \begin{pmatrix} a&b&h&a&b&h\\f&0&0&g&0&0\\f&0&0&g&0&0\\f&0&0&g&0&0 \end{pmatrix} 16 \begin{matrix} [1, 0, 2, 0, 0, 4, 20] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\f&f&0&g&g&0\\f&f&0&g&g&0\\f&f&0&g&g&0 \end{pmatrix} 96 \begin{matrix} [1, 0, 0, 0, 6, 0, 20] \end{matrix}
    \begin{pmatrix} a&b&h&a&b&h\\f&f&0&g&g&0\\f&f&0&g&g&0\\f&f&0&g&g&0 \end{pmatrix} 8 \begin{matrix} [1, 0, 0, 0, 6, 0, 20] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\g&f&0&0&0&0\\g&0&f&0&0&0\\g&0&0&f&0&0 \end{pmatrix} 96 \begin{matrix} [1, 0, 12, 16, 18, 24,172] \end{matrix}
    \begin{pmatrix} a&b&h&a&b&h\\g&f&0&0&0&0\\g&0&f&0&0&0\\g&0&0&f&0&0 \end{pmatrix} 48 \begin{matrix} [1, 0, 12, 16, 18, 24,172] \end{matrix}

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 4 \right\} , there are two distinct self-dual codes over \mathit{E}_3 , with generator matrices in Table 19.

    Table 19.  SD codes over \mathit{E}_3 of type \left\{ 1, 4 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&0&0&0&a\\0&f&0&0&0&g\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0 \end{pmatrix} 576 \begin{matrix} [1, 6, 18, 64, 192,288,160] \end{matrix} \begin{pmatrix} a&a&a&a&a&a\\0&f&0&0&0&g\\0&0&f&0&0&g\\0&0&0&f&0&g\\0&0&0&0&f&g \end{pmatrix} 1440 \begin{matrix} [1, 0, 30, 40, 90, 60,508] \end{matrix}

     | Show Table
    DownLoad: CSV

    For type \left\{ 0, 7 \right\} , there is one right self-dual code over \mathit{E}_3 , with generator matrix in Table 20.

    Table 20.  RSD codes over \mathit{E}_3 of type \left\{ 0, 7 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} f&0&0&0&0&0&0\\0&f&0&0&0&0&0\\0&0&f&0&0&0&0\\0&0&0&f&0&0&0\\0&0&0&0&f&0&0\\0&0&0&0&0&f&0\\0&0&0&0&0&0&f \end{pmatrix} 604800 [1, 14, 84, 280, 560, 672, 448, 128]

     | Show Table
    DownLoad: CSV

    For type \left\{ 1, 5 \right\} , there are two distinct self-dual codes over \mathit{E}_3 , with generator matrices in Table 21.

    Table 21.  SD codes over \mathit{E}_3 of type \left\{ 1, 5 \right\} .
    Generator matrix \left| Aut(\mathcal{C}) \right| Weight distribution
    \begin{pmatrix} a&a&0&a&a&a&a\\0&f&0&0&0&0&g\\0&0&f&0&0&0&0\\0&0&0&f&0&0&g\\0&0&0&0&f&0&g\\0&0&0&0&0&f&g \end{pmatrix} 2880 [1, 2, 30, 100, 170, 240, 628, 1016]
    \begin{pmatrix} a&a&0&0&0&0&a\\0&f&0&0&0&0&g\\0&0&f&0&0&0&0\\0&0&0&f&0&0&0\\0&0&0&0&f&0&0\\0&0&0&0&0&f&0 \end{pmatrix} 4608 \begin{matrix}[1, 8, 30, 100, 320, 672, 736, 320]\end{matrix}

     | Show Table
    DownLoad: CSV

    According to the mass formula in subsection 2.5, we enumerate all equivalent codes obtained under the action of the monomial group, and illustrate how the mass formula can be used in the classification of \mathit{E}_3 -codes, that is, we find representatives for the equivalence classes of \mathit{E}_3 -codes for each length and type. The following examples illustrate our results.

    Example 7. Let \mathcal{C} be the set of self-orthogonal codes over \mathit{E}_3 of length 3 and type \left\{ 1, 0 \right\} given by the following generator matrices:

    \left( \begin{pmatrix} a & a& a \end{pmatrix}, \begin{pmatrix} a & b& h \end{pmatrix} \right).

    The codes in \mathcal{C} are inequivalent and they have an automorphism group of order 12 and 6 respectively. Therefore, from Corollary 1,

    \sum\limits_{1}^2\frac{1}{\left| Aut(\mathcal{C}) \right|} = \frac{1}{12}+\frac{1}{6} = \frac{1}{4} = \frac{\mathcal{N}_{SO}(n, k_1, k_2)}{2^{n}n!} = \frac{4\times 3\times 1}{6\times 8} = \frac{1}{4}.

    It demonstrates that, up to monomial equivalency, there exist precisely two self-orthogonal codes.

    Example 8. Let \mathcal{C} be the set of left self-dual codes over \mathit{E}_3 of length 4 and type \left\{ 2, 0 \right\} given by the following generator matrix: \begin{pmatrix} a & 0 & a & a\\ 0 &a & a & e\\ \end{pmatrix}.

    The code in \mathcal{C} has an automorphism group of order 48. Therefore, by Corollary 4,

    \sum\limits_{1}^1\frac{1}{\left| Aut(\mathcal{C}) \right|} = \frac{1}{48} = \frac{\varphi_{n, \frac{n}{2}}}{2^{n}n!} = \frac{8\times 1\times 1}{24\times 16} = \frac{1}{48}.

    It demonstrates that, up to monomial equivalency, there exist only one left self-dual code.

    Example 9. Let \mathcal{C} be the set of self-dual codes over \mathit{E}_3 of length 7 and type \left\{ 1, 5 \right\} given by the following generator matrices:

    \left( \begin{pmatrix} a &a & 0& 0 & 0& 0& a\\ 0 &f & 0 & 0& 0&0 &g\\ 0 &0 & f & 0& 0&0 &0\\ 0 &0 & 0 & f& 0&0& 0\\ 0 &0 & 0& 0 & f&0& 0\\ 0 &0 & 0& 0 & 0&f& 0\\ \end{pmatrix}, \begin{pmatrix} a &a & 0& a & a& a& a\\ 0 &f & 0 & 0& 0&0 &g\\ 0 &0 & f & 0& 0&0 &0\\ 0 &0 & 0 & f& 0&0& g\\ 0 &0 & 0& 0 & f&0& g\\ 0 &0 & 0& 0 & 0&f& g\\ \end{pmatrix} \right).

    The codes in \mathcal{C} are inequivalent and they have an automorphism group of order 4608 and 2880 respectively. Therefore, from Corollary 2, we have

    \sum\limits_{1}^2\frac{1}{\left| Aut(\mathcal{C}) \right|} = \frac{1}{4608}+\frac{1}{2880} = 0.000564 = \frac{\varphi_{n, k_1}}{2^{7}7!} = \frac{364 }{128\times 5040} = 0.000564,

    which shows that there are exactly two self-dual codes, up to monomial equivalence.

    Next, we use our build-up construction methods mentioned in Sections 3.1–3.3 to obtain SO, RSD, LSD, and SD codes over \mathit{E}_3 . It is possible to discover several self-dual codes of suitable lengths in a fairly effective manner, as demonstrated by our computation. The partial classification results are summarized in Table 22 below.

    Table 22.  Classification of SO, RSD, LSD, and SD codes using the building method in Section 3.
    n Code Construction Length of constructed code {\mathbf x} d(\mathcal{C}) Weight distribution
    1 (f) Theorem 5 4 (1) 1 [1, 2, 0, 8, 16]
    Theorem 7 5 (0) 1 [1, 10, 40, 80, 80, 32]
    2 \begin{pmatrix} f&0\\0&f \end{pmatrix} Theorem 5 5 (10) 1 [1, 4, 4, 8, 32, 32]
    5 (11) 2 [1, 0, 8, 20, 12, 40]
    Theorem 7 6 (00) 1 [1, 6, 12, 16, 48, 96, 64]
    3 \begin{pmatrix} f&0&0\\0&f&0\\0&0&f \end{pmatrix} Theorem 5 6 (001) 1 \begin{matrix} [1,12,60,160,240,192,64] \end{matrix}
    Theorem 7 7 (000) 1 \begin{matrix} [1,14,84,280,560,672,448,128]\end{matrix}
    \begin{pmatrix} a&a&a\\0&f&g \end{pmatrix} Theorem 5 6 (020) 2 \begin{matrix} [1,0,2,20,30,28,162] \end{matrix}
    (002) 3 \begin{matrix} [1,0,0,16,0,0,64] \end{matrix}
    (111) 2 \begin{matrix} [1,0,14,20,48,160,0] \end{matrix}
    (221) 2 \begin{matrix} [1,0,10,0,24,68,140] \end{matrix}
    (110) 2 \begin{matrix} [1,0,6,28,0,48,160] \end{matrix}
    (210) 2 \begin{matrix} [1,0,2,32,48,64,96] \end{matrix}
    Theorem 6 7 (110)(120) 2 \begin{matrix} [1,0,6,52,48,192,928,960] \end{matrix}
    Theorem 7 6 (000) 1 \begin{matrix} [1,6,18,64,192,288,160] \end{matrix}
    Theorem 8 6 (100) 2 \begin{matrix} [1,0,12,40,36,240,400] \end{matrix}
    (110) 1 \begin{matrix} [1,6,12,64,30,150,466] \end{matrix}
    4 \begin{pmatrix} f&0&0&0\\0&f&0&0\\0&0&f&0\\0&0&0&f \end{pmatrix} Theorem 5 7 (0100) 2 \begin{matrix} [1,8,24,40,80,192,256,128] \end{matrix}
    (1111) 1 \begin{matrix} [1,2,12,40,50,60,220,344] \end{matrix}
    (1100) 1 \begin{matrix} [1,4,12,52,124,168,208,160] \end{matrix}
    Theorem 7 7 (0000) 1 \begin{matrix} [1,14,84,280,560,672,448,128] \end{matrix}
    \begin{pmatrix} a&0&a&a\\0&f&0&0\\0&0&f&g \end{pmatrix} Theorem 5 7 (1000) 1 \begin{matrix} [1,2,6,40,56,48,256,320] \end{matrix}
    (2211) 2 \begin{matrix} [1,0,2,16,34,76,232,368] \end{matrix}
    (1212) 2 \begin{matrix} [1,0,2,24,38,52,236,376] \end{matrix}
    (1010) 1 \begin{matrix} [1,2,6,40,56,48,256,320] \end{matrix}
    Theorem 6 8 (1100), (1200) 1 \begin{matrix} [1,2,6,64,152,288,1312,2816,1920] \end{matrix}
    (1010), (0102) 2 \begin{matrix} [1,0,10,40,192,412,1084,2850,1972] \end{matrix}
    (2001), (0110) 2 \begin{matrix} [1,0,2,40,78,164,1012,2784,2480] \end{matrix}
    4 \begin{pmatrix} a&0&a&a\\0&f&0&0\\0&0&f&g\\\end{pmatrix} Theorem 3.7 7 (1000) 1 \begin{matrix} [1,2,12,64,116,312,880,800] \end{matrix}
    (1221) 2 \begin{matrix} [1,0,12,40,90,240,724,1080] \end{matrix}
    (1010) 1 \begin{matrix} [1,2,6,40,56,48,256,320] \end{matrix}
    (1100) 2 \begin{matrix} [1,0,2,24,38,52,236,376] \end{matrix}
    \begin{pmatrix} a&0&a&a\\0&a&a&e\\\end{pmatrix} Theorem 5 7 (1100) 3 \begin{matrix} [1,0,0,40,48,0,256,384] \end{matrix}
    (1212) 3 \begin{matrix} [1,0,0,16,24,72,280,336] \end{matrix}
    Theorem 3.7 7 (0001) 1 \begin{matrix} [1,6,12,40,240,672,832,384] \end{matrix}
    (1111) 2 \begin{matrix} [1,0,6,52,48,192,928,960]\end{matrix}
    Theorem 3.5 8 (1100), (0011) 3 \begin{matrix} [1,0,0,34,96,0,1024,3072,2304]\end{matrix}
    5 \begin{pmatrix} f&0&0&0&0\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&0\\0&0&0&0&f\\\end{pmatrix} Theorem 3.4 8 (10000) 1 \begin{matrix} [1,10,40,88,160,352,640,640,256] \end{matrix}
    (11110) 1 \begin{matrix} [1,4,16,64,130,160,340,784,688] \end{matrix}
    Theorem 3.6 8 (00000) 1 \begin{matrix} [1,16,112,448,1120,1792,1792,1024,256] \end{matrix}
    \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&g\\\end{pmatrix} Theorem 3.4 8 (11110) 2 \begin{matrix} [1,0,6,16,60,36,388,696,984] \end{matrix}
    (10000) 1 \begin{matrix} [1,4,10,52,136,160,352,832,640] \end{matrix}
    (22000) 1 \begin{matrix} [1,2,2,28,86,128,340,848,752] \end{matrix}
    (00011) 1 \begin{matrix} [1,4,10,52,136,160,352,832,640] \end{matrix}
    Theorem 3.5 9 (01100), (01200) 1 \begin{matrix} [1,4,10,76,280,592,1888,5440,7552,3840] \end{matrix}
    (01100), (00011) 2 \begin{matrix} [1,0,18,60,108,720,1416,2160,7200,8000] \end{matrix}
    5 \begin{pmatrix} a&0&0&a&a\\0&f&0&0&0\\0&0&f&0&0\\0&0&0&f&g\\\end{pmatrix} Theorem 3.5 9 (11112), (10001) 1 \begin{matrix} [1,2,2,44,158,320,1340,4808,8048,4960] \end{matrix}
    Theorem 3.7 8 (11110) 2 \begin{matrix} [1,0,8,64,120,176,880,2688,2624] \end{matrix}
    (10000) 1 \begin{matrix} [1,4,16,88,244,544,1504,2560,1600] \end{matrix}
    (00011) 1 \begin{matrix} [1,4,10,44,116,176,396,816,624] \end{matrix}
    (11111) 2 \begin{matrix} [1,0,14,40,60,320,472,480,800] \end{matrix}
    (00021) 1 \begin{matrix} [1,4,6,40,148,384,544,640,384] \end{matrix}
    6 \begin{pmatrix} f&0&0&0&0&0\\0&f&0&0&0&0\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\0&0&0&0&0&f \end{pmatrix} Theorem 3.4 9 (100000) 1 \begin{matrix} [1,12,60,168,336,672,1344,1920,1536,512] \end{matrix}
    (111100) 1 \begin{matrix} [1,6,24,96,258,420,660,1464,2256,1376] \end{matrix}
    (110000) 1 \begin{matrix} [1,8,32,116,380,872,1376,1664,1472,640] \end{matrix}
    Theorem 3.6 9 (000000) 1 \begin{matrix} [1,18,144,672,2016,4032,5376,4608,2304,512] \end{matrix}
    \begin{pmatrix} a&a&0&0&0&a\\0&f&0&0&0&g\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\\end{pmatrix} Theorem 3.4 9 (111100) 1 \begin{matrix} [1,2,6,28,92,156,460,1472,2376,1968] \end{matrix}
    (100000) 1 \begin{matrix} [1,6,14,32,120,368,908,1800,2192,1120] \end{matrix}
    (001111) 2 \begin{matrix} [1,0,10,30,90,136,276,1296,1888,2834] \end{matrix}
    (000022) 1 \begin{matrix} [1,4,6,30,136,324,654,1462,2352,1592] \end{matrix}
    6 \begin{pmatrix} a&a&0&0&0&a\\0&f&0&0&0&g\\0&0&f&0&0&0\\0&0&0&f&0&0\\0&0&0&0&f&0\\\end{pmatrix} Theorem 3.4 9 (111011) 1 \begin{matrix} [1,2,14,68,140,440,1112,1424,1760,1600] \end{matrix}
    (110000) 1 \begin{matrix} [1,6,18,72,240,432,672,1536,2304,1280] \end{matrix}
    Theorem 3.5 10 \begin{matrix}(110000), (120000)\end{matrix} 1 \begin{matrix} [1,6,18,96,432,1152,3072,9216,18432,18944,7680] \end{matrix}
    \begin{matrix}(110000), (001100)\end{matrix} 1 \begin{matrix} [1,2,18,96,228,936,2856,4992,11520,22400,16000] \end{matrix}
    \begin{matrix}(111110), (211110)\end{matrix} 2 \begin{matrix} [1,0,12,36,138,516,1464,4584,10650,20936,20712] \end{matrix}
    \begin{matrix}(110000), (211110)\end{matrix} 2 \begin{matrix} [1,0,18,60,162,720,2064,4320,9144,20960,21600] \end{matrix}
    Theorem 3.6 9 (000000) 1 \begin{matrix} [1,12,66,252,840,2352,4704,5952,4224,1280] \end{matrix}
    Theorem 3.7 9 (111100) 1 \begin{matrix} [1,2,8,80,248,416,1232,4448,8000,5248] \end{matrix}
    (100000) 1 \begin{matrix} [1,6,20,88,336,992,2752,5760,6656,3072] \end{matrix}
    (111011) 1 \begin{matrix} [1,2,14,68,140,440,1112,1424,1760,1600] \end{matrix}
    (110000) 1 \begin{matrix} [1,6,18,72,240,432,672,1536,2304,1280] \end{matrix}
    (111101) 1 \begin{matrix} [1, 2, 12, 70,134,402 \ 1192, 1484, 1584, 1680] \end{matrix}
    \begin{pmatrix} a&a&a&a&a&a\\0&f&0&0&0&g\\0&0&f&0&0&g\\0&0&0&f&0&g\\0&0&0&0&f&g\\\end{pmatrix} Theorem 3.4 9 (001212) 1 \begin{matrix} [1,2,6,28,92,156,460,1472,2376,1968] \end{matrix}
    6 \begin{pmatrix} a&a&a&a&a&a\\0&f&0&0&0&g\\0&0&f&0&0&g\\0&0&0&f&0&g\\0&0&0&0&f&g\\\end{pmatrix} Theorem 3.4 9 (100000) 2 \begin{matrix} [1,0,20,38,60,320,410,1218,938,3556] \end{matrix}
    (111100) 2 \begin{matrix} [1,0,18,36,90,360,600,504,1512,3440] \end{matrix}
    (210000) 2 \begin{matrix} [1,0,14,40,114,320,904,1560,1448,2160] \end{matrix}
    Theorem 3.5 10 \begin{matrix}(111110), (121110)\end{matrix} 2 \begin{matrix} [1,0,18,60,162,720,2064,4320,9144,20960,21600] \end{matrix}
    \begin{matrix}(110000), (001100)\end{matrix} 1 \begin{matrix} [1,2,18,96,228,936,2856,4992,11520,22400,16000] \end{matrix}
    \begin{matrix}(210111), (000021)\end{matrix} 1 \begin{matrix} [1,4,6,48,246,636,1980,7488,17664,21056,9920] \end{matrix}
    \begin{matrix}(110000), (120000)\end{matrix} 2 \begin{matrix} [1,0,30,72,138,1020,3228,4800,6240,19136,24384] \end{matrix}
    \begin{matrix}(110000), (000011)\end{matrix} 2 \begin{matrix} [1,0,12,54,156,678,2184,4440,8868,21008,21648] \end{matrix}
    Theorem 3.6 9 (000000) 1 \begin{matrix} [1,6,42,228,690,1320,2268,4488,6576,4064] \end{matrix}
    Theorem 3.7 9 (100000) 2 \begin{matrix} [1,0,26,70,240,980,1330,2622,4718,9696] \end{matrix}
    (111100) 2 \begin{matrix} [1,0,36,60,270,900,1848,2160,4248,10160] \end{matrix}
    (002121) 1 \begin{matrix} [1,2,8,80,248,416,1232,4448,8000,5248] \end{matrix}
    (002121) 2 \begin{matrix} [1,0,14,40,114,320,904,1560,1448,2160] \end{matrix}

     | Show Table
    DownLoad: CSV

    In this study, we have derived and used propagation rules over a certain non-unital ring of order 9 to generate self-orthogonal, one-sided self-dual and self-dual codes. Combining this generating technique with mass formulas we have classified these three classes of codes in length at most 7 up to monomial equivalence. It is an open problem to know if, alike what happens in [4], all codes in the three families can be generated by this technique up to some mild type condition.

    In order to expand the classification results to longer lengths, more processing power or more efficient automorphism algorithms may be required due to the combinatorial explosion of codes in the three families.

    The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.

    This research work was funded by Institutional Fund Projects under grant No. (IFPRC-105-130-2020). Therefore, authors gratefully acknowledge technical and financial support from the Ministry of Education and King Abdulaziz University, Jeddah, Saudi Arabia.

    All authors declare no conflicts of interest in this paper.



    [1] W. Pusz, S. L. Woronowicz, Functional calculus for sesquilinear forms and the purification map, Rep. Math. Phys., 8 (1975), 159–170. https://doi.org/10.1016/0034-4877(75)90061-0 doi: 10.1016/0034-4877(75)90061-0
    [2] T. Ando, Concavity of certain maps on positive definite matrices and applications to Hadamard products, Linear Algebria Appl., 26 (1979), 203–241. https://doi.org/10.1016/0024-3795(79)90179-4 doi: 10.1016/0024-3795(79)90179-4
    [3] J. Lawson, Y. Lim, The geometric mean, matrices, metrics, and more, J. Amer. Math. Soc., 108 (2001), 797–812. https://doi.org/10.2307/2695553 doi: 10.2307/2695553
    [4] F. Kubo, T. Ando, Means of positive linear operators, Math. Ann., 246 (1980), 205–224. https://doi.org/10.1007/BF01371042 doi: 10.1007/BF01371042
    [5] F. Hiai, Matrix analysis: matrix monotone functions, matrix means, and majorization, Interdiscip. Inf. Sci., 16 (2010), 139–248. https://doi.org/10.4036/iis.2010.139 doi: 10.4036/iis.2010.139
    [6] R. Bhatia, Positive Definite Matrices, New Jersey: Princeton University Press, 2007.
    [7] M. Fiedler, V. Pták, A new positive definite geometric mean of two positive definite matrices, Linear Algebria Appl., 251 (1997), 1–20. https://doi.org/10.1016/0024-3795(95)00540-4 doi: 10.1016/0024-3795(95)00540-4
    [8] H. Lee, Y. Lim, Metric and spectral geometric means on symmetric cones, Kyungpook Math. J., 47 (2007), 133–150.
    [9] L. Gan, T. Y. Tam, Inequalities and limits of weighted spectral geometric mean, Linear Multilinear Algebra, 72 (2022), 261–282. https://doi.org/10.1080/03081087.2022.2158294 doi: 10.1080/03081087.2022.2158294
    [10] S. Kim, H. Lee, Relative operator entropy related with the spectral geometric mean, Anal. Math. Phys., 5 (2015), 233–240. https://doi.org/10.1007/s13324-015-0099-z doi: 10.1007/s13324-015-0099-z
    [11] L. Li, L. Molnár, L. Wang, On preservers related to the spectral geometric mean, Linear Algebria Appl., 610 (2021), 647–672. https://doi.org/10.1016/j.laa.2020.10.014 doi: 10.1016/j.laa.2020.10.014
    [12] Y. Lim, Factorizations and geometric means of positive definite matrices, Linear Algebria Appl., 437 (2012), 2159–2172. https://doi.org/10.1016/j.laa.2012.05.039 doi: 10.1016/j.laa.2012.05.039
    [13] Y. Lim, Geometric means on symmetric cones, Arch. Math., 75 (2000), 39–45. https://doi.org/10.1007/s000130050471 doi: 10.1007/s000130050471
    [14] J. Lawson, Y. Lim, Geometric means and reflection quasigroups, Quasigroups Related Syst., 14 (2006), 43–59.
    [15] L. Gan, S. Kim, Revisit on spectral geometric mean, Linear Multilinear Algebra, 2023. https://doi.org/10.1080/03081087.2023.2171353
    [16] A. Ploymukda, P. Chansangiam, Weighted Lim's geometric mean of positive invertible operators on a Hilbert space, J. Comput. Anal. Appl., 29 (2020), 390–400. https://doi.org/10.2306/scienceasia1513-1874.2019.45.194 doi: 10.2306/scienceasia1513-1874.2019.45.194
    [17] P. Chansangiam, Cancellability and regularity of operator connections with applications to nonlinear operator equations involving means, J. Inequal. Appl., 2015 (2015), 411. https://doi.org/10.1186/s13660-015-0934-7 doi: 10.1186/s13660-015-0934-7
    [18] P. Chansangiam, Weighted means and weighted mean equations in lineated symmetric spaces, Quasigroups Related Syst., 26 (2018), 197–210.
    [19] D. Cheng, Semi-tensor product of matrices and its application to Morgen's problem, Sci. China Ser. F, 44 (2001), 195–212. https://doi.org/10.1007/BF02714570 doi: 10.1007/BF02714570
    [20] D. Cheng, H. Qi, A. Xue, A survey on semi-tensor product of matrices, Jrl. Syst. Sci. Complex., 20 (2007), 304–322. https://doi.org/10.1007/s11424-007-9027-0 doi: 10.1007/s11424-007-9027-0
    [21] Y. Yan, D. Cheng, J. E. Feng, H. Li, J. Yue, Survey on applications of algebraic state space theory of logical systems to finite state machines, Sci. China Inf. Sci., 66 (2023), 111201. https://doi.org/10.1007/s11432-022-3538-4 doi: 10.1007/s11432-022-3538-4
    [22] P. Chansangiam, A. Ploymukda, Riccati equation and metric geometric means of positive semidefinite matrices involving semi-tensor products, AIMS Math., 8 (2023), 23519–23533. https://doi.org/10.3934/math.20231195 doi: 10.3934/math.20231195
    [23] A. Ploymukda, P. Chansangiam, Metric geometric means with arbitrary weights of positive definite matrices involving semi-tensor products, AIMS Math., 8 (2023), 26153–26167. https://doi.org/10.3934/math.20231333 doi: 10.3934/math.20231333
  • This article has been cited by:

    1. Tamador Alihia, On the Duality of Codes over Non-Unital Commutative Ring of Order p2, 2025, 17, 2073-8994, 690, 10.3390/sym17050690
  • Reader Comments
  • © 2024 the Author(s), licensee AIMS Press. This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0)
通讯作者: 陈斌, bchen63@163.com
  • 1. 

    沈阳化工大学材料科学与工程学院 沈阳 110142

  1. 本站搜索
  2. 百度学术搜索
  3. 万方数据库搜索
  4. CNKI搜索

Metrics

Article views(1415) PDF downloads(65) Cited by(0)

/

DownLoad:  Full-Size Img  PowerPoint
Return
Return

Catalog