Home Online Manual
Top
Back: sysCRHTMindist
Forward: sysBin
FastBack:
FastForward:
Up: decodegb_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.10.2.3 sysNewton

Procedure from library decodegb.lib (see decodegb_lib).

Usage:
sysNewton (n,defset,t,q,m,[tr]); n,t,q,m,tr int, defset is list int's
 
         - n is length,
         - defset is the defining set,
         - t is the number of errors,
         - q is basefield size,
         - m is degree extension of the splitting field,
         - if tr>0 it indicates that Newton identities in triangular
           form should be constructed

Return:
the ring to work with the generalized Newton identities (in triangular form if applicable) containing the ideal with name 'newton'

Theory:
Based on 'defset' of the given cyclic code, the procedure constructs the corresponding ideal 'newton' with the generalized Newton identities. With its help one can solve the decoding problem. For basics of the method Generalized Newton identities.

Example:
 
LIB "decodegb.lib";
// Newton identities for a binary 3-error-correcting cyclic code of
//length 31 with defining set (1,5,7)
int n=31;          // length
list defset=1,5,7; //defining set
int t=3;           // number of errors
int q=2;           // basefield size
int m=5;           // degree extension of the splitting field
int tr=1;          // indicator of triangular form of Newton identities
def A=sysNewton(n,defset,t,q,m);
setring A;
A;                 // shows the ring we are working in
==> //   characteristic : 2
==> //   1 parameter    : a 
==> //   minpoly        : 0
==> //   number of vars : 34
==> //        block   1 : ordering lp
==> //                  : names    S(31) S(30) S(29) S(28) S(27) S(26) S(25) \
   S(24) S(23) S(22) S(21) S(20) S(19) S(18) S(17) S(16) S(15) S(14) S(13) S\
   (12) S(11) S(10) S(9) S(8) S(6) S(4) S(3) S(2) sigma(1) sigma(2) sigma(3)\
    S(7) S(5) S(1)
