summaryrefslogtreecommitdiff
path: root/tools/testgen/write_test_mulfr.c
blob: 1dfc577610679932f5772738f2618e9be68ed7dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "write_test.h"

char* header1 =
"# Data file for mpc_mul_fr.\n"
"#\n"
"# Copyright (C) 2008 Andreas Enge\n"
"#\n"
;
char* header2 =
"# For explanations on the file format, see add_fr.dat.\n\n"
;

int main () {
   int op1rei, op1imi, op2i;
      // index in values table
   char *op1re, *op1im, *op2;

   printf ("%s%s%s", header1, licence, header2);

   printf ("# special values\n");
   for (op1rei = 0; op1rei < valueslen; op1rei++)
   for (op1imi = 0; op1imi < valueslen; op1imi++)
   for (op2i = 0; op2i < valueslen; op2i++)
   {
      op1re = values [op1rei];
      op1im = values [op1imi];
      op2 = values [op2i];
      if (   (index (infvalues, infvalueslen, op1re) != -1)
          || (index (infvalues, infvalueslen, op1im) != -1)
          || (index (infvalues, infvalueslen, op2) != -1))
      {
         // at least one infinite value
         printf ("7 %4s 7 %4s   ",
            mul_fr_fr (op1re, op2), mul_fr_fr (op1im, op2));
         printf ("7 %4s 7 %4s  7 %4s  N N\n",
            op1re, op1im, op2);
      }
   }

   printf ("\n# values with only 1, -1, +0, -0\n");
   for (op1rei = 0; op1rei < valueslen; op1rei++)
   for (op1imi = 0; op1imi < valueslen; op1imi++)
   for (op2i = 0; op2i < valueslen; op2i++)
   {
      op1re = values [op1rei];
      op1im = values [op1imi];
      op2 = values [op2i];
      if (   (index (infvalues, infvalueslen, op1re) == -1)
          && (index (infvalues, infvalueslen, op1im) == -1)
          && (index (infvalues, infvalueslen, op2) == -1))
      {
         printf ("7 %4s 7 %4s   ",
            mul_fr_fr (op1re, op2), mul_fr_fr (op1im, op2));
         printf ("7 %4s 7 %4s  7 %4s  N N\n",
            op1re, op1im, op2);
      }
   }

   return 1;
}