Example #1
0
  static {
    initTables();

    /*
    F2wPoly.F2w f2wBase = new F2wPoly.F2w(modQ);

    polyBase = new F2wPoly
               (R, new F2wPoly.F2w.F2wElem[]{f2wBase.createElem(Br),
                                             f2wBase.createElem(BrmT)},
                new int[]{0,T}, f2wBase);


    curr_stream = polyBase.createElem
                  (new int[]{0x95F24DAB, 0x0B685215, 0xE76CCAE7, 0xAF3EC239,
                             0x715FAD23, 0x24A590AD, 0x69E4B5EF, 0xBF456141,
                             0x96BC1B7B, 0xA7BDF825, 0xC1DE75B7, 0x8858A9C9,
                             0x2DA87693, 0xB657F9DD, 0xFFDC8A8F, 0x8121DA71,
                             0x8B823ECB, 0x885D05F5, 0x4E20CD47, 0x5A9AD5D9,
                             0x512C0C03, 0xEA857CCD, 0x4CC1D30F, 0x8891A8A1,
                             0xA6B7AADB});

    curr_stream = new int[]{0x95F24DAB, 0x0B685215, 0xE76CCAE7, 0xAF3EC239,
                            0x715FAD23, 0x24A590AD, 0x69E4B5EF, 0xBF456141,
                            0x96BC1B7B, 0xA7BDF825, 0xC1DE75B7, 0x8858A9C9,
                            0x2DA87693, 0xB657F9DD, 0xFFDC8A8F, 0x8121DA71,
                            0x8B823ECB, 0x885D05F5, 0x4E20CD47, 0x5A9AD5D9,
                            0x512C0C03, 0xEA857CCD, 0x4CC1D30F, 0x8891A8A1,
                            0xA6B7AADB};

    // Il n'est pas utile de fournir les resultats des exponentiation
    // puisqu'elles ne prennent qu'un temps negligeable par rapport
    // a la creation des tables de pre-calculs.


    jumpW = polyBase.createElem(new int[]
       {0, 1960343840, 1516339037, -333505122, -1976104464, -482584330,
        -1279385510, -1806644808, -1348555459, -588715441, 2019804456,
        533392567, 1830622053, -348374534, 335303887, 193005475, 2020690292,
        1810924850, -1106874017, 988574120, -581662300, 1744525859,
        697086516, 1542714170, -916619518});

    jumpZ = polyBase.createElem(new int[]
       {0, -946485540, 1238370284, -1390769524, -1573619753, -524893823,
        -873333569, 600407275, 631551291, 1484250168, 81475604, 721883080,
        767883194, 1119863295, -948128525, -2061810380, 631461516,
        351243833, 417985878, 828823193, 1965856614, -673630318,
        -2078590119, -1319538924, 838929999});


    jumpW = polyBase.createZ().exponentiateBase2(w);
    jumpZ = jumpW.exponentiateBase2(v);



    //transfert des vecteurs dans des matrices

    BitVector[] bv = new BitVector[800];
    int[] vect = new int[R];

    for(int i = 0; i < 800; i++)
       {
          for(int j = 0; j < vect.length; j++)
             vect[j] = 0;
          vect[i / 32] = 1 << (i % 32);
          polyBase.createElem(vect).multiply(jumpW).copyTo(vect);
          bv[i] = new BitVector(vect, 800);
       }
    Apw = (new BitMatrix(bv)).transpose();


    for(int i = 0; i < 800; i++)
       {
          for(int j = 0; j < vect.length; j++)
             vect[j] = 0;
          vect[i / 32] = 1 << (i % 32);
          polyBase.createElem(vect).multiply(jumpZ).copyTo(vect);
          bv[i] = new BitVector(vect, 800);
       }
    Apz = (new BitMatrix(bv)).transpose();
    */
  }