diff options
Diffstat (limited to 'tools/testgen/write_test_div.c')
-rw-r--r-- | tools/testgen/write_test_div.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/testgen/write_test_div.c b/tools/testgen/write_test_div.c new file mode 100644 index 0000000..c00f577 --- /dev/null +++ b/tools/testgen/write_test_div.c @@ -0,0 +1,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; +} |