intervals 0.3.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. data/VERSION.txt +1 -0
  2. data/ext/crlibm/AUTHORS +2 -0
  3. data/ext/crlibm/COPYING +504 -0
  4. data/ext/crlibm/ChangeLog +80 -0
  5. data/ext/crlibm/INSTALL +182 -0
  6. data/ext/crlibm/Makefile.am +84 -0
  7. data/ext/crlibm/Makefile.in +530 -0
  8. data/ext/crlibm/NEWS +0 -0
  9. data/ext/crlibm/README +31 -0
  10. data/ext/crlibm/TODO +47 -0
  11. data/ext/crlibm/VERSION +1 -0
  12. data/ext/crlibm/aclocal.m4 +989 -0
  13. data/ext/crlibm/atan-itanium.c +846 -0
  14. data/ext/crlibm/atan-pentium.c +261 -0
  15. data/ext/crlibm/atan_accurate.c +244 -0
  16. data/ext/crlibm/atan_accurate.h +191 -0
  17. data/ext/crlibm/atan_fast.c +324 -0
  18. data/ext/crlibm/atan_fast.h +678 -0
  19. data/ext/crlibm/config.guess +1461 -0
  20. data/ext/crlibm/config.sub +1566 -0
  21. data/ext/crlibm/configure +7517 -0
  22. data/ext/crlibm/configure.ac +364 -0
  23. data/ext/crlibm/crlibm.h +125 -0
  24. data/ext/crlibm/crlibm_config.h +149 -0
  25. data/ext/crlibm/crlibm_config.h.in +148 -0
  26. data/ext/crlibm/crlibm_private.c +293 -0
  27. data/ext/crlibm/crlibm_private.h +658 -0
  28. data/ext/crlibm/csh_fast.c +631 -0
  29. data/ext/crlibm/csh_fast.h +771 -0
  30. data/ext/crlibm/double-extended.h +496 -0
  31. data/ext/crlibm/exp-td.c +962 -0
  32. data/ext/crlibm/exp-td.h +685 -0
  33. data/ext/crlibm/exp_accurate.c +197 -0
  34. data/ext/crlibm/exp_accurate.h +85 -0
  35. data/ext/crlibm/gappa/log-de-E0-logir0.gappa +106 -0
  36. data/ext/crlibm/gappa/log-de-E0.gappa +79 -0
  37. data/ext/crlibm/gappa/log-de.gappa +81 -0
  38. data/ext/crlibm/gappa/log-td-E0-logir0.gappa +126 -0
  39. data/ext/crlibm/gappa/log-td-E0.gappa +143 -0
  40. data/ext/crlibm/gappa/log-td-accurate-E0-logir0.gappa +230 -0
  41. data/ext/crlibm/gappa/log-td-accurate-E0.gappa +213 -0
  42. data/ext/crlibm/gappa/log-td-accurate.gappa +217 -0
  43. data/ext/crlibm/gappa/log-td.gappa +156 -0
  44. data/ext/crlibm/gappa/trigoSinCosCase3.gappa +204 -0
  45. data/ext/crlibm/gappa/trigoTanCase2.gappa +73 -0
  46. data/ext/crlibm/install-sh +269 -0
  47. data/ext/crlibm/log-de.c +431 -0
  48. data/ext/crlibm/log-de.h +732 -0
  49. data/ext/crlibm/log-td.c +852 -0
  50. data/ext/crlibm/log-td.h +819 -0
  51. data/ext/crlibm/log10-td.c +906 -0
  52. data/ext/crlibm/log10-td.h +823 -0
  53. data/ext/crlibm/log2-td.c +935 -0
  54. data/ext/crlibm/log2-td.h +821 -0
  55. data/ext/crlibm/maple/atan.mpl +359 -0
  56. data/ext/crlibm/maple/common-procedures.mpl +997 -0
  57. data/ext/crlibm/maple/csh.mpl +446 -0
  58. data/ext/crlibm/maple/double-extended.mpl +151 -0
  59. data/ext/crlibm/maple/exp-td.mpl +195 -0
  60. data/ext/crlibm/maple/log-de.mpl +243 -0
  61. data/ext/crlibm/maple/log-td.mpl +316 -0
  62. data/ext/crlibm/maple/log10-td.mpl +345 -0
  63. data/ext/crlibm/maple/log2-td.mpl +334 -0
  64. data/ext/crlibm/maple/trigo.mpl +728 -0
  65. data/ext/crlibm/maple/triple-double.mpl +58 -0
  66. data/ext/crlibm/missing +198 -0
  67. data/ext/crlibm/mkinstalldirs +40 -0
  68. data/ext/crlibm/rem_pio2_accurate.c +219 -0
  69. data/ext/crlibm/rem_pio2_accurate.h +53 -0
  70. data/ext/crlibm/scs_lib/AUTHORS +3 -0
  71. data/ext/crlibm/scs_lib/COPYING +504 -0
  72. data/ext/crlibm/scs_lib/ChangeLog +16 -0
  73. data/ext/crlibm/scs_lib/INSTALL +215 -0
  74. data/ext/crlibm/scs_lib/Makefile.am +18 -0
  75. data/ext/crlibm/scs_lib/Makefile.in +328 -0
  76. data/ext/crlibm/scs_lib/NEWS +0 -0
  77. data/ext/crlibm/scs_lib/README +9 -0
  78. data/ext/crlibm/scs_lib/TODO +4 -0
  79. data/ext/crlibm/scs_lib/addition_scs.c +623 -0
  80. data/ext/crlibm/scs_lib/config.guess +1461 -0
  81. data/ext/crlibm/scs_lib/config.sub +1566 -0
  82. data/ext/crlibm/scs_lib/configure +6226 -0
  83. data/ext/crlibm/scs_lib/division_scs.c +110 -0
  84. data/ext/crlibm/scs_lib/double2scs.c +174 -0
  85. data/ext/crlibm/scs_lib/install-sh +269 -0
  86. data/ext/crlibm/scs_lib/missing +198 -0
  87. data/ext/crlibm/scs_lib/mkinstalldirs +40 -0
  88. data/ext/crlibm/scs_lib/multiplication_scs.c +456 -0
  89. data/ext/crlibm/scs_lib/poly_fct.c +112 -0
  90. data/ext/crlibm/scs_lib/print_scs.c +73 -0
  91. data/ext/crlibm/scs_lib/rand_scs.c +63 -0
  92. data/ext/crlibm/scs_lib/scs.h +353 -0
  93. data/ext/crlibm/scs_lib/scs2double.c +391 -0
  94. data/ext/crlibm/scs_lib/scs2mpf.c +58 -0
  95. data/ext/crlibm/scs_lib/scs2mpfr.c +61 -0
  96. data/ext/crlibm/scs_lib/scs_private.c +23 -0
  97. data/ext/crlibm/scs_lib/scs_private.h +133 -0
  98. data/ext/crlibm/scs_lib/tests/tbx_timing.h +102 -0
  99. data/ext/crlibm/scs_lib/wrapper_scs.h +486 -0
  100. data/ext/crlibm/scs_lib/zero_scs.c +52 -0
  101. data/ext/crlibm/stamp-h.in +1 -0
  102. data/ext/crlibm/tests/Makefile.am +43 -0
  103. data/ext/crlibm/tests/Makefile.in +396 -0
  104. data/ext/crlibm/tests/blind_test.c +148 -0
  105. data/ext/crlibm/tests/generate_test_vectors.c +258 -0
  106. data/ext/crlibm/tests/soak_test.c +334 -0
  107. data/ext/crlibm/tests/test_common.c +627 -0
  108. data/ext/crlibm/tests/test_common.h +28 -0
  109. data/ext/crlibm/tests/test_perf.c +570 -0
  110. data/ext/crlibm/tests/test_val.c +249 -0
  111. data/ext/crlibm/trigo_accurate.c +500 -0
  112. data/ext/crlibm/trigo_accurate.h +331 -0
  113. data/ext/crlibm/trigo_fast.c +1219 -0
  114. data/ext/crlibm/trigo_fast.h +639 -0
  115. data/ext/crlibm/triple-double.h +878 -0
  116. data/ext/extconf.rb +31 -0
  117. data/ext/fpu.c +107 -0
  118. data/ext/jamis-mod.rb +591 -0
  119. data/lib/fpu.rb +287 -0
  120. data/lib/interval.rb +1170 -0
  121. data/lib/intervals.rb +212 -0
  122. data/lib/struct_float.rb +133 -0
  123. data/test/data_atan.txt +360 -0
  124. data/test/data_cos.txt +346 -0
  125. data/test/data_cosh.txt +3322 -0
  126. data/test/data_exp.txt +3322 -0
  127. data/test/data_log.txt +141 -0
  128. data/test/data_sin.txt +140 -0
  129. data/test/data_sinh.txt +3322 -0
  130. data/test/data_tan.txt +342 -0
  131. metadata +186 -0
