summaryrefslogtreecommitdiff
path: root/tools/testgen/write_test.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/testgen/write_test.h')
-rw-r--r--tools/testgen/write_test.h231
1 files changed, 0 insertions, 231 deletions
diff --git a/tools/testgen/write_test.h b/tools/testgen/write_test.h
deleted file mode 100644
index 4c3f391..0000000
--- a/tools/testgen/write_test.h
+++ /dev/null
@@ -1,231 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-
-char* licence =
-"# This file is part of the MPC Library.\n"
-"#\n"
-"# The MPC Library is free software; you can redistribute it and/or modify\n"
-"# it under the terms of the GNU Lesser General Public License as published by\n"
-"# the Free Software Foundation; either version 2.1 of the License, or (at your\n"
-"# option) any later version.\n"
-"#\n"
-"# The MPC Library is distributed in the hope that it will be useful, but\n"
-"# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
-"# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public\n"
-"# License for more details.\n"
-"#\n"
-"# You should have received a copy of the GNU Lesser General Public License\n"
-"# along with the MPC Library; see the file COPYING.LIB. If not, write to\n"
-"# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,\n"
-"# MA 02111-1307, USA.\n"
-"#\n"
-;
-
-char* values [] = {"-inf", "-1", "-0", "+0", "1", "+inf", "nan"};
-int valueslen = 7;
-char* infvalues [] = {"-inf", "+inf", "nan"};
-int infvalueslen = 3;
-
-int equals (char* a, char* b) {
- return !strcmp (a, b);
-}
-
-int index (char** table, int length, char* value) {
- // returns the index of value in the table,
- // or -1 if it is not found
- int i;
- for (i = 0; i < length; i++)
- if (equals (table [i], value))
- return i;
- return -1;
-}
-
-char* mul_fr_fr (char *op1, char *op2) {
- // returns op1*op2
- if (equals (op1, "nan") || equals (op2, "nan"))
- return "nan";
- // none is nan
- else if (equals (op1, "-inf")) {
- // res = op1 * values
- char* res [] = {"+inf", "+inf", "nan", "nan", "-inf", "-inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "-1")) {
- char* res [] = {"+inf", "1", "+0", "-0", "-1", "-inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "-0")) {
- char* res [] = {"nan", "+0", "+0", "-0", "-0", "nan", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "+0")) {
- char* res [] = {"nan", "-0", "-0", "+0", "+0", "nan", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "1")) {
- char* res [] = {"-inf", "-1", "-0", "+0", "1", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "+inf")) {
- char* res [] = {"-inf", "-inf", "nan", "nan", "+inf", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else
- return "?";
-}
-
-char* div_fr_fr (char *op1, char *op2) {
- // returns op1/op2
- char *r;
-// printf (" %s %s", op1, op2);
- if (equals (op1, "nan") || equals (op2, "nan"))
- r = "nan";
- else if (equals (op2, "-inf")) {
- char* res [] = {"nan", "+0", "+0", "-0", "-0", "nan", ""};
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "-2")) {
- char* res [] = {"+inf", "0.5", "+0", "-0", "-0.5", "-inf", ""};
- if (equals (op1, "-2"))
- r = "1";
- else if (equals (op1, "2"))
- r = "-1";
- else if (equals (op1, "0"))
- r = "0";
- else
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "-1")) {
- char* res [] = {"+inf", "1", "+0", "-0", "-1", "-inf", ""};
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "-0")) {
- char* res [] = {"+inf", "+inf", "nan", "nan", "-inf", "-inf", ""};
- if (equals (op1, "0"))
- r = "nan";
- else
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "+0")) {
- char* res [] = {"-inf", "-inf", "nan", "nan", "+inf", "+inf", ""};
- if (equals (op1, "0"))
- r = "nan";
- else
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "1")) {
- char* res [] = {"-inf", "-1", "-0", "+0", "1", "+inf", ""};
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "2")) {
- char* res [] = {"-inf", "-0.5", "-0", "+0", "0.5", "+inf", ""};
- if (equals (op1, "-2"))
- r = "-1";
- else if (equals (op1, "2"))
- r = "1";
- else if (equals (op1, "0"))
- r = "0";
- else
- r = res [index (values, valueslen, op1)];
- }
- else if (equals (op2, "+inf")) {
- char* res [] = {"nan", "-0", "-0", "+0", "+0", "nan", ""};
- r = res [index (values, valueslen, op1)];
- }
- else
- r = "?";
-// printf (" %s\n", r);
- return r;
-}
-
-char* add_fr_fr (char *op1, char *op2) {
- // returns op1+op2
- if (equals (op1, "nan") || equals (op2, "nan"))
- return "nan";
- else if (equals (op1, "-inf")) {
- char* res [] = {"-inf", "-inf", "-inf", "-inf", "-inf", "nan", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "-1")) {
- char* res [] = {"-inf", "-2", "-1", "-1", "0", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "-0")) {
- char* res [] = {"-inf", "-1", "-0", "0", "1", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "+0")) {
- char* res [] = {"-inf", "-1", "0", "+0", "1", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "1")) {
- char* res [] = {"-inf", "0", "1", "1", "2", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else if (equals (op1, "+inf")) {
- char* res [] = {"nan", "+inf", "+inf", "+inf", "+inf", "+inf", ""};
- return res [index (values, valueslen, op2)];
- }
- else
- return "?";
-}
-
-char* neg_fr (char *op) {
- // returns -op
- if (index (values, valueslen, op) != -1) {
- char* res [] = {"+inf", "1", "+0", "-0", "-1", "-inf", "nan"};
- return res [index (values, valueslen, op)];
- }
- else if (equals (op, "0"))
- return "0";
- else
- return "?";
-}
-
-char* sub_fr_fr (char *op1, char *op2) {
- // returns op1-op2
- return add_fr_fr (op1, neg_fr (op2));
-}
-
-char* norm (char *opre, char *opim) {
- // returns opre^2+opim^2
- if (equals (opre, "nan") || equals (opim, "nan"))
- if ( (equals (opre, "-inf") || equals (opre, "+inf"))
- || (equals (opim, "-inf") || equals (opim, "+inf")))
- return "+inf";
- else
- return "nan";
- else
- return add_fr_fr (mul_fr_fr (opre, opre), mul_fr_fr (opim, opim));
-}
-
-char* div_re (char *op1re, char *op1im, char *op2re, char *op2im) {
- // returns real part of complex division
- if ( equals (op1re, "nan") || equals (op1im, "nan")
- || equals (op2re, "nan") || equals (op2im, "nan"))
- return "nan";
- else if (equals (op2im, "-0") || equals (op2im, "+0"))
- return div_fr_fr (op1re, op2re);
- else if (equals (op2re, "-0") || equals (op2re, "+0"))
- return div_fr_fr (op1im, op2im);
- else
- return div_fr_fr (
- add_fr_fr (mul_fr_fr (op1re, op2re), mul_fr_fr (op1im, op2im)),
- norm (op2re, op2im));
-}
-
-char* div_im (char *op1re, char *op1im, char *op2re, char *op2im) {
- // returns imaginary part of complex division
- if ( equals (op1re, "nan") || equals (op1im, "nan")
- || equals (op2re, "nan") || equals (op2im, "nan"))
- return "nan";
- else if (equals (op2im, "-0") || equals (op2im, "+0"))
- return div_fr_fr (op1im, op2re);
- else if (equals (op2re, "-0") || equals (op2re, "+0"))
- return neg_fr (div_fr_fr (op1re, op2im));
- else
- return div_fr_fr (
- sub_fr_fr (mul_fr_fr (op1im, op2re), mul_fr_fr (op1re, op2im)),
- norm (op2re, op2im));
-}
-