==> //        block   2 : ordering C
print(newton);     // generalized Newton identities
==> S(31)*sigma(1)+S(30)*sigma(2)+S(29)*sigma(3)+S(1),
==> S(31)*sigma(2)+S(30)*sigma(3)+S(2)+sigma(1)*S(1),
==> S(31)*sigma(3)+S(3)+S(2)*sigma(1)+sigma(2)*S(1),
==> S(4)+S(3)*sigma(1)+S(2)*sigma(2)+sigma(3)*S(1),
==> S(4)*sigma(1)+S(3)*sigma(2)+S(2)*sigma(3)+S(5),
==> S(6)+S(4)*sigma(2)+S(3)*sigma(3)+sigma(1)*S(5),
==> S(6)*sigma(1)+S(4)*sigma(3)+sigma(2)*S(5)+S(7),
==> S(8)+S(6)*sigma(2)+sigma(1)*S(7)+sigma(3)*S(5),
==> S(9)+S(8)*sigma(1)+S(6)*sigma(3)+sigma(2)*S(7),
==> S(10)+S(9)*sigma(1)+S(8)*sigma(2)+sigma(3)*S(7),
==> S(11)+S(10)*sigma(1)+S(9)*sigma(2)+S(8)*sigma(3),
==> S(12)+S(11)*sigma(1)+S(10)*sigma(2)+S(9)*sigma(3),
==> S(13)+S(12)*sigma(1)+S(11)*sigma(2)+S(10)*sigma(3),
==> S(14)+S(13)*sigma(1)+S(12)*sigma(2)+S(11)*sigma(3),
==> S(15)+S(14)*sigma(1)+S(13)*sigma(2)+S(12)*sigma(3),
==> S(16)+S(15)*sigma(1)+S(14)*sigma(2)+S(13)*sigma(3),
==> S(17)+S(16)*sigma(1)+S(15)*sigma(2)+S(14)*sigma(3),
==> S(18)+S(17)*sigma(1)+S(16)*sigma(2)+S(15)*sigma(3),
==> S(19)+S(18)*sigma(1)+S(17)*sigma(2)+S(16)*sigma(3),
==> S(20)+S(19)*sigma(1)+S(18)*sigma(2)+S(17)*sigma(3),
==> S(21)+S(20)*sigma(1)+S(19)*sigma(2)+S(18)*sigma(3),
==> S(22)+S(21)*sigma(1)+S(20)*sigma(2)+S(19)*sigma(3),
==> S(23)+S(22)*sigma(1)+S(21)*sigma(2)+S(20)*sigma(3),
==> S(24)+S(23)*sigma(1)+S(22)*sigma(2)+S(21)*sigma(3),
==> S(25)+S(24)*sigma(1)+S(23)*sigma(2)+S(22)*sigma(3),
==> S(26)+S(25)*sigma(1)+S(24)*sigma(2)+S(23)*sigma(3),
==> S(27)+S(26)*sigma(1)+S(25)*sigma(2)+S(24)*sigma(3),
==> S(28)+S(27)*sigma(1)+S(26)*sigma(2)+S(25)*sigma(3),
==> S(29)+S(28)*sigma(1)+S(27)*sigma(2)+S(26)*sigma(3),
==> S(30)+S(29)*sigma(1)+S(28)*sigma(2)+S(27)*sigma(3),
==> S(31)+S(30)*sigma(1)+S(29)*sigma(2)+S(28)*sigma(3),
==> sigma(1)^32+sigma(1),
==> sigma(2)^32+sigma(2),
==> sigma(3)^32+sigma(3),
==> S(2)+S(1)^2,
==> S(4)+S(2)^2,
==> S(6)+S(3)^2,
==> S(8)+S(4)^2,
==> S(10)+S(5)^2,
==> S(12)+S(6)^2,
==> S(14)+S(7)^2,
==> S(16)+S(8)^2,
==> S(18)+S(9)^2,
==> S(20)+S(10)^2,
==> S(22)+S(11)^2,
==> S(24)+S(12)^2,
==> S(26)+S(13)^2,
==> S(28)+S(14)^2,
==> S(30)+S(15)^2,
==> S(16)^2+S(1),
==> S(17)^2+S(3),
==> S(18)^2+S(5),
==> S(19)^2+S(7),
==> S(20)^2+S(9),
==> S(21)^2+S(11),
==> S(22)^2+S(13),
==> S(23)^2+S(15),
==> S(24)^2+S(17),
==> S(25)^2+S(19),
==> S(26)^2+S(21),
==> S(27)^2+S(23),
==> S(28)^2+S(25),
==> S(29)^2+S(27),
==> S(30)^2+S(29),
==> S(31)^2+S(31)
//===============================
A=sysNewton(n,defset,t,q,m,tr);
setring A;
print(newton);     // generalized Newton identities in triangular form
==> sigma(1)+S(1),
==> S(2)+sigma(1)*S(1),
==> S(3)+S(2)*sigma(1)+sigma(2)*S(1)+sigma(3),
==> S(4)+S(3)*sigma(1)+S(2)*sigma(2)+sigma(3)*S(1),
==> S(4)*sigma(1)+S(3)*sigma(2)+S(2)*sigma(3)+S(5),
==> S(6)+S(4)*sigma(2)+S(3)*sigma(3)+sigma(1)*S(5),
==> S(6)*sigma(1)+S(4)*sigma(3)+sigma(2)*S(5)+S(7),
==> S(8)+S(6)*sigma(2)+sigma(1)*S(7)+sigma(3)*S(5),
==> S(9)+S(8)*sigma(1)+S(6)*sigma(3)+sigma(2)*S(7),
==> S(10)+S(9)*sigma(1)+S(8)*sigma(2)+sigma(3)*S(7),
==> S(11)+S(10)*sigma(1)+S(9)*sigma(2)+S(8)*sigma(3),
==> S(12)+S(11)*sigma(1)+S(10)*sigma(2)+S(9)*sigma(3),
==> S(13)+S(12)*sigma(1)+S(11)*sigma(2)+S(10)*sigma(3),
==> S(14)+S(13)*sigma(1)+S(12)*sigma(2)+S(11)*sigma(3),
==> S(15)+S(14)*sigma(1)+S(13)*sigma(2)+S(12)*sigma(3),
==> S(16)+S(15)*sigma(1)+S(14)*sigma(2)+S(13)*sigma(3),
==> S(17)+S(16)*sigma(1)+S(15)*sigma(2)+S(14)*sigma(3),
==> S(18)+S(17)*sigma(1)+S(16)*sigma(2)+S(15)*sigma(3),
==> S(19)+S(18)*sigma(1)+S(17)*sigma(2)+S(16)*sigma(3),
==> S(20)+S(19)*sigma(1)+S(18)*sigma(2)+S(17)*sigma(3),
==> S(21)+S(20)*sigma(1)+S(19)*sigma(2)+S(18)*sigma(3),
==> S(22)+S(21)*sigma(1)+S(20)*sigma(2)+S(19)*sigma(3),
==> S(23)+S(22)*sigma(1)+S(21)*sigma(2)+S(20)*sigma(3),
==> S(24)+S(23)*sigma(1)+S(22)*sigma(2)+S(21)*sigma(3),
==> S(25)+S(24)*sigma(1)+S(23)*sigma(2)+S(22)*sigma(3),
==> S(26)+S(25)*sigma(1)+S(24)*sigma(2)+S(23)*sigma(3),
==> S(27)+S(26)*sigma(1)+S(25)*sigma(2)+S(24)*sigma(3),
==> S(28)+S(27)*sigma(1)+S(26)*sigma(2)+S(25)*sigma(3),
==> S(29)+S(28)*sigma(1)+S(27)*sigma(2)+S(26)*sigma(3),
==> S(30)+S(29)*sigma(1)+S(28)*sigma(2)+S(27)*sigma(3),
==> S(31)+S(30)*sigma(1)+S(29)*sigma(2)+S(28)*sigma(3),
==> sigma(1)^32+sigma(1),
==> sigma(2)^32+sigma(2),
==> sigma(3)^32+sigma(3),
==> S(2)+S(1)^2,
==> S(4)+S(2)^2,
==> S(6)+S(3)^2,
==> S(8)+S(4)^2,
==> S(10)+S(5)^2,
==> S(12)+S(6)^2,
==> S(14)+S(7)^2,
==> S(16)+S(8)^2,
==> S(18)+S(9)^2,
==> S(20)+S(10)^2,
==> S(22)+S(11)^2,
==> S(24)+S(12)^2,
==> S(26)+S(13)^2,
==> S(28)+S(14)^2,
==> S(30)+S(15)^2,
==> S(16)^2+S(1),
==> S(17)^2+S(3),
==> S(18)^2+S(5),
==> S(19)^2+S(7),
==> S(20)^2+S(9),
==> S(21)^2+S(11),
==> S(22)^2+S(13),
==> S(23)^2+S(15),
==> S(24)^2+S(17),
==> S(25)^2+S(19),
==> S(26)^2+S(21),
==> S(27)^2+S(23),
==> S(28)^2+S(25),
==> S(29)^2+S(27),
==> S(30)^2+S(29),
==> S(31)^2+S(31)
See also: sysBin; sysCRHT.