 So we are continuing our relook at BCH codes, we have a relook at BCH codes, we have been looking at cyclic codes, so we are going to look at BCH codes, some of the cyclic codes and so what we saw so far is that a binary cyclic code is an ideal of Rn which is the ring of polynomials modulo x bar n plus 1 and then we saw that every ideal is in fact generated by some g of x, what g of x divides x bar n plus 1 and then we saw that x bar n plus 1 factors into linear factors and over some large enough x 2 bar mx find the element of order n and so remember to find, we always fix n to be odd, when we look at binary cyclic code, 1 will be odd, so this will be 2, 2f 2 bar mx and so that means gfx also has, can be factored when it is divisor of x bar n plus 1, so if you factor it over f 2 bar mx it will also factor into linear factors, same property equals to gfx, so instead of gfx is a binary polynomial, you can also define it by providing all the zeros of gfx in f 2 bar m, so those are called the zeros of a cyclic code, so equal to the ideal of zeros are called zeros of code and then we saw that there was a nice relationship between the zeros of a code and the zeros of the dual, if z is the zeros of the code minus z modulo m is going to be the zeros of the dual, so dual is also a cyclic code, you know how to find that and then also this check polynomial which is h of x equals x bar m plus 1 by gfx and when the generator polynomial of the dual is simply the reversal of h, so x bar degree of h, h of x inverse, so all these things we saw before, so we are slowly going to make our way towards bch codes and that is the point of this lecture, so before that let me just point out one more result about the zeros of the code and that will kind of take us towards, we will complete the notion of cyclic codes for us, so as a result, so let us say you have a cyclic code, a binomial cyclic code c which is generated by gfx, gfx is the generator for c, so we saw that result, if I say it is ideal generated by gfx and gfx divides x bar m plus 1, it is in fact the generator polynomial of that cyclic code, it cannot have anything small, suppose when we consider gfx of pfx, so gfx pfx, we have set up all multiples of gfx pfx in R n, here remember that is the idea here, so this is multiple of, all multiples of gfx pfx in R n, remember that is the idea here, so this is multiple of, all multiples of gfx pfx where in R n, if we will take all the elements of R n and multiply by gfx pfx, do model x bar m plus 1, see what we get, so this is my ideal, so I am going to ask the question then is this equal to gfx, that is my question, so I am going to say I am going to take gfx and then multiply it with some other polynomial pfx, so I will say that I get an element of R n, if I keep my degrees over here, and then look at the ideal generated by the gfx into pfx, now I want to ask the question, when is that ideal equal to the ideal generated by gfx itself, so this kind of puts, I mean the point of this is in your cyclic code, there might be other code words, so this is actually, this is a code word that belongs to C, so it might also generate the same code, but it may not be the generator polynomial, maybe some other polynomial, but it may generate the same code and you might be interested in that for whatever reason, so I want to find out is there any pfx that I can find which will generate the same code, well you do not quite need that, so basically what you need is pfx should not have any zeros other than those of gfx, that is the criteria that you need, so this happens the result is that this is true if pfx has no zeros other than those of, of course when I say zeros this is an f2 parent, other than those of gfx, it might not have other zeros elsewhere in some other field, I do not care, I have no problems, but in f2 parent it should not have any zeros other than those in gfx, so for instance one very nice application of this is, so one example is if you look at this grade gfx squared, what will it be equal to? It will be equal to gfx, so this is a nice application of the result, so if you do not have any new zeros in f2 parent being added by pfx, then this will generate the same thing, so if it is not too bad it will check the polynomial, so what it would mean when I say pfx does not introduce any new zeros other than those of gfx, so it means the following, gcdf pfx, hfx will be equal to what? It should be equal to 1, it should not have any common factors with hfx, it should not have any number of common factors with gfx, I do not care, it will be equal to x power n plus 1 equals gfx times hfx, so the element for h2 power n, the element for h2 power n will either be roots of gfx or roots of hfx, so of course there is zero element, but zero will never consider, so that is not something to be variable, so zero will not affect us in any way, so you can have x where any power of x multiplying it does not matter, only the non-zero elements matter, so this is zero, so that means non-zero elements, so x power n plus 1, the non-zero elements of f2 power n, the nth roots of unity in f2 power n, this is what I am talking about, the nth roots of unity in f2 power n will either be roots of gfx or the roots of hfx, so I should be careful here, so in f2 power n basically what I really want is the nth roots of unity in f2 power n, so let me refresh that here, no zeros among the nth roots of unity, so that is probably a more precise statement, instead of saying in f2 power n, f2 power n might have other elements other than the nth roots of unity, when I have zeros there I have no problems with that, among the nth roots of unity you should not have any zeros in pfx, so the nth roots of unity will either be roots of gfx or hfx, so I do not mind if pfx has factors in common with gfx, but it should not have any factor with hfx, so if it has any factor with hfx then it will be adding additional zeros, I do not want to do that, so this is the same condition as this pfx having no additional zeros, so when you have gcd being 1 that is the result, so which says that of course hfx dfx sub star, when you have gcd being 1 sub star, hfx times dfx plus dfx times hfx equals 1, and this is only like f2 power n, without any model or anything, so this is gcd, so that has to be equal to 1, now what do I do, what can I do now, any ideas I want to be able to show that the idea is generated with gfx pfx is the same as the idea is generated with gfx, what is the only way to show that, one of the ways to show that, you have to show that there is a multiple of gfx pfx modulo h power n plus 1 which will give me gfx, not multiple it should give me exactly gfx, some multiple of gfx pfx should exactly give me gfx, once I show that I am done, once I show gfx is in the ideal I am done, because any way gfx pfx should be contained in this guy, I only have to show the other containment, to show the other containment it is enough to show that is a multiple of gfx pfx which is equal to pfx gfx, if the two containment is clear remember I want to show this side equal to this side, the LHS is contained in the RHS, it is very obvious I do not have to worry about it, only thing I have to show is that the RHS is contained in the LHS, how do I show that, I am going to show that they are showing that gfx is contained in the LHS, if I show that gfx is contained in the LHS clearly all the multiples of gfx are also contained in the LHS and that means RHS is also contained in the LHS, so that is the idea, so how do I show now that gfx is contained in the LHS, what can I do with this equation, multiple of gfx seems like an inspired idea, so what will happen if I multiply the gfx, I get, what is gfx times pfx, what is gfx times pfx, x bar n plus 1 and that equals gfx, now what can I do, now what can I do, now what can I do, I can reduce x bar n plus 1 and that will kill this, so that means new idea, so that implies gfx times pfx equals pfx and what in and that concludes it, so this kind of answers the question that I was initially asking, what are the elements of the cyclic code that will generate the coded section, so let's take an example here and then see what happens, so remember 0 of the cyclic code will occur as unions of cyclic atomic process, we cannot have anything else showing up, so let's take an example, this way is of working with, so you will have several cyclic atomic process, so I think the cyclic atomic process here should be ybc12486912, so these are the cyclic atomic process, modular 15 multiplication by 2, so I might consider the cyclic code c with 0 set, let's say, actually we will take 1248 and then 510, we can't do that, that defines the cyclic code, now what will be gfx for the cyclic code, so I need the minimal polynomial f, the primitive element in gf16, it's easy to take up the h bar 4 perfect of 1, so it's a very simple thing, and then what about 5, expected effect, so this is my gfx, so now if I ask you what are the gfx, what are the polynomial in the cyclic code will generate the whole code, so it's not too bad to answer, so you have to figure out what is hfx, what is hfx, x plus 1 times x2 plus 1 and 1, x4 plus x4 plus x3 plus x4 plus x4, so if you take any pfx which does not have any of these factors, so remember I can take, so degree here is 6, so my degree of pfx can be as large as, I can go to 8, so I can take any polynomial of degree 8 which does not have any common factors with this, so it should not have x plus 1 as a factor, what does it mean, x plus 1 should not be a factor, very simple rule is that you should not have an even number of terms, should have an odd number of terms, even x plus 1 will not be a factor, x4 plus x2 plus 1 you have to avoid this, but this also I have to avoid, these things are more difficult and we have to divide and check, so there should be enough, there should be several of these which give you that, so that way you can quickly find the gfx, so for example, c is the same as gfx times, I mean you can take, what shall we do, so say x4 3 plus x2 plus 1, take some crazy looking polynomial of this, so you know there is no root for x4 3 plus x plus 1 in gf16, so it cannot happen, so you take a sufficient polynomial like that, simply take any irreducible polynomial of any degree which is not here, you will always get something, you can take any irreducible polynomial of degree 5, irreducible polynomial of degree 6, you keep taking such polynomials and you know you never take any of these things, so you go okay, so that is the kind of example of that, okay, alright, so the other thing which is interesting is, the dual code, okay, so what will be the dual code here, the dual code will be generated by, what, okay, so remember what I am doing, so I have this and this and that zeroes, okay, so my h will have the remaining things and then when I do hfx inverse, the roots will get inverted again, so if I invert this guy, what will I get? I get the same thing, oh it is 1, okay, 1 inverted, 1 inverse is 1, okay, what will happen when I invert this guy? 3, 6, 9, 12 remains the same, okay, what will happen when I invert this guy? I will go back to this, okay, so see power will actually be generated by x plus 1 times x power 4 plus x plus 1 times x power 4 plus x power 3 plus x power plus x plus 1, okay, so let me ask you a devious little question here, okay, so I want you to construct, okay, I want you to construct a C with zeroes such that C port was contained in C, okay, that I was getting, okay, I want to have the dual of C to be contained within C, okay, so when will one cyclic port be contained in another cyclic port, yeah, which one has to divide the other, if C port has to be contained in C, the gfx of C has to divide the gfx of C port, so if the generator polynomial of C should divide the generator polynomial of C, okay, only then it will be, so containment is very easy to answer, okay, linear block codes and all, maybe more difficult to look at all kinds of codes in elimination, yeah, it's very simple, you just divide one generator polynomial by the other, you know whether this is working out or not, so how can I make the generator polynomial of C port divide the generator polynomial of C? For this one, yeah. So I have this mapping of zero versus zero, is it connected with zero? Yeah, so that's the first thing you have to figure out, so what happens when you do the inverse, which cyclic atomic process map to which cyclic atomic process, you can show that when you invert one cyclic atomic process, we'll go to another cyclic atomic process, not through the critical machine, so this guy remains here, this guy remains here, and this guy also remains here when you invert, and what happens to this, this goes here, that goes there, okay, so what should you do, these looping things more, things that don't change the population, you have to include them as zeros, okay, because if you don't, what will happen? They'll end up going to the blue board, and you cannot have gfx dividing, but okay, so you have to retain all those guys in C, okay, so that you will not get any anything else, and then you should have one among the other two things, is it okay? So if I take zeros to be, so for instance, if I take zero, union 36912, am I right? I want cp to be contained in C well, let me draw this, maybe the other way around, okay, so 510, okay, none of these guys should go outside, right, in gfx, yeah, in other words oh no, I shouldn't pick any of these I mean, I shouldn't pick two of them, okay, and then maybe I pick 1248, okay, so if I do this, yeah, now this will work, okay so gfx becomes a very big polynomial okay, but I want, what do I want? I want, is this right? So c or cp? c, yeah, then what will be the gfx for cp? 1248, okay, and then what will divide what? Does any of the problem know that cp will divide into any of the problem of c, is that what I wanted? No, no, no, I want it the other way see, that's what I said, there's some confusion here you want zeros of cp to be contained zeros of c, or the code cp the code cp has to be contained in the code c means the zeros of c should be contained in the zeros of cp Yeah, so this should be this should be the zeros of cp okay, so this should be the zeros of cp and then I will, okay so there are ways to deal with containment and orthogonality and all these things you can play around with based on the zeros, it's not too hard once you understand the way the zeros work you can publish them into two and how the execution works can be executed, okay so you have to take these as the zeros of cp and then you will have okay it's not too hard to deal with all right so so that's the last comment I wanted to make about zeros so okay all right, so the next thing we are going to do is the bch bound and that is really what's quite important if you have a binary cyclic code with some kind of polynomial g of x yeah, both g of x divides x bar n plus 1 let's say alpha is a primitive n through the unity it's not high enough okay, it's a primitive n through the unity okay basically the busiest one says if g of alpha b equals g of alpha run so run equals g of alpha plus p plus delta minus 2 equals 0 then p minus c looks more than or equal to okay so this is called the bch bound okay, so what this says is if you have delta minus 1 consecutive powers of alpha as zeros of your code then your minimum distance is greater than or equal to delta okay, so this is what it means and if you go back to the way I have defined the bch code I would have done exactly the same thing as I would have done it in the form of a party check matrix yes I have done the exact same thing but usually this is how people state what is bb is sum into a into positive if you take b to be 0 you get what is known as a narrow sense code narrow sense case narrow sense case is going to take b equal to b okay so the proof is actually very similar to what we did before we will go back to the random on matrix and we will say the sub matrix has to have full rank exact same argument nothing changes in the proof except that I want to just bring out one interesting little detail in the proof if you wanted to look at it okay so so we had this random on matrix right so that would come to major part of the proof whatever structure of the random on matrix you had one null along the top or one along here right here no I think the way right both of them the random on matrix was a bit more general right I said what said a0 top a0 and then a0 squared a2 some a0 power r okay so maybe I will use a1 so a2 a2 squared a2 power r and then I said a r a r squared okay so if all these pairs are not equal to each other then we looked at the determinant and we said it has to be non-zero so this will have full rank so this is what we basically use so in this case when we look at this case if you will have an easier situation okay so the reason is all of these things are n troops of unity okay so if you raise them to the power n they are going to go to 0 right so you can use that if you like and find explicitly some inverse of these things and all that so you can do all these nice things you can write down the full matrix and find the inverse explicitly so you can do a little bit of an easier job but anyway in essence it goes back to this idea okay a matrix like this if a1 not equal to aj as the determinant not equal to q okay and that's the best result that we use here and you can put it okay so from here we define bch codes okay we will define the boundary bch codes so this p would pick some b to do some mp here to do some mp here and you take delta which is the design of this 3 across 2 mp here and you simply let c to be generated by 3 effects that 3 effects is the least degree the welfare of x star n plus 1 that has alpha power b alpha power b plus 1 so until alpha power b plus delta minus 1s so that's basically the definition of bch code I know the bch is burned words if I have delta minus 1 consensual 0s I will have a minimum distance of delta so I will pick the smallest degree g effect why am I interested in picking the smallest degree g effect that gives me the largest number of code words okay why am I interested in least degree because the dimension is one minus the degree and I want to maximize the number of code words I have so I picked the least degree that has all these things so how do you do that that's basically from the degree that we saw that implies g effect is going to be the LCMF of what the minimal polynomial so let me solve this so that's the basic idea and the cyclic point of view you already know what gfx is and then you control the degree so the way I did it in class I would write down the parity check matrix and then argue how alpha to alpha power delta minus 1 are all roots of every single code word which means each of these guys have to divide each of the code words which means the LCMF all those guys have to divide and then I also went the other way show this so this is a synonyms so we call this as the generator polynomial but you can start with cyclic codes more generally then talk about why generator polynomials have to exist and then come back anyway to the bch bound because that is what really gives you the minimum distance I think in the cyclic code theory will give you the minimum distance only the bch bound gives you the minimum distance come back to the bch bounds and argue that the zeros have to be there and then you claim that this has to work but the only thing here is the black length n has to be chosen carefully and the alpha has to be an n through the unity and all that but in the way we did it in the the parity check matrix I simply said the order of alpha has to be greater than and also equal to m so I won't get the cyclic constraint how do you go from here to those kind of things you have to sharpen the code so the last few bits you basically insert zeros you can always go the n that also I have discussed to you mom so I said only additional confusion there that's okay, it can be dealt with really easily so that's the that's the bch code approach from the cyclic code point and of course if you do the binary case in the binary case many things are simple in the binary case you'll notice that binary case with marathons okay for design distance delta we usually repeat delta to b to b plus 1 so that b becomes your design error correcting capability so if you do that then gfx is going to be cmr malpha and when I know I have to do alpha squared the reason is I know alpha squared is anyway the same minima is all known as alpha k is what I am doing in binary so alpha is 3x what is the last one 2t so only the odd things are important so I will put 2t minus 1 okay so that will give me the sorry I am sorry should be 2 yeah you are right I need delta minus 1 consecutive bits is it okay so marathons if you pick d to b1 okay then you get 1 to 0 so this is how you go about picking it you can write down the dch codes like we did before we have done this several times already so okay so the nice thing about approaching it from the cyclic codes point of view is you can deal with cyclic means for instance these codes of length n equals 21 okay which are cyclic you can do that very nicely if you approach it from the cyclic codes point if you don't do the you do just the palliative check matrix it's a bit confusing as to why is it cyclic and all that you may not see that immediately this is the nice okay so of course we also had the at the result about the degree of gfx so degree of gfx okay this is going to be not here tsm it's going to be less than or equal to t times m so if you say alpha belongs to gf2 bottom okay because there are p such polynomials each of them has a maximum degree of m degree is less than or equal to gfx that implies k is greater than or equal to n minus m okay so this is true okay so that's like I said we would approach the bch code and then if you want to go towards the each element codes okay the approach is a little bit so let me talk about non-dynamic cyclic codes okay so maybe we'll think about that then so we have one more lecture tomorrow also so we can look at the non-dynamic cyclic code pins so I'm just trying to think of anything else I should mention about bch codes yeah so again you should remember that the dmin is greater than or equal to delta most cases it will be equal but it can be created also lots of other results simple results of this okay so that's bch codes the next idea is to go towards non-dynamic cyclic codes okay so so this is the approach towards rscodes that you are going to go towards rscodes okay so if you remember the way I did it in class I gave you a palliative matrix and I said if you restrict the binary code words you get bch codes if you say codes over the field in which the alpha s then you get reach Solomon codes okay so you can also do this non-dynamic cyclic codes idea and come towards the reach Solomon codes so let me try to try and do that for you okay so so once again we start with an rn okay but except that I will define an rn to have a more general set of elements so a0 plus a1x plus a n minus 1 x bar n minus 1 and these a's will come from an arbitrary field gfq not necessarily from gfq I was saying binary I can say arbitrary field now if you notice the same property that we had if you have an asx and rn what would be x times rfx okay again additional multiplication will be modulo instead of x bar n plus 1 now I'll say minus 1 just to be clear q could be odd right in which case minus 1 is not the same as the first one so I'll say x bar n minus 1 then what happens if I do x times rfx the same cyclic shift will hold okay so if rfx is a0 a1 a n minus 1 if I do x times rfx it becomes a0x plus a1x squared so until a n minus 1 x bar n x bar n is the same as 1 okay because I'm doing modulo x bar n minus 1 so x bar fx becomes the same as a n minus 1 a0 a1 a minus 2 okay so once again clearly ideals of rn will be cyclic codes over gfq so that results again for cyclic codes over gfq so just to keep the notation just one jargon here instead of saying cyclic codes over gfq that's a very common to say q are the cyclic codes even q is 2 you say binary cyclic codes otherwise you simply say q are the cyclic codes okay so that's the first step if the first step seems smooth there's no problem what is our next step in the cyclic codes idea we were trying to characterize ideal source gf of this rn right and if you go and look at the proof the only thing we used is division property and the division property works over any field I don't have to necessarily say anything particular about it okay so you can once again show all ideals of rn are principle and you can show so every ideal has a unique monic polynomial of minimum degree okay monic no polynomial is monic its highest degree coefficient is 1 is unique okay so that's the definition of monic you can see why I need monic if I have a polynomial of least degree and the field has more than 2 elements if I multiply it by any other non-zero element I'll get another polynomial of least degree so clearly if I don't say monic the polynomial of least degree is not unique but the non-uniqueness is very silly and very constant so how do you force the uniqueness? I'll say monic if I say monic I cannot have 2 different monic polynomials of least degree okay the reason is if I subtract that then the first row will cancel okay after subtract I cannot add I won't add an arbitrary field so subtract the first row will cancel I'll get a strictly lower degree so monic there will become unique and then you have to argue now that this guy has to be like x bar n minus 1 okay so this unique monic polynomial it's called the generator polynomial okay so generator polynomial divides x bar n minus 1 okay so that's the first result it's not too too hard to argue that result okay divides x bar n minus 1 okay alright and what else can you say the similar result that we had before okay so so the ideal is equal to multiple sets g of x would be less than or equal to n minus 1 and multiple is over okay so I should be careful here when I say multiple is here what do you mean by that so this multiple is when I say here this is over sqx okay so of course I showed that the so it's easy to show that the generator polynomial will generate the entire ideal in R and E take all the elements of R and multiply with g of x do modular x bar n minus 1 you'll get the entire idea but even more is true like you proved before since g of x divides x bar n minus 1 you can show that if you take those multiples of g of x which have degree only less than or equal to n minus 1 right degree is only less than or equal to n minus 1 and you do multiplication only in sqx you don't do any modular x bar n minus 1 you still get all the elements of the idea okay so that clearly tells you that the dimension right dimension is equal to n minus degree of g of x so that all these properties once again can be shown you can go back and check the way I proved it and try to do the modification remember what we do x bar n minus 1 then use the division algorithm carefully again and again and you'll get all these things okay the part which will become tricky is what is the next step how did we proceed after this once you figured out all these things we wanted to factor x bar n plus 1 right we also used to factor in x bar n plus 1 so here now we have to factor x bar n minus 1 but then where should the coefficients come from sq so that complicates matters a little bit okay so you have to do cyclotomic cosets modular n but under multiplication by q okay so there I think there will be some confusion if you don't do it carefully okay you cannot directly go to cyclotomic cosets as far as you should find that limit m through the unity in sqm q power okay so that's the first step okay so we factor in x bar n minus 1 over g of q so it's a little bit more complicated okay so it's not quite a bit complicated first thing is you should restrict yourself to a case where x bar n minus 1 has linear factors so that simplifies the factoring a lot if you have repeated factors or some crazy kind of factoring then you will get into trouble okay so it will definitely have linear factors over a large enough field so what you do is you pick n comma q gcd of n comma q to be 1 okay so if you do that it guarantees that there exists alpha in g of q power n so that order of alpha is equal to okay so if you do that you can guarantee this the reason is if you have gcd of n and q being equal to 1 okay so at a large enough n q power n minus 1 n will delight q power n minus 1 same result as before so we pick for when q is 2 we always pick n to be r the actual reason is because then the gcd of n comma 2 will be 1 and I know that for a large enough n the order number will be right q power n minus 1 the same result will generalize you pick gcd of n comma q to be 1 and then for a large enough n n will be right q power n minus 1 and in that g of q power n you will have an element of order n okay that is easy to do so once you have this factoring is easy so much easier then what you can do is you can find cyclotomic force modulo n under multiplication by what by you have to multiply by q okay and once again the same kind of results will go okay so there is no problem so you take the you take alpha and raise it to repeatedly to powers of q and then combine all the linear factors that occur in that cyclotomic force that you multiply it together you will get a polynomial with coefficients from g of q and not q power n okay the same same results like we had before will go okay so it is a bit difficult and I will prove this in great detail in class so believe me this will happen okay so it is not too hard to not too hard to prove this okay so let us try an example just for fun continue with this next class for example if I pick okay so a very simple case so let me pick n equals 15 okay I will take q to be 16 okay so it is a very simple case okay so it is not too hard okay q is 16 so my gf there will be a field I am looking at over I want to stick a code over gf 16 okay so an n comma q this condition is satisfied what is the smallest n such that there will be an element of n in gf q power n 1 itself right so you know alpha you can take it to be 16 from the 2 element okay then order of alpha will be equal to 15 okay so this is a very easy factorization okay so you know what will happen so x power n minus 1 in fact it is the same as x power n plus 1 here the characteristic is 2 even though I said q is 16 this actually is the product of x minus alpha power i i is going from 0 to 14 okay you know that this is true what am I talking about all the cyclotomic process let us try to do cyclotomic process modular 15 and a multiplication by 16 what happens 0 will be a cyclotomic process and then suppose I start with 1 what happens 1 just 1 what happens if I do 2 2 times 16 is 1 32 but modular 15 is again 2 okay so you will see if 3 cyclotomic process will have just 1 element and there will be 15 of them okay and that is not very surprising because each of these polynomials is actually a polynomial with coefficients 1, g is 16 there is no big deal so you really know what you are going to get but if you take a slightly more complicated example okay let us say let us say I pick n equals what shall we do let us say we pick n equals let me pick q equals 9 so let us pick 9 okay so it is not an extension but it is 9 and I should pick n to be something that will have hmm it will be careful when you pick 2 right so I have to go powers of 9 I could pick n equals 8 and then become very easy so let me pick n equals 10 just to make it a little bit more interesting okay so if you look at that then you will see that the primitive element right primitive 10th root of unity in an extension field of 9 will be m equals 2 q squared minus 9 squared minus 1 is 80 and 10 divides 80 okay so in g of 81 okay you will have a primitive 10th root of unity okay but all that you do not have to know if you use the cyclotomic process idea as long as you know 10 and 9 are relatively prime you can use the cyclotomic process idea and smoothly get away with it so you will have 0 right and then you will have 1 9 that is it right remember why is that correct okay so remember I have to do modulo 10 multiplication by 9 so 9 times 9 is 81 and that gets back to 1 okay then 2 8 that is it okay you go back to 2 okay and then 3 3 times 9 is 27 modulo 10 is 7 and that should be 8 okay so you cannot have more than 2 okay so you can see that we work out in element 4 4, 6 and 5 will be die itself okay so this error cyclotomic process so you know that x power 10 minus 1 factors into this way okay so factors of x minus 1 it is easy to write and then you will have 3 different polynomials of degree 2 with coefficients from S9 okay S9 is from 0 to 8 modulo 9 okay so we will have coefficients like that and then finally we will have one more guy what will be that okay yeah do x plus 1 because x power 10 is even x squared minus 1 so x minus 1 is x plus 1 if you want you can write x plus 1 as x minus 8 okay so that will also be a problem okay and then you will also have some additional polynomials here I am not writing it down I do not know what they are if you want you can simplify it is not very hard to do that I mean after 12 q is 9 so that will be 1 comma 9 so you need a primitive element right so you have to find a primitive element in most cases 2 will be a primitive element I think 2 is a primitive element here 2 power 8 is I think it is is it okay 2 primitive element in CS9 okay so find a primitive element and write it to the powers here it is very easy to multiply we are just doing modulo okay so we will get all the other polynomials also so we can factor like this and then we will take devices from this part okay so we will proceed from here to now