summaryrefslogtreecommitdiff
path: root/tools/testgen/write_test_div.c
blob: c00f5779ede6f9d8124b8104c54c7a2098bf9cce (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
61
62
63
64
65
66
67
68
#include "write_test.h"

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

int main () {
   int op1rei, op1imi, op2rei, op2imi;
      // index in values table
   char *op1re, *op1im, *op2re, *op2im;

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

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

   printf ("\n# finite values\n");
   for (op1rei = 0; op1rei < valueslen; op1rei++)
   for (op1imi = 0; op1imi < valueslen; op1imi++)
   for (op2rei = 0; op2rei < valueslen; op2rei++)
   for (op2imi = 0; op2imi < valueslen; op2imi++)
   {
      op1re = values [op1rei];
      op1im = values [op1imi];
      op2re = values [op2rei];
      op2im = values [op2imi];
      if (   (index (infvalues, infvalueslen, op1re) == -1)
          && (index (infvalues, infvalueslen, op1im) == -1)
          && (index (infvalues, infvalueslen, op2re) == -1)
          && (index (infvalues, infvalueslen, op2im) == -1))
      {
         printf ("7 %4s 7 %4s   ",
            div_re (op1re, op1im, op2re, op2im),
            div_im (op1re, op1im, op2re, op2im));
         printf ("7 %4s 7 %4s  7 %4s 7 %4s N N\n",
            op1re, op1im, op2re, op2im);
      }
   }

   return 1;
}