Пример #1
0
void fpe_short_coeffred(fpe_t rop)
{
  mydouble carry11 = round(rop->v[11]/bn_v);
  rop->v[11] = remround(rop->v[11],bn_v);
  rop->v[0] = rop->v[0] - carry11;
  rop->v[3] = rop->v[3] - carry11;
  rop->v[6] = rop->v[6] - 4*carry11;
  rop->v[9] = rop->v[9] - carry11;
  mydouble carry0 = round(rop->v[0]/bn_v6);
  mydouble carry1 = round(rop->v[1]/bn_v);
  mydouble carry2 = round(rop->v[2]/bn_v);
  mydouble carry3 = round(rop->v[3]/bn_v);
  mydouble carry4 = round(rop->v[4]/bn_v);
  mydouble carry5 = round(rop->v[5]/bn_v);
  mydouble carry6 = round(rop->v[6]/bn_v6);
  mydouble carry7 = round(rop->v[7]/bn_v);
  mydouble carry8 = round(rop->v[8]/bn_v);
  mydouble carry9 = round(rop->v[9]/bn_v);
  mydouble carry10 = round(rop->v[10]/bn_v);
  rop->v[0] = remround(rop->v[0],bn_v6);
  rop->v[1] = remround(rop->v[1],bn_v);
  rop->v[2] = remround(rop->v[2],bn_v);
  rop->v[3] = remround(rop->v[3],bn_v);
  rop->v[4] = remround(rop->v[4],bn_v);
  rop->v[5] = remround(rop->v[5],bn_v);
  rop->v[6] = remround(rop->v[6],bn_v6);
  rop->v[7] = remround(rop->v[7],bn_v);
  rop->v[8] = remround(rop->v[8],bn_v);
  rop->v[9] = remround(rop->v[9],bn_v);
  rop->v[10] = remround(rop->v[10],bn_v);
  rop->v[1] += carry0;
  rop->v[2] += carry1;
  rop->v[3] += carry2;
  rop->v[4] += carry3;
  rop->v[5] += carry4;
  rop->v[6] += carry5;
  rop->v[7] += carry6;
  rop->v[8] += carry7;
  rop->v[9] += carry8;
  rop->v[10] += carry9;
  rop->v[11] += carry10;
}
Пример #2
0
Файл: fp2e.c Проект: agl/dclxvi
void fp2e_short_coeffred_c(fp2e_t rop)
{
  mydouble carry11 = round(rop->v[22] / bn_v);
  mydouble carry11b = round(rop->v[23] / bn_v);
  rop->v[22] = remround(rop->v[22], bn_v);
  rop->v[23] = remround(rop->v[23], bn_v);
  rop->v[0] = rop->v[0] - carry11;
  rop->v[1] = rop->v[1] - carry11b;
  rop->v[6] = rop->v[6] - carry11;
  rop->v[7] = rop->v[7] - carry11b;
  rop->v[12] = rop->v[12] - 4 * carry11;
  rop->v[13] = rop->v[13] - 4 * carry11b;
  rop->v[18] = rop->v[18] - carry11;
  rop->v[19] = rop->v[19] - carry11b;

  mydouble carry1 = round(rop->v[2] / bn_v);
  mydouble carry1b = round(rop->v[3] / bn_v);
  rop->v[2] = remround(rop->v[2], bn_v);
  rop->v[3] = remround(rop->v[3], bn_v);
  rop->v[4] += carry1;
  rop->v[5] += carry1b;

  mydouble carry3 = round(rop->v[6] / bn_v);
  mydouble carry3b = round(rop->v[7] / bn_v);
  rop->v[6] = remround(rop->v[6], bn_v);
  rop->v[7] = remround(rop->v[7], bn_v);
  rop->v[8] += carry3;
  rop->v[9] += carry3b;

  mydouble carry5 = round(rop->v[10] / bn_v);
  mydouble carry5b = round(rop->v[11] / bn_v);
  rop->v[10] = remround(rop->v[10], bn_v);
  rop->v[11] = remround(rop->v[11], bn_v);
  rop->v[12] += carry5;
  rop->v[13] += carry5b;

  mydouble carry7 = round(rop->v[14] / bn_v);
  mydouble carry7b = round(rop->v[15] / bn_v);
  rop->v[14] = remround(rop->v[14], bn_v);
  rop->v[15] = remround(rop->v[15], bn_v);
  rop->v[16] += carry7;
  rop->v[17] += carry7b;

  mydouble carry9 = round(rop->v[18] / bn_v);
  mydouble carry9b = round(rop->v[19] / bn_v);
  rop->v[18] = remround(rop->v[18], bn_v);
  rop->v[19] = remround(rop->v[19], bn_v);
  rop->v[20] += carry9;
  rop->v[21] += carry9b;

  mydouble carry0 = round(rop->v[0] / bn_v6);
  mydouble carry0b = round(rop->v[1] / bn_v6);
  rop->v[0] = remround(rop->v[0], bn_v6);
  rop->v[1] = remround(rop->v[1], bn_v6);
  rop->v[2] += carry0;
  rop->v[3] += carry0b;

  mydouble carry2 = round(rop->v[4] / bn_v);
  mydouble carry2b = round(rop->v[5] / bn_v);
  rop->v[4] = remround(rop->v[4], bn_v);
  rop->v[5] = remround(rop->v[5], bn_v);
  rop->v[6] += carry2;
  rop->v[7] += carry2b;

  mydouble carry4 = round(rop->v[8] / bn_v);
  mydouble carry4b = round(rop->v[9] / bn_v);
  rop->v[8] = remround(rop->v[8], bn_v);
  rop->v[9] = remround(rop->v[9], bn_v);
  rop->v[10] += carry4;
  rop->v[11] += carry4b;

  mydouble carry6 = round(rop->v[12] / bn_v6);
  mydouble carry6b = round(rop->v[13] / bn_v6);
  rop->v[12] = remround(rop->v[12], bn_v6);
  rop->v[13] = remround(rop->v[13], bn_v6);
  rop->v[14] += carry6;
  rop->v[15] += carry6b;

  mydouble carry8 = round(rop->v[16] / bn_v);
  mydouble carry8b = round(rop->v[17] / bn_v);
  rop->v[16] = remround(rop->v[16], bn_v);
  rop->v[17] = remround(rop->v[17], bn_v);
  rop->v[18] += carry8;
  rop->v[19] += carry8b;

  mydouble carry10 = round(rop->v[20] / bn_v);
  mydouble carry10b = round(rop->v[21] / bn_v);
  rop->v[20] = remround(rop->v[20], bn_v);
  rop->v[21] = remround(rop->v[21], bn_v);
  rop->v[22] += carry10;
  rop->v[23] += carry10b;
}