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,364 @@
1
+ dnl Process this file with autoconf to produce a configure script.
2
+ AC_INIT
3
+
4
+ crlibm_version=`cat $srcdir/VERSION`
5
+ dnl For Automake
6
+ AM_INIT_AUTOMAKE(crlibm, $crlibm_version)
7
+
8
+ AM_CONFIG_HEADER(crlibm_config.h)
9
+
10
+
11
+ AC_SUBST(VERSION)
12
+
13
+ ISODATE=`date +%Y-%m-%d`
14
+ AC_SUBST(ISODATE)
15
+
16
+ dnl Check for system information
17
+ AC_CANONICAL_HOST
18
+ case $host_os in
19
+ hpux*)
20
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPEOS_HPUX,1,[OS type]);;
21
+ *cygwin* | *mingw* | *uwin* | *djgpp | *emx*)
22
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPEOS_CYGWIN,1,[OS type]);;
23
+ freebsd*|netbsd*)
24
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPEOS_BSD,1,[OS type]);;
25
+ esac;
26
+
27
+
28
+ case $host_cpu in
29
+ alpha)
30
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPECPU_ALPHA,1,[Processor type]) ;;
31
+ sparc)
32
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPECPU_SPARC,1,[Processor type]) ;;
33
+ powerpc*)
34
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPECPU_POWERPC,1,[Processor type]);;
35
+ i*86|k6|k7|pentium*|athlon*)
36
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPECPU_X86,1,[Processor type])
37
+ has_ia32_de=true;;
38
+ x86_64|amd64)
39
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPECPU_AMD64,1,[Processor type])
40
+ has_ia32_de=true;;
41
+ ia64)
42
+ AC_DEFINE_UNQUOTED(CRLIBM_TYPECPU_ITANIUM,1,[Processor type])
43
+ has_ia64_de=true;;
44
+ esac;
45
+
46
+
47
+ AC_CONFIG_SRCDIR([exp_accurate.c])
48
+ AC_PROG_MAKE_SET
49
+
50
+ dnl Check for compiler
51
+
52
+ AC_PROG_CC(gcc-3.3 gcc-3.2 gcc icc cc)
53
+
54
+ # Try to set compiler flags to get floating point arithmetics
55
+ # to work
56
+ #
57
+ if test "${GCC}" != "yes" ; then
58
+ case "${build}" in
59
+ *-*-hpux* )
60
+ CFLAGS="${CFLAGS} -Wp,-H30000"
61
+ ;;
62
+ *-dec-osf* )
63
+ CFLAGS="${CFLAGS} -ieee"
64
+ ;;
65
+ *-apple-darwin* )
66
+ CFLAGS="${CFLAGS} -fno-common"
67
+ ;;
68
+ *-sgi-irix* )
69
+ ;;
70
+ esac
71
+ else
72
+ case "${CC}" in
73
+ *icc* )
74
+ # -Wall causes relocation errors with icc
75
+ CFLAGS="${CFLAGS} -wd269"
76
+ ;;
77
+ * )
78
+ case "${build}" in
79
+ *-dec-osf* )
80
+ CFLAGS="${CFLAGS} -mieee -Wall"
81
+ ;;
82
+ *alpha*-*-linux* )
83
+ CFLAGS="${CFLAGS} -mieee -Wall"
84
+ ;;
85
+ *alpha*-*-freebsd* )
86
+ CFLAGS="${CFLAGS} -mieee -Wall"
87
+ ;;
88
+ *-apple-darwin* )
89
+ CFLAGS="${CFLAGS} -fno-common -Wall"
90
+ ;;
91
+ * )
92
+ CFLAGS="${CFLAGS} -Wall"
93
+ ;;
94
+ esac
95
+ ;;
96
+ esac
97
+ fi
98
+
99
+
100
+
101
+
102
+
103
+
104
+ dnl send this information to automake to set up compilation flags
105
+ dnl (add your compiler here)
106
+ AM_CONDITIONAL(COMPILER_ICC, test x$CC = xicc)
107
+
108
+ dnl Checks for programs.
109
+ AC_PROG_INSTALL
110
+ AC_PROG_RANLIB
111
+ AC_PROG_AWK
112
+ AC_PROG_LN_S
113
+
114
+ dnl Checks for standard C stuff.
115
+ AC_HEADER_STDC
116
+ AC_FUNC_MALLOC
117
+ AC_C_CONST
118
+ AC_C_INLINE
119
+
120
+
121
+ AC_CHECK_FUNCS([sqrt])
122
+ AC_CHECK_HEADERS([fenv.h])
123
+ AC_CHECK_HEADERS([float.h])
124
+
125
+ dnl adds -lm
126
+ AC_CHECK_LIB([m], [log])
127
+
128
+ dnl Other checks
129
+ AC_C_BIGENDIAN(,,)
130
+ dnl defines WORDS_BIGENDIAN, or not
131
+
132
+ AC_C_LONG_DOUBLE
133
+ dnl defines HAVE_LONG_DOUBLE, or not
134
+
135
+
136
+ AC_CHECK_SIZEOF(int)
137
+ dnl defines SIZEOF_INT to be the size in bytes of int
138
+
139
+
140
+
141
+
142
+
143
+ dnl All the rest is related to MPFR and to Ziv's lib, useful for testing.
144
+
145
+ dnl Sometimes the following function is provided by aclocal, sometimes not.
146
+ dnl Copying it here is probably a bad way of managing this problem
147
+ AC_DEFUN(AC_ADD_PATH_LIBS,
148
+ [
149
+ if ` test "$1" `
150
+ then
151
+ AC_MSG_CHECKING($2 library)
152
+ if test -r "$1/lib$2.a" -o -r "$1/lib$2.so"
153
+ then
154
+ LDFLAGS="$LDFLAGS -L$1"
155
+ LIBS ="$LIBS -l$2"
156
+ else
157
+ AC_MSG_ERROR($2 not found)
158
+ fi
159
+ AC_MSG_RESULT(yes)
160
+ else
161
+ AC_CHECK_LIB($2, main, , AC_MSG_ERROR($2 not found))
162
+ fi
163
+ ]
164
+ )
165
+
166
+ dnl Command-line arguments to ./configure:
167
+
168
+
169
+ dnl A switch to disable use of double-extended optimised version
170
+ AC_ARG_ENABLE(double-extended,
171
+ [ --enable-double-extended enable double-extended optimised versions of functions if hardware supports it [[default=yes]]],
172
+ [case $enableval in
173
+ yes|no) ;;
174
+ *) AC_MSG_ERROR([bad value $enableval for --enable-double-extended, need yes or no]) ;;
175
+ esac],
176
+ [enable_double_extended=yes])
177
+
178
+ dnl following line needs a little bit more work on log-de.c and double-extended.h
179
+ dnl AM_CONDITIONAL(USE_HARDWARE_DE, test x$has_ia32_de = xtrue -a x$enable_double_extended = xyes -o x$has_ia64_de = xtrue -a x$CC = xicc -a x$enable_double_extended = xyes )
180
+ AM_CONDITIONAL(USE_HARDWARE_DE, test x$has_ia32_de = xtrue -a x$enable_double_extended = xyes )
181
+
182
+ dnl If at some point we wish to include SPARC optimization back,
183
+ dnl the default should take the value 10 and 25 in this case
184
+ dnl for around 200 bits of precision
185
+
186
+ AC_ARG_ENABLE(nbdigits,
187
+ [ --enable-nbdigits=N set the number of digits in the SCS structure to N [[default=8]] ],
188
+ [case $enableval in
189
+ *[[0-9]]) AC_DEFINE_UNQUOTED(SCS_NB_WORDS, $enableval, [Number of digits in the SCS structure]);;
190
+ *) AC_MSG_ERROR([bad value $enableval for --enable-nbdigits, number expected]) ;;
191
+ esac],
192
+ [AC_DEFINE_UNQUOTED(SCS_NB_WORDS, 8, [Number of digits in the SCS structure])]
193
+ )
194
+
195
+ AC_ARG_ENABLE(digitsize,
196
+ [ --enable-digitsize=N set the size of a digit to N bits [[default=30]] ],
197
+ [case $enableval in
198
+ *[[0-9]]) AC_DEFINE_UNQUOTED(SCS_NB_BITS, $enableval, [Size of an SCS digit]);;
199
+ *) AC_MSG_ERROR([bad value $enableval for --enable-digitsize, number expected]) ;;
200
+ esac],
201
+ [AC_DEFINE_UNQUOTED(SCS_NB_BITS, 30, [Size of an SCS digit])]
202
+ )
203
+
204
+
205
+ dnl ... for MPFR
206
+ AC_ARG_ENABLE(mpfr, [ --enable-mpfr enable MPFR function [[default=no]]],
207
+ [case $enableval in
208
+ yes|no) ;;
209
+ *) AC_MSG_ERROR([bad value $enableval for --enable-mpfr, need yes or no]) ;;
210
+ esac],
211
+ [enable_mpfr=no])
212
+
213
+
214
+ dnl ... for GMP
215
+ AC_ARG_ENABLE(gmp, [ --enable-gmp enable GMP function [[default=no]]],
216
+ [case $enableval in
217
+ yes|no) ;;
218
+ *) AC_MSG_ERROR([bad value $enableval for --enable-gmp, need yes or no]) ;;
219
+ esac],
220
+ [enable_gmp=no])
221
+
222
+
223
+ dnl ... for IBM Accurate Portable Library
224
+ AC_ARG_ENABLE(ultim, [ --enable-ultim enable libultim, IBM's Accurate Portable Math Library [[default=no]]],
225
+ [case $enableval in
226
+ yes|no) ;;
227
+ *) AC_MSG_ERROR([bad value $enableval for --enable-ultim, need yes or no]) ;;
228
+ esac],
229
+ [enable_ultim=no])
230
+
231
+
232
+ dnl ... for Sun's libmcr
233
+ AC_ARG_ENABLE(mcr, [ --enable-mcr enable Sun's LIBMCR [[default=no]]],
234
+ [case $enableval in
235
+ yes|no) ;;
236
+ *) AC_MSG_ERROR([bad value $enableval for --enable-mcr, need yes or no]) ;;
237
+ esac],
238
+ [enable_mcr=no])
239
+
240
+
241
+ dnl Now consider the result of the previous to set directories:
242
+
243
+
244
+ dnl ... for GMP
245
+ if test "$enable_gmp" = "yes" -o "$enable_mpfr" = "yes"; then
246
+
247
+ AC_ARG_WITH(gmp_include, [ --with-gmp-include=DIR GMP include directory ],
248
+ with_gmp_include=$withval)
249
+ AC_ARG_WITH(gmp_lib, [ --with-gmp-lib=DIR GMP lib directory ],
250
+ with_gmp_lib=$withval)
251
+ AC_ARG_WITH(gmp, [ --with-gmp=DIR GMP directory ],
252
+ with_gmp_include=$withval/include with_gmp_lib=$withval/lib)
253
+
254
+ if test -d "$with_gmp_include"; then
255
+ CPPFLAGS="$CPPFLAGS -I$with_gmp_include"
256
+ else
257
+ with_gmp_include=
258
+ fi
259
+ AC_ADD_PATH_LIBS($with_gmp_lib, gmp)
260
+
261
+ dnl If gmp.h is found, #defines HAVE_GMP_H
262
+ AC_CHECK_HEADERS([gmp.h])
263
+
264
+ dnl If libgmp is found, adds -lgmp to LIBS
265
+ dnl correct in theory: AC_CHECK_LIB([gmp], [__gmp_fprintf])
266
+ AC_CHECK_LIB([gmp], [main])
267
+
268
+ dnl end of test for gmp
269
+ fi
270
+
271
+
272
+
273
+ dnl and for MPFR
274
+
275
+ if test "$enable_mpfr" = "yes"; then
276
+ AC_ARG_WITH(mpfr_include, [ --with-mpfr-include=DIR MPFR include directory ],
277
+ with_mpfr_include=$withval)
278
+ AC_ARG_WITH(mpfr_lib, [ --with-mpfr-lib=DIR MPFR lib directory ],
279
+ with_mpfr_lib=$withval)
280
+ AC_ARG_WITH(mpfr, [ --with-mpfr=DIR MPFR directory ],
281
+ with_mpfr_include=$withval/include with_mpfr_lib=$withval/lib)
282
+
283
+ if test -d "$with_mpfr_include"; then
284
+ CPPFLAGS="$CPPFLAGS -I$with_mpfr_include"
285
+ else
286
+ with_mpfr_include=
287
+ fi
288
+ AC_ADD_PATH_LIBS($with_mpfr_lib, mpfr)
289
+
290
+
291
+ dnl If mpfr.h is found, #defines HAVE_MPFR_H
292
+ dnl this line should be
293
+ dnl AC_CHECK_HEADERS([mpfr.h], [], [], [#if HAVE_GMP_H #include<gmp.h> #endif])
294
+ dnl but it doesn't work properly so we assume that gmp is installed on the system
295
+ dnl is mpfr is !!!
296
+ AC_CHECK_HEADERS([mpfr.h], [], [], [#include<gmp.h>])
297
+
298
+ dnl If MPFR is found, adds -lmpfr to LIBS
299
+ dnl correct in theory: AC_CHECK_LIB([mpfr], [mpfr_init2])
300
+ AC_CHECK_LIB([mpfr], [main])
301
+
302
+ dnl end of test for mpfr
303
+ fi
304
+
305
+
306
+
307
+ dnl ... for IBM
308
+ if test "$enable_ultim" = "yes"; then
309
+
310
+ AC_ARG_WITH(ultim_include, [ --with-ultim-include=DIR ULTIM include directory ],
311
+ with_ultim_include=$withval)
312
+ AC_ARG_WITH(ultim_lib, [ --with-ultim-lib=DIR ULTIM lib directory ],
313
+ with_ultim_lib=$withval)
314
+ AC_ARG_WITH(ultim, [ --with-ultim=DIR ULTIM directory ],
315
+ with_ultim_include=$withval/include with_ultim_lib=$withval/lib)
316
+
317
+ if test -d "$with_ultim_include"; then
318
+ CPPFLAGS="$CPPFLAGS -I$with_ultim_include"
319
+ else
320
+ with_ultim_include=
321
+ fi
322
+ AC_ADD_PATH_LIBS($with_ultim_lib, ultim)
323
+
324
+ AC_CHECK_HEADERS([MathLib.h])
325
+
326
+ AC_CHECK_LIB([ultim], [main])
327
+
328
+ dnl end of test for IBM libultim
329
+ fi
330
+
331
+
332
+
333
+ dnl ... for SUN
334
+ if test "$enable_mcr" = "yes"; then
335
+
336
+ AC_ARG_WITH(mcr_include, [ --with-mcr-include=DIR LIBMCR include directory ],
337
+ with_mcr_include=$withval)
338
+ AC_ARG_WITH(mcr_lib, [ --with-mcr-lib=DIR LIBMCR lib directory ],
339
+ with_mcr_lib=$withval)
340
+ AC_ARG_WITH(mcr, [ --with-mcr=DIR LIBMCR directory ],
341
+ with_mcr_include=$withval/include with_mcr_lib=$withval/lib)
342
+
343
+ if test -d "$with_mcr_include"; then
344
+ CPPFLAGS="$CPPFLAGS -I$with_mcr_include"
345
+ else
346
+ with_mcr_include=
347
+ fi
348
+ AC_ADD_PATH_LIBS($with_mcr_lib, mcr)
349
+
350
+ AC_CHECK_HEADERS([libmcr.h])
351
+
352
+ AC_CHECK_LIB([mcr], [main])
353
+
354
+ dnl end of test for IBM libultim
355
+ fi
356
+
357
+
358
+ #AC_CONFIG_SUBDIRS([scs_lib])
359
+
360
+
361
+
362
+ AC_OUTPUT(Makefile tests/Makefile scs_lib/Makefile)
363
+
364
+
@@ -0,0 +1,125 @@
1
+ /*
2
+ * Author : David Defour, Catherine Daramy, Florent de Dinechin
3
+ * Contact : David.Defour@ens-lyon.fr, catherine_daramy@ens-lyon.fr
4
+ *
5
+ * This program is free software; you can redistribute it and/or modify
6
+ * it under the terms of the GNU Lesser General Public License as published by
7
+ * the Free Software Foundation; either version 2 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public License
16
+ * along with this program; if not, write to the Free Software
17
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
+ */
19
+
20
+ #ifndef CRLIBM_H
21
+ #define CRLIBM_H
22
+
23
+ #if defined (__cplusplus)
24
+ extern "C" {
25
+ #endif
26
+
27
+
28
+ /* An init function which sets FPU flags when needed (mostly on Intel
29
+ architectures with default double extended) */
30
+ extern unsigned long long crlibm_init(void);
31
+
32
+ /* An exit function which restores FPU flags when needed (mostly on Intel
33
+ architectures with default double extended) */
34
+ extern void crlibm_exit(unsigned long long);
35
+
36
+
37
+ /* Finished functions */
38
+ /* These functions are computed in two steps and have an average
39
+ execution time comparable to that of a standard libm
40
+ */
41
+
42
+ /* exponential */
43
+ extern double exp_rn(double); /* to nearest */
44
+ extern double exp_rd(double); /* toward -inf */
45
+ extern double exp_ru(double); /* toward +inf */
46
+ #define exp_rz exp_rd /* toward zero */
47
+
48
+ /* logarithm */
49
+ extern double log_rn(double); /* to nearest */
50
+ extern double log_rd(double); /* toward -inf */
51
+ extern double log_ru(double); /* toward +inf */
52
+ extern double log_rz(double); /* toward zero */
53
+
54
+ /* cosine */
55
+ extern double cos_rn(double); /* to nearest */
56
+ extern double cos_rd(double); /* toward -inf */
57
+ extern double cos_ru(double); /* toward +inf */
58
+ extern double cos_rz(double); /* toward zero */
59
+
60
+ /* sine */
61
+ extern double sin_rn(double); /* to nearest */
62
+ extern double sin_rd(double); /* toward -inf */
63
+ extern double sin_ru(double); /* toward +inf */
64
+ extern double sin_rz(double); /* toward zero */
65
+
66
+ /* tangent */
67
+ extern double tan_rn(double); /* to nearest */
68
+ extern double tan_rd(double); /* toward -inf */
69
+ extern double tan_ru(double); /* toward +inf */
70
+ extern double tan_rz(double); /* toward zero */
71
+
72
+
73
+ /* cotangent */
74
+ extern double cotan_rn(double); /* to nearest */
75
+ extern double cotan_rd(double); /* toward -inf */
76
+ extern double cotan_ru(double); /* toward +inf */
77
+ extern double cotan_rz(double); /* toward zero */
78
+
79
+ /* arctangent */
80
+ extern double atan_rn(double); /* to nearest */
81
+ extern double atan_rd(double); /* toward -inf */
82
+ extern double atan_ru(double); /* toward +inf */
83
+ extern double atan_rz(double); /* toward zero */
84
+
85
+ /* hyperbolic cosine*/
86
+ extern double cosh_rn(double); /* to nearest */
87
+ extern double cosh_rd(double); /* toward -inf */
88
+ extern double cosh_ru(double); /* toward +inf */
89
+ extern double cosh_rz(double); /* toward zero */
90
+
91
+ /* hyperbolic sine */
92
+ extern double sinh_rn(double); /* to nearest */
93
+ extern double sinh_rd(double); /* toward -inf */
94
+ extern double sinh_ru(double); /* toward +inf */
95
+ extern double sinh_rz(double); /* toward zero */
96
+
97
+ /* pow */
98
+ extern double pow_rn(double, double); /* to nearest */
99
+
100
+
101
+ /* Unfinished functions */
102
+ /* These functions provide correct rounding but are very slow
103
+ (typically 100 times slower that the standard libm) */
104
+
105
+
106
+ extern double exp2_rn(double); /* to nearest */
107
+ extern double exp2_rd(double); /* toward -inf */
108
+ extern double exp2_ru(double); /* toward +inf */
109
+
110
+
111
+ extern double log2_rn(double); /* to nearest */
112
+ extern double log2_rd(double); /* toward -inf */
113
+ extern double log2_ru(double); /* toward +inf */
114
+ extern double log2_rz(double); /* towards zero */
115
+
116
+ extern double log10_rn(double); /* to nearest */
117
+ extern double log10_rd(double); /* toward -inf */
118
+ extern double log10_ru(double); /* toward +inf */
119
+ extern double log10_rz(double); /* towards zero */
120
+
121
+ #if defined (__cplusplus)
122
+ }
123
+ #endif
124
+
125
+ #endif /* ifdef CRLIBM_H*/
@@ -0,0 +1,149 @@
1
+ /* crlibm_config.h. Generated by configure. */
2
+ /* crlibm_config.h.in. Generated from configure.ac by autoheader. */
3
+
4
+ /* Processor type */
5
+ /* #undef CRLIBM_TYPECPU_ALPHA */
6
+
7
+ /* Processor type */
8
+ /* #undef CRLIBM_TYPECPU_AMD64 */
9
+
10
+ /* Processor type */
11
+ /* #undef CRLIBM_TYPECPU_ITANIUM */
12
+
13
+ /* Processor type */
14
+ #define CRLIBM_TYPECPU_POWERPC 1
15
+
16
+ /* Processor type */
17
+ /* #undef CRLIBM_TYPECPU_SPARC */
18
+
19
+ /* Processor type */
20
+ /* #undef CRLIBM_TYPECPU_X86 */
21
+
22
+ /* OS type */
23
+ /* #undef CRLIBM_TYPEOS_BSD */
24
+
25
+ /* OS type */
26
+ /* #undef CRLIBM_TYPEOS_CYGWIN */
27
+
28
+ /* OS type */
29
+ /* #undef CRLIBM_TYPEOS_HPUX */
30
+
31
+ /* Define to 1 if you have the <fenv.h> header file. */
32
+ #define HAVE_FENV_H 1
33
+
34
+ /* Define to 1 if you have the <float.h> header file. */
35
+ #define HAVE_FLOAT_H 1
36
+
37
+ /* Define to 1 if you have the <gmp.h> header file. */
38
+ /* #undef HAVE_GMP_H */
39
+
40
+ /* Define to 1 if you have the <inttypes.h> header file. */
41
+ #define HAVE_INTTYPES_H 1
42
+
43
+ /* Define to 1 if you have the `gmp' library (-lgmp). */
44
+ /* #undef HAVE_LIBGMP */
45
+
46
+ /* Define to 1 if you have the `m' library (-lm). */
47
+ #define HAVE_LIBM 1
48
+
49
+ /* Define to 1 if you have the `mcr' library (-lmcr). */
50
+ /* #undef HAVE_LIBMCR */
51
+
52
+ /* Define to 1 if you have the <libmcr.h> header file. */
53
+ /* #undef HAVE_LIBMCR_H */
54
+
55
+ /* Define to 1 if you have the `mpfr' library (-lmpfr). */
56
+ /* #undef HAVE_LIBMPFR */
57
+
58
+ /* Define to 1 if you have the `ultim' library (-lultim). */
59
+ /* #undef HAVE_LIBULTIM */
60
+
61
+ /* Define to 1 if long double works and has more range or precision than
62
+ double. */
63
+ /* #undef HAVE_LONG_DOUBLE */
64
+
65
+ /* Define to 1 if your system has a GNU libc compatible `malloc' function, and
66
+ to 0 otherwise. */
67
+ #define HAVE_MALLOC 1
68
+
69
+ /* Define to 1 if you have the <MathLib.h> header file. */
70
+ /* #undef HAVE_MATHLIB_H */
71
+
72
+ /* Define to 1 if you have the <memory.h> header file. */
73
+ #define HAVE_MEMORY_H 1
74
+
75
+ /* Define to 1 if you have the <mpfr.h> header file. */
76
+ /* #undef HAVE_MPFR_H */
77
+
78
+ /* Define to 1 if you have the `sqrt' function. */
79
+ #define HAVE_SQRT 1
80
+
81
+ /* Define to 1 if you have the <stdint.h> header file. */
82
+ #define HAVE_STDINT_H 1
83
+
84
+ /* Define to 1 if you have the <stdlib.h> header file. */
85
+ #define HAVE_STDLIB_H 1
86
+
87
+ /* Define to 1 if you have the <strings.h> header file. */
88
+ #define HAVE_STRINGS_H 1
89
+
90
+ /* Define to 1 if you have the <string.h> header file. */
91
+ #define HAVE_STRING_H 1
92
+
93
+ /* Define to 1 if you have the <sys/stat.h> header file. */
94
+ #define HAVE_SYS_STAT_H 1
95
+
96
+ /* Define to 1 if you have the <sys/types.h> header file. */
97
+ #define HAVE_SYS_TYPES_H 1
98
+
99
+ /* Define to 1 if you have the <unistd.h> header file. */
100
+ #define HAVE_UNISTD_H 1
101
+
102
+ /* Name of package */
103
+ #define PACKAGE "crlibm"
104
+
105
+ /* Define to the address where bug reports for this package should be sent. */
106
+ #define PACKAGE_BUGREPORT ""
107
+
108
+ /* Define to the full name of this package. */
109
+ #define PACKAGE_NAME ""
110
+
111
+ /* Define to the full name and version of this package. */
112
+ #define PACKAGE_STRING ""
113
+
114
+ /* Define to the one symbol short name of this package. */
115
+ #define PACKAGE_TARNAME ""
116
+
117
+ /* Define to the version of this package. */
118
+ #define PACKAGE_VERSION ""
119
+
120
+ /* Size of an SCS digit */
121
+ #define SCS_NB_BITS 30
122
+
123
+ /* Number of digits in the SCS structure */
124
+ #define SCS_NB_WORDS 8
125
+
126
+ /* The size of a `int', as computed by sizeof. */
127
+ #define SIZEOF_INT 4
128
+
129
+ /* Define to 1 if you have the ANSI C header files. */
130
+ #define STDC_HEADERS 1
131
+
132
+ /* Version number of package */
133
+ #define VERSION "0.10beta"
134
+
135
+ /* Define to 1 if your processor stores words with the most significant byte
136
+ first (like Motorola and SPARC, unlike Intel and VAX). */
137
+ #define WORDS_BIGENDIAN 1
138
+
139
+ /* Define to empty if `const' does not conform to ANSI C. */
140
+ /* #undef const */
141
+
142
+ /* Define to `__inline__' or `__inline' if that's what the C compiler
143
+ calls it, or to nothing if 'inline' is not supported under any name. */
144
+ #ifndef __cplusplus
145
+ /* #undef inline */
146
+ #endif
147
+
148
+ /* Define to rpl_malloc if the replacement function should be used. */
149
+ /* #undef malloc */