@@ -0,0 +1,396 @@
1
+ # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
2
+
3
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
4
+ # This Makefile.in is free software; the Free Software Foundation
5
+ # gives unlimited permission to copy and/or distribute it,
6
+ # with or without modifications, as long as this notice is preserved.
7
+
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
10
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ # PARTICULAR PURPOSE.
12
+
13
+
14
+ SHELL = @SHELL@
15
+
16
+ srcdir = @srcdir@
17
+ top_srcdir = @top_srcdir@
18
+ VPATH = @srcdir@
19
+ prefix = @prefix@
20
+ exec_prefix = @exec_prefix@
21
+
22
+ bindir = @bindir@
23
+ sbindir = @sbindir@
24
+ libexecdir = @libexecdir@
25
+ datadir = @datadir@
26
+ sysconfdir = @sysconfdir@
27
+ sharedstatedir = @sharedstatedir@
28
+ localstatedir = @localstatedir@
29
+ libdir = @libdir@
30
+ infodir = @infodir@
31
+ mandir = @mandir@
32
+ includedir = @includedir@
33
+ oldincludedir = /usr/include
34
+
35
+ DESTDIR =
36
+
37
+ pkgdatadir = $(datadir)/@PACKAGE@
38
+ pkglibdir = $(libdir)/@PACKAGE@
39
+ pkgincludedir = $(includedir)/@PACKAGE@
40
+
41
+ top_builddir = ..
42
+
43
+ ACLOCAL = @ACLOCAL@
44
+ AUTOCONF = @AUTOCONF@
45
+ AUTOMAKE = @AUTOMAKE@
46
+ AUTOHEADER = @AUTOHEADER@
47
+
48
+ INSTALL = @INSTALL@
49
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
50
+ INSTALL_DATA = @INSTALL_DATA@
51
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
52
+ transform = @program_transform_name@
53
+
54
+ NORMAL_INSTALL = :
55
+ PRE_INSTALL = :
56
+ POST_INSTALL = :
57
+ NORMAL_UNINSTALL = :
58
+ PRE_UNINSTALL = :
59
+ POST_UNINSTALL = :
60
+ host_alias = @host_alias@
61
+ host_triplet = @host@
62
+ AWK = @AWK@
63
+ CC = @CC@
64
+ HAVE_LIB = @HAVE_LIB@
65
+ ISODATE = @ISODATE@
66
+ LIB = @LIB@
67
+ LN_S = @LN_S@
68
+ LTLIB = @LTLIB@
69
+ MAKEINFO = @MAKEINFO@
70
+ PACKAGE = @PACKAGE@
71
+ RANLIB = @RANLIB@
72
+ VERSION = @VERSION@
73
+
74
+ bin_PROGRAMS = crlibm_testval crlibm_soaktest crlibm_testperf crlibm_blindtest crlibm_generate_test_vectors
75
+
76
+ LDADD = $(top_builddir)/libcrlibm.a
77
+ INCLUDES = -I$(top_srcdir)
78
+ AM_CFLAGS = -g -O0 -std=c99
79
+
80
+ crlibm_testval_SOURCES = test_val.c test_common.c test_common.h
81
+ crlibm_soaktest_SOURCES = soak_test.c test_common.c test_common.h
82
+ crlibm_testperf_SOURCES = test_perf.c test_common.c test_common.h
83
+ crlibm_blindtest_SOURCES = blind_test.c test_common.c test_common.h
84
+ crlibm_generate_test_vectors_SOURCES = generate_test_vectors.c test_common.c test_common.h
85
+
86
+ CRLIBM_CHECKLIST = check_exp check_log check_log2 check_log10 check_sin check_cos check_tan check_atan check_sinh check_cosh
87
+ TESTS = $(CRLIBM_CHECKLIST)
88
+
89
+ EXTRA_DIST = exp.testdata log.testdata log2.testdata log10.testdata sin.testdata cos.testdata tan.testdata atan.testdata sinh.testdata cosh.testdata
90
+
91
+ CLEANFILES = $(CRLIBM_CHECKLIST)
92
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
93
+ CONFIG_HEADER = ../crlibm_config.h
94
+ CONFIG_CLEAN_FILES =
95
+ PROGRAMS = $(bin_PROGRAMS)
96
+
97
+
98
+ DEFS = @DEFS@ -I. -I$(srcdir) -I..
99
+ CPPFLAGS = @CPPFLAGS@
100
+ LDFLAGS = @LDFLAGS@
101
+ LIBS = @LIBS@
102
+ crlibm_testval_OBJECTS = test_val.o test_common.o
103
+ crlibm_testval_LDADD = $(LDADD)
104
+ crlibm_testval_DEPENDENCIES = $(top_builddir)/libcrlibm.a
105
+ crlibm_testval_LDFLAGS =
106
+ crlibm_soaktest_OBJECTS = soak_test.o test_common.o
107
+ crlibm_soaktest_LDADD = $(LDADD)
108
+ crlibm_soaktest_DEPENDENCIES = $(top_builddir)/libcrlibm.a
109
+ crlibm_soaktest_LDFLAGS =
110
+ crlibm_testperf_OBJECTS = test_perf.o test_common.o
111
+ crlibm_testperf_LDADD = $(LDADD)
112
+ crlibm_testperf_DEPENDENCIES = $(top_builddir)/libcrlibm.a
113
+ crlibm_testperf_LDFLAGS =
114
+ crlibm_blindtest_OBJECTS = blind_test.o test_common.o
115
+ crlibm_blindtest_LDADD = $(LDADD)
116
+ crlibm_blindtest_DEPENDENCIES = $(top_builddir)/libcrlibm.a
117
+ crlibm_blindtest_LDFLAGS =
118
+ crlibm_generate_test_vectors_OBJECTS = generate_test_vectors.o \
119
+ test_common.o
120
+ crlibm_generate_test_vectors_LDADD = $(LDADD)
121
+ crlibm_generate_test_vectors_DEPENDENCIES = $(top_builddir)/libcrlibm.a
122
+ crlibm_generate_test_vectors_LDFLAGS =
123
+ CFLAGS = @CFLAGS@
124
+ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
125
+ CCLD = $(CC)
126
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
127
+ DIST_COMMON = Makefile.am Makefile.in
128
+
129
+
130
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
131
+
132
+ TAR = tar
133
+ GZIP_ENV = --best
134
+ SOURCES = $(crlibm_testval_SOURCES) $(crlibm_soaktest_SOURCES) $(crlibm_testperf_SOURCES) $(crlibm_blindtest_SOURCES) $(crlibm_generate_test_vectors_SOURCES)
135
+ OBJECTS = $(crlibm_testval_OBJECTS) $(crlibm_soaktest_OBJECTS) $(crlibm_testperf_OBJECTS) $(crlibm_blindtest_OBJECTS) $(crlibm_generate_test_vectors_OBJECTS)
136
+
137
+ all: all-redirect
138
+ .SUFFIXES:
139
+ .SUFFIXES: .S .c .o .s
140
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
141
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile
142
+
143
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
144
+ cd $(top_builddir) \
145
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
146
+
147
+
148
+ mostlyclean-binPROGRAMS:
149
+
150
+ clean-binPROGRAMS:
151
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
152
+
153
+ distclean-binPROGRAMS:
154
+
155
+ maintainer-clean-binPROGRAMS:
156
+
157
+ install-binPROGRAMS: $(bin_PROGRAMS)
158
+ @$(NORMAL_INSTALL)
159
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
160
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
161
+ if test -f $$p; then \
162
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
163
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
164
+ else :; fi; \
165
+ done
166
+
167
+ uninstall-binPROGRAMS:
168
+ @$(NORMAL_UNINSTALL)
169
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
170
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
171
+ done
172
+
173
+ .c.o:
174
+ $(COMPILE) -c $<
175
+
176
+ .s.o:
177
+ $(COMPILE) -c $<
178
+
179
+ .S.o:
180
+ $(COMPILE) -c $<
181
+
182
+ mostlyclean-compile:
183
+ -rm -f *.o core *.core
184
+
185
+ clean-compile:
186
+
187
+ distclean-compile:
188
+ -rm -f *.tab.c
189
+
190
+ maintainer-clean-compile:
191
+
192
+ crlibm_testval: $(crlibm_testval_OBJECTS) $(crlibm_testval_DEPENDENCIES)
193
+ @rm -f crlibm_testval
194
+ $(LINK) $(crlibm_testval_LDFLAGS) $(crlibm_testval_OBJECTS) $(crlibm_testval_LDADD) $(LIBS)
195
+
196
+ crlibm_soaktest: $(crlibm_soaktest_OBJECTS) $(crlibm_soaktest_DEPENDENCIES)
197
+ @rm -f crlibm_soaktest
198
+ $(LINK) $(crlibm_soaktest_LDFLAGS) $(crlibm_soaktest_OBJECTS) $(crlibm_soaktest_LDADD) $(LIBS)
199
+
200
+ crlibm_testperf: $(crlibm_testperf_OBJECTS) $(crlibm_testperf_DEPENDENCIES)
201
+ @rm -f crlibm_testperf
202
+ $(LINK) $(crlibm_testperf_LDFLAGS) $(crlibm_testperf_OBJECTS) $(crlibm_testperf_LDADD) $(LIBS)
203
+
204
+ crlibm_blindtest: $(crlibm_blindtest_OBJECTS) $(crlibm_blindtest_DEPENDENCIES)
205
+ @rm -f crlibm_blindtest
206
+ $(LINK) $(crlibm_blindtest_LDFLAGS) $(crlibm_blindtest_OBJECTS) $(crlibm_blindtest_LDADD) $(LIBS)
207
+
208
+ crlibm_generate_test_vectors: $(crlibm_generate_test_vectors_OBJECTS) $(crlibm_generate_test_vectors_DEPENDENCIES)
209
+ @rm -f crlibm_generate_test_vectors
210
+ $(LINK) $(crlibm_generate_test_vectors_LDFLAGS) $(crlibm_generate_test_vectors_OBJECTS) $(crlibm_generate_test_vectors_LDADD) $(LIBS)
211
+
212
+ tags: TAGS
213
+
214
+ ID: $(HEADERS) $(SOURCES) $(LISP)
215
+ list='$(SOURCES) $(HEADERS)'; \
216
+ unique=`for i in $$list; do echo $$i; done | \
217
+ awk ' { files[$$0] = 1; } \
218
+ END { for (i in files) print i; }'`; \
219
+ here=`pwd` && cd $(srcdir) \
220
+ && mkid -f$$here/ID $$unique $(LISP)
221
+
222
+ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
223
+ tags=; \
224
+ here=`pwd`; \
225
+ list='$(SOURCES) $(HEADERS)'; \
226
+ unique=`for i in $$list; do echo $$i; done | \
227
+ awk ' { files[$$0] = 1; } \
228
+ END { for (i in files) print i; }'`; \
229
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
230
+ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP))
231
+
232
+ mostlyclean-tags:
233
+
234
+ clean-tags:
235
+
236
+ distclean-tags:
237
+ -rm -f TAGS ID
238
+
239
+ maintainer-clean-tags:
240
+
241
+ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
242
+
243
+ subdir = tests
244
+
245
+ distdir: $(DISTFILES)
246
+ @for file in $(DISTFILES); do \
247
+ d=$(srcdir); \
248
+ if test -d $$d/$$file; then \
249
+ cp -pr $$d/$$file $(distdir)/$$file; \
250
+ else \
251
+ test -f $(distdir)/$$file \
252
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
253
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
254
+ fi; \
255
+ done
256
+ blind_test.o: blind_test.c ../crlibm.h ../crlibm_private.h \
257
+ ../scs_lib/scs.h ../crlibm_config.h ../scs_lib/scs_private.h \
258
+ test_common.h
259
+ generate_test_vectors.o: generate_test_vectors.c ../crlibm.h \
260
+ ../crlibm_private.h ../scs_lib/scs.h ../crlibm_config.h \
261
+ ../scs_lib/scs_private.h
262
+ soak_test.o: soak_test.c ../crlibm.h ../crlibm_private.h \
263
+ ../scs_lib/scs.h ../crlibm_config.h ../scs_lib/scs_private.h
264
+ test_common.o: test_common.c ../crlibm.h ../crlibm_private.h \
265
+ ../scs_lib/scs.h ../crlibm_config.h ../scs_lib/scs_private.h \
266
+ test_common.h
267
+ test_perf.o: test_perf.c ../crlibm.h ../crlibm_private.h \
268
+ ../scs_lib/scs.h ../crlibm_config.h ../scs_lib/scs_private.h \
269
+ test_common.h ../scs_lib/tests/tbx_timing.h
270
+ test_val.o: test_val.c ../crlibm.h ../crlibm_private.h ../scs_lib/scs.h \
271
+ ../crlibm_config.h ../scs_lib/scs_private.h test_common.h
272
+
273
+ check-TESTS: $(TESTS)
274
+ @failed=0; all=0; \
275
+ srcdir=$(srcdir); export srcdir; \
276
+ for tst in $(TESTS); do \
277
+ if test -f $$tst; then dir=.; \
278
+ else dir="$(srcdir)"; fi; \
279
+ if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
280
+ all=`expr $$all + 1`; \
281
+ echo "PASS: $$tst"; \
282
+ elif test $$? -ne 77; then \
283
+ all=`expr $$all + 1`; \
284
+ failed=`expr $$failed + 1`; \
285
+ echo "FAIL: $$tst"; \
286
+ fi; \
287
+ done; \
288
+ if test "$$failed" -eq 0; then \
289
+ banner="All $$all tests passed"; \
290
+ else \
291
+ banner="$$failed of $$all tests failed"; \
292
+ fi; \
293
+ dashes=`echo "$$banner" | sed s/./=/g`; \
294
+ echo "$$dashes"; \
295
+ echo "$$banner"; \
296
+ echo "$$dashes"; \
297
+ test "$$failed" -eq 0
298
+ info-am:
299
+ info: info-am
300
+ dvi-am:
301
+ dvi: dvi-am
302
+ check-am: all-am
303
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
304
+ check: check-am
305
+ installcheck-am:
306
+ installcheck: installcheck-am
307
+ install-exec-am: install-binPROGRAMS
308
+ install-exec: install-exec-am
309
+
310
+ install-data-am:
311
+ install-data: install-data-am
312
+
313
+ install-am: all-am
314
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
315
+ install: install-am
316
+ uninstall-am: uninstall-binPROGRAMS
317
+ uninstall: uninstall-am
318
+ all-am: Makefile $(PROGRAMS)
319
+ all-redirect: all-am
320
+ install-strip:
321
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
322
+ installdirs:
323
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
324
+
325
+
326
+ mostlyclean-generic:
327
+
328
+ clean-generic:
329
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
330
+
331
+ distclean-generic:
332
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
333
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
334
+
335
+ maintainer-clean-generic:
336
+ mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
337
+ mostlyclean-tags mostlyclean-generic
338
+
339
+ mostlyclean: mostlyclean-am
340
+
341
+ clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \
342
+ mostlyclean-am
343
+
344
+ clean: clean-am
345
+
346
+ distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
347
+ distclean-generic clean-am
348
+
349
+ distclean: distclean-am
350
+
351
+ maintainer-clean-am: maintainer-clean-binPROGRAMS \
352
+ maintainer-clean-compile maintainer-clean-tags \
353
+ maintainer-clean-generic distclean-am
354
+ @echo "This command is intended for maintainers to use;"
355
+ @echo "it deletes files that may require special tools to rebuild."
356
+
357
+ maintainer-clean: maintainer-clean-am
358
+
359
+ .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
360
+ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
361
+ mostlyclean-compile distclean-compile clean-compile \
362
+ maintainer-clean-compile tags mostlyclean-tags distclean-tags \
363
+ clean-tags maintainer-clean-tags distdir check-TESTS info-am info \
364
+ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
365
+ install-exec install-data-am install-data install-am install \
366
+ uninstall-am uninstall all-redirect all-am all installdirs \
367
+ mostlyclean-generic distclean-generic clean-generic \
368
+ maintainer-clean-generic clean mostlyclean distclean maintainer-clean
369
+
370
+ ../libcrlibm.a:
371
+ cd $(top_srcdir); make libcrlibm.a
372
+
373
+ check_exp: crlibm_blindtest
374
+ echo ./crlibm_blindtest exp.testdata>check_exp; chmod a+rx check_exp
375
+ check_log: crlibm_blindtest
376
+ echo ./crlibm_blindtest log.testdata>check_log; chmod a+rx check_log
377
+ check_log2: crlibm_blindtest
378
+ echo ./crlibm_blindtest log2.testdata>check_log2; chmod a+rx check_log2
379
+ check_log10: crlibm_blindtest
380
+ echo ./crlibm_blindtest log10.testdata>check_log10; chmod a+rx check_log10
381
+ check_sin: crlibm_blindtest
382
+ echo ./crlibm_blindtest sin.testdata>check_sin; chmod a+rx check_sin
383
+ check_cos: crlibm_blindtest
384
+ echo ./crlibm_blindtest cos.testdata>check_cos; chmod a+rx check_cos
385
+ check_tan: crlibm_blindtest
386
+ echo ./crlibm_blindtest tan.testdata>check_tan; chmod a+rx check_tan
387
+ check_atan: crlibm_blindtest
388
+ echo ./crlibm_blindtest atan.testdata>check_atan; chmod a+rx check_atan
389
+ check_sinh: crlibm_blindtest
390
+ echo ./crlibm_blindtest sinh.testdata>check_sinh; chmod a+rx check_sinh
391
+ check_cosh: crlibm_blindtest
392
+ echo ./crlibm_blindtest cosh.testdata>check_cosh; chmod a+rx check_cosh
393
+
394
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
395
+ # Otherwise a system limit (for SysV at least) may be exceeded.
396
+ .NOEXPORT:
@@ -0,0 +1,148 @@
1
+ #include <stdio.h>
2
+ #include <stdlib.h>
3
+ #include <string.h>
4
+ #include "crlibm.h"
5
+ #include "crlibm_private.h"
6
+ #include "test_common.h"
7
+
8
+ void usage(char *fct_name){
9
+ fprintf (stderr, "\nUsage: %s [-v] file\n", fct_name);
10
+ exit (EXIT_SUCCESS);
11
+ }
12
+
13
+
14
+
15
+ char* skip_comments(FILE* f, char* line) {
16
+ char* r;
17
+ int i;
18
+ do {
19
+ r=fgets(line, 200, f);
20
+ }
21
+ /* Look if the first char was a #, a newline or a blank character */
22
+ while((line[0]=='#' || line[0]=='\n' || line[0]==' ' || line[0]=='\t' || line[0]==0) && r!=NULL);
23
+
24
+ /* look for a comment in the line, and remove it */
25
+ i=0;
26
+ while(line[i]!=0 && line[i]!='#') i++;
27
+ line[i]=0;
28
+ return r;
29
+ }
30
+
31
+
32
+ int main (int argc, char *argv[])
33
+ {
34
+ int verbose=0;
35
+ int failures=0;
36
+ char* option;
37
+ char* filename;
38
+ char rounding_mode[10];
39
+ char function_name[10];
40
+ char line[400];
41
+ char* r;
42
+ int count=0;
43
+ double worstcase;
44
+ db_number input, output, expected;
45
+ #ifdef HAVE_MPFR_H
46
+ db_number res_mpfr;
47
+ mpfr_t mp_res, mp_inpt;
48
+ mp_rnd_t mpfr_rnd_mode;
49
+ #endif
50
+ int (*mpfr_fun)() = NULL;
51
+ double (*testfun_crlibm)() = NULL;
52
+ double (*unused)() = NULL;
53
+
54
+ FILE* f;
55
+
56
+ if ((argc != 2) && argc!=3) usage(argv[0]);
57
+ if (argc == 3) {
58
+ option = argv[1];
59
+ filename=argv[2];
60
+ if(!(option[0]=='-' && option[1]=='v')) usage(argv[0]);
61
+ else verbose=1;
62
+ }
63
+ else
64
+ filename=argv[1];
65
+
66
+
67
+ f=fopen(filename, "r");
68
+ if(f==NULL) {
69
+ fprintf(stderr, "%s: problem opening %s, exiting\n", argv[0], filename);
70
+ exit(EXIT_FAILURE);
71
+ }
72
+
73
+
74
+ crlibm_init();
75
+
76
+ fflush(stdout); /* To help debugging */
77
+
78
+ skip_comments(f, line);
79
+ sscanf(line, "%s", function_name);
80
+
81
+ if(verbose) printf("Testing function: %s\n", function_name);
82
+
83
+ r=skip_comments(f, line);
84
+ while(r!=0) {
85
+ sscanf(line, "%s %x %x %x %x\n",
86
+ rounding_mode,
87
+ &input.i[HI], &input.i[LO],
88
+ &expected.i[HI], &expected.i[LO] );
89
+ /* Centralized test initialization function */
90
+ test_init(
91
+ &unused, &unused,
92
+ &testfun_crlibm,
93
+ &mpfr_fun, &unused, &unused, &unused, &worstcase,
94
+ function_name,
95
+ rounding_mode ) ;
96
+
97
+ output.d = testfun_crlibm(input.d);
98
+ count++;
99
+
100
+ if(verbose){
101
+ printf("Input: %08x %08x (%0.50e)\n", input.i[HI], input.i[LO], input.d );
102
+ printf(" Output: %08x %08x (%0.50e)", output.i[HI], output.i[LO], output.d );
103
+ if( output.l==expected.l)
104
+ printf(" ... OK \n");
105
+ else
106
+ printf(" \n");
107
+
108
+ }
109
+ /* The following tests is a little bit contrived because of NaN */
110
+ if( ((expected.d != expected.d) && (output.d == output.d)) /* expected NaN, got non-NaN */
111
+ || ((expected.d == expected.d) && (output.l != expected.l)) ) { /* or expected non-NaN, got something different */
112
+ failures ++;
113
+ printf("ERROR for %s with rounding %s\n", function_name, rounding_mode);
114
+ printf(" Input: %08x %08x (%0.50e)\n", input.i[HI], input.i[LO], input.d );
115
+ printf(" Output: %08x %08x (%0.50e)\n", output.i[HI], output.i[LO], output.d );
116
+ printf(" Expected: %08x %08x (%0.50e)\n", expected.i[HI], expected.i[LO], expected.d );
117
+
118
+ #ifdef HAVE_MPFR_H
119
+ if ((strcmp(rounding_mode,"RU")==0) || (strcmp(rounding_mode,"P")==0)) mpfr_rnd_mode = GMP_RNDU;
120
+ else if ((strcmp(rounding_mode,"RD")==0) || (strcmp(rounding_mode,"M")==0)) mpfr_rnd_mode = GMP_RNDD;
121
+ else if ((strcmp(rounding_mode,"RZ")==0) || (strcmp(rounding_mode,"Z")==0)) mpfr_rnd_mode = GMP_RNDZ;
122
+ else if ((strcmp(rounding_mode,"RN")==0) || (strcmp(rounding_mode,"N")==0)) mpfr_rnd_mode = GMP_RNDN;
123
+ else {
124
+ fprintf(stderr, "Unknown rounding mode: %s, exiting\n", rounding_mode);
125
+ exit(EXIT_FAILURE);
126
+ }
127
+
128
+ mpfr_init2(mp_res, 160);
129
+ mpfr_init2(mp_inpt, 53);
130
+ mpfr_set_d(mp_inpt, input.d, GMP_RNDN);
131
+ mpfr_fun(mp_res, mp_inpt, mpfr_rnd_mode);
132
+ res_mpfr.d = mpfr_get_d(mp_res, mpfr_rnd_mode);
133
+
134
+ printf(" MPFR result: %08x %08x (%0.50e)\n", res_mpfr.i[HI], res_mpfr.i[LO], res_mpfr.d );
135
+ #endif /* HAVE_MPFR_H */
136
+
137
+ }
138
+ fflush(stdout); /* To help debugging */
139
+
140
+ r=skip_comments(f, line);
141
+ }
142
+ printf("Test completed for %s, %d failures in %d tests\n", function_name, failures, count);
143
+ return failures;
144
+
145
+ }
146
+
147
+
148
+