1// ========================================================================== 2// Copyright(c)'1994-2009 by The Givaro group 3// This file is part of Givaro. 4// Givaro is governed by the CeCILL-B license under French law 5// and abiding by the rules of distribution of free software. 6// see the COPYRIGHT file for more details. 7// Time-stamp: <22 Mar 00 20:06:18 Jean-Guillaume.Dumas@imag.fr> 8// ========================================================================== 9// Tabulation of factors of cyclotomic polynomials 10// of degree expo modulo mod 11// By vectors. P = v[0] + v[1] X + ... + v[n] X^n 12#ifndef __GIVARO_poly1_cyclo_table_INL 13#define __GIVARO_poly1_cyclo_table_INL 14 15#include "givaro/givpoly1tabcycl.h" 16 17 18namespace Givaro { 19 20 template<class Domain, class Tag> inline void CyclotomicTable<Domain,Tag>::table_0 (const typename Domain::Residu_t mod, const long expo) { 21 switch (mod) { 22 case 2: 23 switch (expo) { 24 case 2: { Element v(3); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],1); _Irreductible = v; }; break; // 2^2 : 1 + X + X^2 25 case 3: { Element v(4); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],1); _domain.read(v[3],1); _Irreductible = v; }; break; // 2^3 : 1 + X^2 + X^3 26 case 4: { Element v(5); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],0); _domain.read(v[3],0); _domain.read(v[4],1); _Irreductible = v; }; break; // 2^4 : 1 + X + X^4 27 case 5: { Element v(6); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],1); _domain.read(v[3],1); _domain.read(v[4],1); _domain.read(v[5],1); _Irreductible = v; }; break; // 2^5 : 1 + X^2 + X^3 + X^4 + X^5 28 case 6: { Element v(7); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],1); _domain.read(v[3],0); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],1); _Irreductible = v; }; break; // 2^6 : 1 + X + X^2 + X^5 + X^6 29 case 7: { Element v(8); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],1); _domain.read(v[3],1); _domain.read(v[4],1); _domain.read(v[5],1); _domain.read(v[6],0); _domain.read(v[7],1); _Irreductible = v; }; break; // 2^7 : 1 + X + X^2 + X^3 + X^4 + X^5 + X^7 30 case 8: { Element v(9); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],0); _domain.read(v[3],0); _domain.read(v[4],1); _domain.read(v[5],1); _domain.read(v[6],1); _domain.read(v[7],0); _domain.read(v[8],1); _Irreductible = v; }; break; // 2^8 : 1 + X^4 + X^5 + X^6 + X^8 31 case 9: { Element v(10); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],1); _domain.read(v[3],0); _domain.read(v[4],1); _domain.read(v[5],1); _domain.read(v[6],1); _domain.read(v[7],1); _domain.read(v[8],0); _domain.read(v[9],1); _Irreductible = v; }; break; // 2^9 : 1 + X^2 + X^4 + X^5 + X^6 + X^7 + X^9 32 case 10: { Element v(11); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],0); _domain.read(v[3],1); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],1); _domain.read(v[7],0); _domain.read(v[8],1); _domain.read(v[9],0); _domain.read(v[10],1); _Irreductible = v; }; break; // 2^10 : 1 + X + X^3 + X^5 + X^6 + X^8 + X^10 33 case 11: { Element v(12); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],0); _domain.read(v[3],1); _domain.read(v[4],1); _domain.read(v[5],1); _domain.read(v[6],0); _domain.read(v[7],0); _domain.read(v[8],0); _domain.read(v[9],1); _domain.read(v[10],1); _domain.read(v[11],1); _Irreductible = v; }; break; // 2^11 : 1 + X^3 + X^4 + X^5 + X^9 + X^10 + X^11 34 case 12: { Element v(13); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],1); _domain.read(v[3],1); _domain.read(v[4],0); _domain.read(v[5],0); _domain.read(v[6],0); _domain.read(v[7],0); _domain.read(v[8],1); _domain.read(v[9],0); _domain.read(v[10],1); _domain.read(v[11],0); _domain.read(v[12],1); _Irreductible = v; }; break; // 2^12 : 1 + X + X^2 + X^3 + X^8 + X^10 + X^12 35 case 13: { Element v(14); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],1); _domain.read(v[3],0); _domain.read(v[4],0); _domain.read(v[5],0); _domain.read(v[6],0); _domain.read(v[7],0); _domain.read(v[8],0); _domain.read(v[9],1); _domain.read(v[10],0); _domain.read(v[11],1); _domain.read(v[12],1); _domain.read(v[13],1); _Irreductible = v; }; break; // 2^13 : 1 + X + X^2 + X^9 + X^11 + X^12 + X^13 36 case 14: { Element v(15); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],1); _domain.read(v[3],1); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],1); _domain.read(v[7],1); _domain.read(v[8],1); _domain.read(v[9],1); _domain.read(v[10],0); _domain.read(v[11],0); _domain.read(v[12],0); _domain.read(v[13],0); _domain.read(v[14],1); _Irreductible = v; }; break; // 2^14 : 1 + X^2 + X^3 + X^5 + X^6 + X^7 + X^8 + X^9 + X^14 37 case 15: { Element v(16); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],0); _domain.read(v[3],0); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],1); _domain.read(v[7],1); _domain.read(v[8],1); _domain.read(v[9],0); _domain.read(v[10],0); _domain.read(v[11],1); _domain.read(v[12],1); _domain.read(v[13],1); _domain.read(v[14],1); _domain.read(v[15],1); _Irreductible = v; }; break; // 2^15 : 1 + X + X^5 + X^6 + X^7 + X^8 + X^11 + X^12 + X^13 + X^14 + X^15 38 case 16: { Element v(17); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],1); _domain.read(v[3],1); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],0); _domain.read(v[7],0); _domain.read(v[8],1); _domain.read(v[9],0); _domain.read(v[10],1); _domain.read(v[11],0); _domain.read(v[12],1); _domain.read(v[13],0); _domain.read(v[14],1); _domain.read(v[15],0); _domain.read(v[16],1); _Irreductible = v; }; break; // 2^16 : 1 + X^2 + X^3 + X^5 + X^8 + X^10 + X^12 + X^14 + X^16 39 }; break; 40 case 3: 41 switch (expo) { 42 case 2: { Element v(3); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],2); _Irreductible = v; }; break; // 3^2 : 1 + X + (2)*X^2 43 case 3: { Element v(4); _domain.read(v[0],1); _domain.read(v[1],2); _domain.read(v[2],1); _domain.read(v[3],1); _Irreductible = v; }; break; // 3^3 : 1 + (2)*X + X^2 + X^3 44 case 4: { Element v(5); _domain.read(v[0],1); _domain.read(v[1],2); _domain.read(v[2],0); _domain.read(v[3],0); _domain.read(v[4],2); _Irreductible = v; }; break; // 3^4 : 1 + (2)*X + (2)*X^4 45 case 5: { Element v(6); _domain.read(v[0],1); _domain.read(v[1],2); _domain.read(v[2],0); _domain.read(v[3],0); _domain.read(v[4],1); _domain.read(v[5],1); _Irreductible = v; }; break; // 3^5 : 1 + (2)*X + X^4 + X^5 46 case 6: { Element v(7); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],2); _domain.read(v[3],1); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],2); _Irreductible = v; }; break; // 3^6 : 1 + X + (2)*X^2 + X^3 + X^5 + (2)*X^6 47 case 7: { Element v(8); _domain.read(v[0],1); _domain.read(v[1],0); _domain.read(v[2],1); _domain.read(v[3],2); _domain.read(v[4],2); _domain.read(v[5],0); _domain.read(v[6],1); _domain.read(v[7],1); _Irreductible = v; }; break; // 3^7 : 1 + X^2 + (2)*X^3 + (2)*X^4 + X^6 + X^7 48 case 8: { Element v(9); _domain.read(v[0],2); _domain.read(v[1],0); _domain.read(v[2],2); _domain.read(v[3],1); _domain.read(v[4],2); _domain.read(v[5],2); _domain.read(v[6],2); _domain.read(v[7],2); _domain.read(v[8],1); _Irreductible = v; }; break; // 3^8 : (2) + (2)*X^2 + X^3 + (2)*X^4 + (2)*X^5 + (2)*X^6 + (2)*X^7 + X^8 49 case 9: { Element v(10); _domain.read(v[0],1); _domain.read(v[1],2); _domain.read(v[2],2); _domain.read(v[3],1); _domain.read(v[4],2); _domain.read(v[5],0); _domain.read(v[6],1); _domain.read(v[7],0); _domain.read(v[8],0); _domain.read(v[9],1); _Irreductible = v; }; break; // 3^9 : 1 + (2)*X + (2)*X^2 + X^3 + (2)*X^4 + X^6 + X^9 50 case 10: { Element v(11); _domain.read(v[0],2); _domain.read(v[1],2); _domain.read(v[2],0); _domain.read(v[3],1); _domain.read(v[4],1); _domain.read(v[5],1); _domain.read(v[6],0); _domain.read(v[7],1); _domain.read(v[8],0); _domain.read(v[9],1); _domain.read(v[10],1); _Irreductible = v; }; break; // 3^10 : (2) + (2)*X + X^3 + X^4 + X^5 + X^7 + X^9 + X^10 51 }; break; 52 case 5: 53 switch (expo) { 54 case 2: { Element v(3); _domain.read(v[0],1); _domain.read(v[1],1); _domain.read(v[2],2); _Irreductible = v; }; break; // 5^2 : 1 + X + (2)*X^2 55 case 3: { Element v(4); _domain.read(v[0],4); _domain.read(v[1],4); _domain.read(v[2],0); _domain.read(v[3],3); _Irreductible = v; }; break; // 5^3 : (4) + (4)*X + (3)*X^3 56 case 4: { Element v(5); _domain.read(v[0],3); _domain.read(v[1],1); _domain.read(v[2],0); _domain.read(v[3],3); _domain.read(v[4],4); _Irreductible = v; }; break; // 5^4 : (3) + X + (3)*X^3 + (4)*X^4 57 case 5: { Element v(6); _domain.read(v[0],4); _domain.read(v[1],1); _domain.read(v[2],3); _domain.read(v[3],0); _domain.read(v[4],4); _domain.read(v[5],2); _Irreductible = v; }; break; // 5^5 : (4) + X + (3)*X^2 + (4)*X^4 + (2)*X^5 58 case 6: { Element v(7); _domain.read(v[0],2); _domain.read(v[1],3); _domain.read(v[2],2); _domain.read(v[3],4); _domain.read(v[4],0); _domain.read(v[5],1); _domain.read(v[6],1); _Irreductible = v; }; break; // 5^6 : (2) + (3)*X + (2)*X^2 + (4)*X^3 + X^5 + X^6 59 }; break; 60 case 7: 61 switch (expo) { 62 case 2: { Element v(3); _domain.read(v[0],2); _domain.read(v[1],4); _domain.read(v[2],6); _Irreductible = v; }; break; // 7^2 : (2) + (4)*X + (6)*X^2 63 case 3: { Element v(4); _domain.read(v[0],1); _domain.read(v[1],6); _domain.read(v[2],5); _domain.read(v[3],4); _Irreductible = v; }; break; // 7^3 : 1 + (6)*X + (5)*X^2 + (4)*X^3 64 case 4: { Element v(5); _domain.read(v[0],4); _domain.read(v[1],1); _domain.read(v[2],1); _domain.read(v[3],6); _domain.read(v[4],5); _Irreductible = v; }; break; // 7^4 : (4) + X + X^2 + (6)*X^3 + (5)*X^4 65 case 5: { Element v(6); _domain.read(v[0],2); _domain.read(v[1],6); _domain.read(v[2],2); _domain.read(v[3],6); _domain.read(v[4],2); _domain.read(v[5],4); _Irreductible = v; }; break; // 7^5 : (2) + (6)*X + (2)*X^2 + (6)*X^3 + (2)*X^4 + (4)*X^5 66 }; break; 67 case 11: 68 switch (expo) { 69 case 2: { Element v(3); _domain.read(v[0],6); _domain.read(v[1],2); _domain.read(v[2],9); _Irreductible = v; }; break; // 11^2 : (6) + (2)*X + (9)*X^2 70 case 3: { Element v(4); _domain.read(v[0],3); _domain.read(v[1],6); _domain.read(v[2],3); _domain.read(v[3],5); _Irreductible = v; }; break; // 11^3 : (3) + (6)*X + (3)*X^2 + (5)*X^3 71 case 4: { Element v(5); _domain.read(v[0],7); _domain.read(v[1],10); _domain.read(v[2],4); _domain.read(v[3],8); _domain.read(v[4],3); _Irreductible = v; }; break; // 11^4 : (7) + (10)*X + (4)*X^2 + (8)*X^3 + (3)*X^4 72 }; break; 73 case 13: 74 switch (expo) { 75 case 2: { Element v(3); _domain.read(v[0],8); _domain.read(v[1],3); _domain.read(v[2],9); _Irreductible = v; }; break; // 13^2 : (8) + (3)*X + (9)*X^2 76 case 3: { Element v(4); _domain.read(v[0],10); _domain.read(v[1],6); _domain.read(v[2],7); _domain.read(v[3],7); _Irreductible = v; }; break; // 13^3 : (10) + (6)*X + (7)*X^2 + (7)*X^3 77 case 4: { Element v(5); _domain.read(v[0],1); _domain.read(v[1],12); _domain.read(v[2],10); _domain.read(v[3],4); _domain.read(v[4],6); _Irreductible = v; }; break; // 13^4 : 1 + (12)*X + (10)*X^2 + (4)*X^3 + (6)*X^4 78 }; break; 79 case 17: 80 switch (expo) { 81 case 2: { Element v(3); _domain.read(v[0],9); _domain.read(v[1],2); _domain.read(v[2],12); _Irreductible = v; }; break; // 17^2 : (9) + (2)*X + (12)*X^2 82 case 3: { Element v(4); _domain.read(v[0],15); _domain.read(v[1],13); _domain.read(v[2],7); _domain.read(v[3],5); _Irreductible = v; }; break; // 17^3 : (15) + (13)*X + (7)*X^2 + (5)*X^3 83 }; break; 84 case 19: 85 switch (expo) { 86 case 2: { Element v(3); _domain.read(v[0],4); _domain.read(v[1],18); _domain.read(v[2],3); _Irreductible = v; }; break; // 19^2 : (4) + (18)*X + (3)*X^2 87 case 3: { Element v(4); _domain.read(v[0],2); _domain.read(v[1],11); _domain.read(v[2],17); _domain.read(v[3],15); _Irreductible = v; }; break; // 19^3 : (2) + (11)*X + (17)*X^2 + (15)*X^3 88 }; break; 89 case 23: 90 switch (expo) { 91 case 2: { Element v(3); _domain.read(v[0],15); _domain.read(v[1],1); _domain.read(v[2],3); _Irreductible = v; }; break; // 23^2 : (15) + X + (3)*X^2 92 case 3: { Element v(4); _domain.read(v[0],12); _domain.read(v[1],6); _domain.read(v[2],11); _domain.read(v[3],18); _Irreductible = v; }; break; // 23^3 : (12) + (6)*X + (11)*X^2 + (18)*X^3 93 }; break; 94 case 29: 95 switch (expo) { 96 case 2: { Element v(3); _domain.read(v[0],13); _domain.read(v[1],17); _domain.read(v[2],19); _Irreductible = v; }; break; // 29^2 : (13) + (17)*X + (19)*X^2 97 case 3: { Element v(4); _domain.read(v[0],5); _domain.read(v[1],10); _domain.read(v[2],10); _domain.read(v[3],21); _Irreductible = v; }; break; // 29^3 : (5) + (10)*X + (10)*X^2 + (21)*X^3 98 }; break; 99 case 31: 100 switch (expo) { 101 case 2: { Element v(3); _domain.read(v[0],24); _domain.read(v[1],1); _domain.read(v[2],2); _Irreductible = v; }; break; // 31^2 : (24) + X + (2)*X^2 102 case 3: { Element v(4); _domain.read(v[0],20); _domain.read(v[1],29); _domain.read(v[2],5); _domain.read(v[3],1); _Irreductible = v; }; break; // 31^3 : (20) + (29)*X + (5)*X^2 + X^3 103 }; break; 104 case 37: 105 switch (expo) { 106 }; break; 107 }; 108 if (isZero(_Irreductible)) table_50(mod,expo); 109 } 110 template<class Domain, class Tag> inline void CyclotomicTable<Domain,Tag>::table_50 (const typename Domain::Residu_t mod, const long expo) { 111 switch (mod) { 112 case 37: 113 switch (expo) { 114 case 2: { Element v(3); _domain.read(v[0],10); _domain.read(v[1],32); _domain.read(v[2],20); _Irreductible = v; }; break; // 37^2 : (10) + (32)*X + (20)*X^2 115 case 3: { Element v(4); _domain.read(v[0],34); _domain.read(v[1],16); _domain.read(v[2],35); _domain.read(v[3],35); _Irreductible = v; }; break; // 37^3 : (34) + (16)*X + (35)*X^2 + (35)*X^3 116 }; break; 117 case 41: 118 switch (expo) { 119 case 2: { Element v(3); _domain.read(v[0],27); _domain.read(v[1],37); _domain.read(v[2],21); _Irreductible = v; }; break; // 41^2 : (27) + (37)*X + (21)*X^2 120 }; break; 121 case 43: 122 switch (expo) { 123 case 2: { Element v(3); _domain.read(v[0],24); _domain.read(v[1],18); _domain.read(v[2],22); _Irreductible = v; }; break; // 43^2 : (24) + (18)*X + (22)*X^2 124 }; break; 125 case 47: 126 switch (expo) { 127 case 2: { Element v(3); _domain.read(v[0],43); _domain.read(v[1],44); _domain.read(v[2],3); _Irreductible = v; }; break; // 47^2 : (43) + (44)*X + (3)*X^2 128 }; break; 129 case 53: 130 switch (expo) { 131 case 2: { Element v(3); _domain.read(v[0],43); _domain.read(v[1],52); _domain.read(v[2],22); _Irreductible = v; }; break; // 53^2 : (43) + (52)*X + (22)*X^2 132 }; break; 133 case 59: 134 switch (expo) { 135 case 2: { Element v(3); _domain.read(v[0],11); _domain.read(v[1],31); _domain.read(v[2],15); _Irreductible = v; }; break; // 59^2 : (11) + (31)*X + (15)*X^2 136 }; break; 137 case 61: 138 switch (expo) { 139 case 2: { Element v(3); _domain.read(v[0],15); _domain.read(v[1],60); _domain.read(v[2],17); _Irreductible = v; }; break; // 61^2 : (15) + (60)*X + (17)*X^2 140 }; break; 141 case 67: 142 switch (expo) { 143 case 2: { Element v(3); _domain.read(v[0],9); _domain.read(v[1],54); _domain.read(v[2],63); _Irreductible = v; }; break; // 67^2 : (9) + (54)*X + (63)*X^2 144 }; break; 145 case 71: 146 switch (expo) { 147 case 2: { Element v(3); _domain.read(v[0],39); _domain.read(v[1],63); _domain.read(v[2],15); _Irreductible = v; }; break; // 71^2 : (39) + (63)*X + (15)*X^2 148 }; break; 149 case 73: 150 switch (expo) { 151 case 2: { Element v(3); _domain.read(v[0],23); _domain.read(v[1],1); _domain.read(v[2],29); _Irreductible = v; }; break; // 73^2 : (23) + X + (29)*X^2 152 }; break; 153 case 79: 154 switch (expo) { 155 case 2: { Element v(3); _domain.read(v[0],39); _domain.read(v[1],32); _domain.read(v[2],36); _Irreductible = v; }; break; // 79^2 : (39) + (32)*X + (36)*X^2 156 }; break; 157 case 83: 158 switch (expo) { 159 case 2: { Element v(3); _domain.read(v[0],79); _domain.read(v[1],8); _domain.read(v[2],30); _Irreductible = v; }; break; // 83^2 : (79) + (8)*X + (30)*X^2 160 }; break; 161 case 89: 162 switch (expo) { 163 case 2: { Element v(3); _domain.read(v[0],88); _domain.read(v[1],13); _domain.read(v[2],76); _Irreductible = v; }; break; // 89^2 : (88) + (13)*X + (76)*X^2 164 }; break; 165 case 97: 166 switch (expo) { 167 case 2: { Element v(3); _domain.read(v[0],16); _domain.read(v[1],39); _domain.read(v[2],67); _Irreductible = v; }; break; // 97^2 : (16) + (39)*X + (67)*X^2 168 }; break; 169 case 101: 170 switch (expo) { 171 case 2: { Element v(3); _domain.read(v[0],93); _domain.read(v[1],61); _domain.read(v[2],31); _Irreductible = v; }; break; // 101^2 : (93) + (61)*X + (31)*X^2 172 }; break; 173 case 103: 174 switch (expo) { 175 case 2: { Element v(3); _domain.read(v[0],16); _domain.read(v[1],34); _domain.read(v[2],22); _Irreductible = v; }; break; // 103^2 : (16) + (34)*X + (22)*X^2 176 }; break; 177 case 107: 178 switch (expo) { 179 case 2: { Element v(3); _domain.read(v[0],90); _domain.read(v[1],80); _domain.read(v[2],6); _Irreductible = v; }; break; // 107^2 : (90) + (80)*X + (6)*X^2 180 }; break; 181 case 109: 182 switch (expo) { 183 case 2: { Element v(3); _domain.read(v[0],41); _domain.read(v[1],101); _domain.read(v[2],20); _Irreductible = v; }; break; // 109^2 : (41) + (101)*X + (20)*X^2 184 }; break; 185 case 113: 186 switch (expo) { 187 case 2: { Element v(3); _domain.read(v[0],99); _domain.read(v[1],111); _domain.read(v[2],76); _Irreductible = v; }; break; // 113^2 : (99) + (111)*X + (76)*X^2 188 }; break; 189 case 127: 190 switch (expo) { 191 case 2: { Element v(3); _domain.read(v[0],60); _domain.read(v[1],113); _domain.read(v[2],54); _Irreductible = v; }; break; // 127^2 : (60) + (113)*X + (54)*X^2 192 }; break; 193 case 131: 194 switch (expo) { 195 case 2: { Element v(3); _domain.read(v[0],128); _domain.read(v[1],90); _domain.read(v[2],84); _Irreductible = v; }; break; // 131^2 : (128) + (90)*X + (84)*X^2 196 }; break; 197 case 137: 198 switch (expo) { 199 case 2: { Element v(3); _domain.read(v[0],120); _domain.read(v[1],85); _domain.read(v[2],127); _Irreductible = v; }; break; // 137^2 : (120) + (85)*X + (127)*X^2 200 }; break; 201 case 139: 202 switch (expo) { 203 case 2: { Element v(3); _domain.read(v[0],131); _domain.read(v[1],16); _domain.read(v[2],88); _Irreductible = v; }; break; // 139^2 : (131) + (16)*X + (88)*X^2 204 }; break; 205 case 149: 206 switch (expo) { 207 case 2: { Element v(3); _domain.read(v[0],36); _domain.read(v[1],84); _domain.read(v[2],97); _Irreductible = v; }; break; // 149^2 : (36) + (84)*X + (97)*X^2 208 }; break; 209 case 151: 210 switch (expo) { 211 case 2: { Element v(3); _domain.read(v[0],54); _domain.read(v[1],149); _domain.read(v[2],29); _Irreductible = v; }; break; // 151^2 : (54) + (149)*X + (29)*X^2 212 }; break; 213 case 157: 214 switch (expo) { 215 case 2: { Element v(3); _domain.read(v[0],93); _domain.read(v[1],8); _domain.read(v[2],62); _Irreductible = v; }; break; // 157^2 : (93) + (8)*X + (62)*X^2 216 }; break; 217 case 163: 218 switch (expo) { 219 case 2: { Element v(3); _domain.read(v[0],38); _domain.read(v[1],112); _domain.read(v[2],122); _Irreductible = v; }; break; // 163^2 : (38) + (112)*X + (122)*X^2 220 }; break; 221 case 167: 222 switch (expo) { 223 case 2: { Element v(3); _domain.read(v[0],35); _domain.read(v[1],70); _domain.read(v[2],108); _Irreductible = v; }; break; // 167^2 : (35) + (70)*X + (108)*X^2 224 }; break; 225 case 173: 226 switch (expo) { 227 case 2: { Element v(3); _domain.read(v[0],154); _domain.read(v[1],119); _domain.read(v[2],81); _Irreductible = v; }; break; // 173^2 : (154) + (119)*X + (81)*X^2 228 }; break; 229 case 179: 230 switch (expo) { 231 case 2: { Element v(3); _domain.read(v[0],131); _domain.read(v[1],103); _domain.read(v[2],74); _Irreductible = v; }; break; // 179^2 : (131) + (103)*X + (74)*X^2 232 }; break; 233 case 181: 234 switch (expo) { 235 case 2: { Element v(3); _domain.read(v[0],156); _domain.read(v[1],135); _domain.read(v[2],164); _Irreductible = v; }; break; // 181^2 : (156) + (135)*X + (164)*X^2 236 }; break; 237 case 191: 238 switch (expo) { 239 case 2: { Element v(3); _domain.read(v[0],91); _domain.read(v[1],15); _domain.read(v[2],49); _Irreductible = v; }; break; // 191^2 : (91) + (15)*X + (49)*X^2 240 }; break; 241 case 193: 242 switch (expo) { 243 case 2: { Element v(3); _domain.read(v[0],65); _domain.read(v[1],7); _domain.read(v[2],82); _Irreductible = v; }; break; // 193^2 : (65) + (7)*X + (82)*X^2 244 }; break; 245 case 197: 246 switch (expo) { 247 case 2: { Element v(3); _domain.read(v[0],179); _domain.read(v[1],72); _domain.read(v[2],132); _Irreductible = v; }; break; // 197^2 : (179) + (72)*X + (132)*X^2 248 }; break; 249 case 199: 250 switch (expo) { 251 case 2: { Element v(3); _domain.read(v[0],35); _domain.read(v[1],157); _domain.read(v[2],179); _Irreductible = v; }; break; // 199^2 : (35) + (157)*X + (179)*X^2 252 }; break; 253 case 211: 254 switch (expo) { 255 case 2: { Element v(3); _domain.read(v[0],68); _domain.read(v[1],122); _domain.read(v[2],43); _Irreductible = v; }; break; // 211^2 : (68) + (122)*X + (43)*X^2 256 }; break; 257 case 223: 258 switch (expo) { 259 case 2: { Element v(3); _domain.read(v[0],63); _domain.read(v[1],61); _domain.read(v[2],123); _Irreductible = v; }; break; // 223^2 : (63) + (61)*X + (123)*X^2 260 }; break; 261 case 227: 262 switch (expo) { 263 case 2: { Element v(3); _domain.read(v[0],73); _domain.read(v[1],60); _domain.read(v[2],15); _Irreductible = v; }; break; // 227^2 : (73) + (60)*X + (15)*X^2 264 }; break; 265 case 229: 266 switch (expo) { 267 case 2: { Element v(3); _domain.read(v[0],171); _domain.read(v[1],75); _domain.read(v[2],79); _Irreductible = v; }; break; // 229^2 : (171) + (75)*X + (79)*X^2 268 }; break; 269 case 233: 270 switch (expo) { 271 case 2: { Element v(3); _domain.read(v[0],224); _domain.read(v[1],55); _domain.read(v[2],176); _Irreductible = v; }; break; // 233^2 : (224) + (55)*X + (176)*X^2 272 }; break; 273 case 239: 274 switch (expo) { 275 case 2: { Element v(3); _domain.read(v[0],58); _domain.read(v[1],70); _domain.read(v[2],221); _Irreductible = v; }; break; // 239^2 : (58) + (70)*X + (221)*X^2 276 }; break; 277 case 241: 278 switch (expo) { 279 case 2: { Element v(3); _domain.read(v[0],48); _domain.read(v[1],194); _domain.read(v[2],219); _Irreductible = v; }; break; // 241^2 : (48) + (194)*X + (219)*X^2 280 }; break; 281 case 251: 282 switch (expo) { 283 case 2: { Element v(3); _domain.read(v[0],108); _domain.read(v[1],61); _domain.read(v[2],163); _Irreductible = v; }; break; // 251^2 : (108) + (61)*X + (163)*X^2 284 }; break; 285 }; 286 if (isZero(_Irreductible)) set_random_irreducible(_domain,expo); 287 } 288 289} // Givaro 290 291#endif // __GIVARO_poly1_cyclo_table_INL 292/* -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 293// vim:sts=4:sw=4:ts=4:et:sr:cino=>s,f0,{0,g0,(0,\:0,t0,+0,=s 294