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.
- data/VERSION.txt +1 -0
- data/ext/crlibm/AUTHORS +2 -0
- data/ext/crlibm/COPYING +504 -0
- data/ext/crlibm/ChangeLog +80 -0
- data/ext/crlibm/INSTALL +182 -0
- data/ext/crlibm/Makefile.am +84 -0
- data/ext/crlibm/Makefile.in +530 -0
- data/ext/crlibm/NEWS +0 -0
- data/ext/crlibm/README +31 -0
- data/ext/crlibm/TODO +47 -0
- data/ext/crlibm/VERSION +1 -0
- data/ext/crlibm/aclocal.m4 +989 -0
- data/ext/crlibm/atan-itanium.c +846 -0
- data/ext/crlibm/atan-pentium.c +261 -0
- data/ext/crlibm/atan_accurate.c +244 -0
- data/ext/crlibm/atan_accurate.h +191 -0
- data/ext/crlibm/atan_fast.c +324 -0
- data/ext/crlibm/atan_fast.h +678 -0
- data/ext/crlibm/config.guess +1461 -0
- data/ext/crlibm/config.sub +1566 -0
- data/ext/crlibm/configure +7517 -0
- data/ext/crlibm/configure.ac +364 -0
- data/ext/crlibm/crlibm.h +125 -0
- data/ext/crlibm/crlibm_config.h +149 -0
- data/ext/crlibm/crlibm_config.h.in +148 -0
- data/ext/crlibm/crlibm_private.c +293 -0
- data/ext/crlibm/crlibm_private.h +658 -0
- data/ext/crlibm/csh_fast.c +631 -0
- data/ext/crlibm/csh_fast.h +771 -0
- data/ext/crlibm/double-extended.h +496 -0
- data/ext/crlibm/exp-td.c +962 -0
- data/ext/crlibm/exp-td.h +685 -0
- data/ext/crlibm/exp_accurate.c +197 -0
- data/ext/crlibm/exp_accurate.h +85 -0
- data/ext/crlibm/gappa/log-de-E0-logir0.gappa +106 -0
- data/ext/crlibm/gappa/log-de-E0.gappa +79 -0
- data/ext/crlibm/gappa/log-de.gappa +81 -0
- data/ext/crlibm/gappa/log-td-E0-logir0.gappa +126 -0
- data/ext/crlibm/gappa/log-td-E0.gappa +143 -0
- data/ext/crlibm/gappa/log-td-accurate-E0-logir0.gappa +230 -0
- data/ext/crlibm/gappa/log-td-accurate-E0.gappa +213 -0
- data/ext/crlibm/gappa/log-td-accurate.gappa +217 -0
- data/ext/crlibm/gappa/log-td.gappa +156 -0
- data/ext/crlibm/gappa/trigoSinCosCase3.gappa +204 -0
- data/ext/crlibm/gappa/trigoTanCase2.gappa +73 -0
- data/ext/crlibm/install-sh +269 -0
- data/ext/crlibm/log-de.c +431 -0
- data/ext/crlibm/log-de.h +732 -0
- data/ext/crlibm/log-td.c +852 -0
- data/ext/crlibm/log-td.h +819 -0
- data/ext/crlibm/log10-td.c +906 -0
- data/ext/crlibm/log10-td.h +823 -0
- data/ext/crlibm/log2-td.c +935 -0
- data/ext/crlibm/log2-td.h +821 -0
- data/ext/crlibm/maple/atan.mpl +359 -0
- data/ext/crlibm/maple/common-procedures.mpl +997 -0
- data/ext/crlibm/maple/csh.mpl +446 -0
- data/ext/crlibm/maple/double-extended.mpl +151 -0
- data/ext/crlibm/maple/exp-td.mpl +195 -0
- data/ext/crlibm/maple/log-de.mpl +243 -0
- data/ext/crlibm/maple/log-td.mpl +316 -0
- data/ext/crlibm/maple/log10-td.mpl +345 -0
- data/ext/crlibm/maple/log2-td.mpl +334 -0
- data/ext/crlibm/maple/trigo.mpl +728 -0
- data/ext/crlibm/maple/triple-double.mpl +58 -0
- data/ext/crlibm/missing +198 -0
- data/ext/crlibm/mkinstalldirs +40 -0
- data/ext/crlibm/rem_pio2_accurate.c +219 -0
- data/ext/crlibm/rem_pio2_accurate.h +53 -0
- data/ext/crlibm/scs_lib/AUTHORS +3 -0
- data/ext/crlibm/scs_lib/COPYING +504 -0
- data/ext/crlibm/scs_lib/ChangeLog +16 -0
- data/ext/crlibm/scs_lib/INSTALL +215 -0
- data/ext/crlibm/scs_lib/Makefile.am +18 -0
- data/ext/crlibm/scs_lib/Makefile.in +328 -0
- data/ext/crlibm/scs_lib/NEWS +0 -0
- data/ext/crlibm/scs_lib/README +9 -0
- data/ext/crlibm/scs_lib/TODO +4 -0
- data/ext/crlibm/scs_lib/addition_scs.c +623 -0
- data/ext/crlibm/scs_lib/config.guess +1461 -0
- data/ext/crlibm/scs_lib/config.sub +1566 -0
- data/ext/crlibm/scs_lib/configure +6226 -0
- data/ext/crlibm/scs_lib/division_scs.c +110 -0
- data/ext/crlibm/scs_lib/double2scs.c +174 -0
- data/ext/crlibm/scs_lib/install-sh +269 -0
- data/ext/crlibm/scs_lib/missing +198 -0
- data/ext/crlibm/scs_lib/mkinstalldirs +40 -0
- data/ext/crlibm/scs_lib/multiplication_scs.c +456 -0
- data/ext/crlibm/scs_lib/poly_fct.c +112 -0
- data/ext/crlibm/scs_lib/print_scs.c +73 -0
- data/ext/crlibm/scs_lib/rand_scs.c +63 -0
- data/ext/crlibm/scs_lib/scs.h +353 -0
- data/ext/crlibm/scs_lib/scs2double.c +391 -0
- data/ext/crlibm/scs_lib/scs2mpf.c +58 -0
- data/ext/crlibm/scs_lib/scs2mpfr.c +61 -0
- data/ext/crlibm/scs_lib/scs_private.c +23 -0
- data/ext/crlibm/scs_lib/scs_private.h +133 -0
- data/ext/crlibm/scs_lib/tests/tbx_timing.h +102 -0
- data/ext/crlibm/scs_lib/wrapper_scs.h +486 -0
- data/ext/crlibm/scs_lib/zero_scs.c +52 -0
- data/ext/crlibm/stamp-h.in +1 -0
- data/ext/crlibm/tests/Makefile.am +43 -0
- data/ext/crlibm/tests/Makefile.in +396 -0
- data/ext/crlibm/tests/blind_test.c +148 -0
- data/ext/crlibm/tests/generate_test_vectors.c +258 -0
- data/ext/crlibm/tests/soak_test.c +334 -0
- data/ext/crlibm/tests/test_common.c +627 -0
- data/ext/crlibm/tests/test_common.h +28 -0
- data/ext/crlibm/tests/test_perf.c +570 -0
- data/ext/crlibm/tests/test_val.c +249 -0
- data/ext/crlibm/trigo_accurate.c +500 -0
- data/ext/crlibm/trigo_accurate.h +331 -0
- data/ext/crlibm/trigo_fast.c +1219 -0
- data/ext/crlibm/trigo_fast.h +639 -0
- data/ext/crlibm/triple-double.h +878 -0
- data/ext/extconf.rb +31 -0
- data/ext/fpu.c +107 -0
- data/ext/jamis-mod.rb +591 -0
- data/lib/fpu.rb +287 -0
- data/lib/interval.rb +1170 -0
- data/lib/intervals.rb +212 -0
- data/lib/struct_float.rb +133 -0
- data/test/data_atan.txt +360 -0
- data/test/data_cos.txt +346 -0
- data/test/data_cosh.txt +3322 -0
- data/test/data_exp.txt +3322 -0
- data/test/data_log.txt +141 -0
- data/test/data_sin.txt +140 -0
- data/test/data_sinh.txt +3322 -0
- data/test/data_tan.txt +342 -0
- 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
|
+
|