1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2002-04-12 03:24:52 +00:00
parent 1aa67cb1d3
commit be5524ae41
5 changed files with 119 additions and 11 deletions

View file

@ -1,3 +1,16 @@
Fri Apr 12 00:34:17 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* MANIFEST (missing/acosh.c): added.
* Makefile.in (missing/acosh.c): ditto.
* Makefile.in (missing/fileblocks.c): ditto.
* configure.in (AC_REPLACE_FUNCS): check acosh() on behalf of
inverse hyperbolic functions, asinh() and atanh().
* missing/acosh.c: added for acosh(), asinh() and atanh().
Thu Apr 11 19:10:37 2002 WATANABE Hirofumi <eban@ruby-lang.org> Thu Apr 11 19:10:37 2002 WATANABE Hirofumi <eban@ruby-lang.org>
* io.c (remain_size): IO#read returns "" if file.size == 0. * io.c (remain_size): IO#read returns "" if file.size == 0.

View file

@ -205,6 +205,7 @@ misc/inf-ruby.el
misc/ruby-mode.el misc/ruby-mode.el
misc/rubydb2x.el misc/rubydb2x.el
misc/rubydb3x.el misc/rubydb3x.el
missing/acosh.c
missing/alloca.c missing/alloca.c
missing/crypt.c missing/crypt.c
missing/dup2.c missing/dup2.c

View file

@ -165,6 +165,9 @@ parse.c: parse.y
parse.@OBJEXT@: parse.c parse.@OBJEXT@: parse.c
acosh.@OBJEXT@: $(srcdir)/missing/acosh.c
$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/acosh.c
alloca.@OBJEXT@: $(srcdir)/missing/alloca.c alloca.@OBJEXT@: $(srcdir)/missing/alloca.c
$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/alloca.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/alloca.c
@ -174,6 +177,9 @@ crypt.@OBJEXT@: $(srcdir)/missing/crypt.c
dup2.@OBJEXT@: $(srcdir)/missing/dup2.c dup2.@OBJEXT@: $(srcdir)/missing/dup2.c
$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/dup2.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/dup2.c
fileblocks.@OBJEXT@: $(srcdir)/missing/fileblocks.c
$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/fileblocks.c
finite.@OBJEXT@: $(srcdir)/missing/finite.c finite.@OBJEXT@: $(srcdir)/missing/finite.c
$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/finite.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/finite.c

View file

@ -11,7 +11,7 @@ AC_SUBST(MAJOR)
AC_SUBST(MINOR) AC_SUBST(MINOR)
AC_SUBST(TEENY) AC_SUBST(TEENY)
dnl checks for alternative programs dnl checks for alternative programs
AC_ARG_WITH(gcc, [--without-gcc never use gcc], [ AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [
case $withval in case $withval in
no) : ${CC=cc} no) : ${CC=cc}
;; ;;
@ -36,7 +36,7 @@ RUBY_CANONICAL_BUILD
dnl checks for fat-binary dnl checks for fat-binary
fat_binary=no fat_binary=no
AC_ARG_ENABLE(fat-binary, AC_ARG_ENABLE(fat-binary,
[--enable-fat-binary build a NeXT/Apple Multi Architecture Binary. ], [ --enable-fat-binary build a NeXT/Apple Multi Architecture Binary. ],
[fat_binary=$enableval]) [fat_binary=$enableval])
if test "$fat_binary" = yes ; then if test "$fat_binary" = yes ; then
@ -83,7 +83,7 @@ case $target_cpu in
*) frame_address=no;; *) frame_address=no;;
esac esac
AC_ARG_ENABLE(frame-address, AC_ARG_ENABLE(frame-address,
[--enable-frame-address use GCC __builtin_frame_address(). ], [ --enable-frame-address use GCC __builtin_frame_address(). ],
[frame_address=$enableval]) [frame_address=$enableval])
if test $frame_address = yes; then if test $frame_address = yes; then
AC_DEFINE(USE_BUILTIN_FRAME_ADDRESS) AC_DEFINE(USE_BUILTIN_FRAME_ADDRESS)
@ -191,7 +191,7 @@ AC_DEFINE_UNQUOTED([NORETURN(x)], $rb_cv_noreturn)
dnl wheather link libc_r or not dnl wheather link libc_r or not
AC_ARG_WITH(libc_r, AC_ARG_WITH(libc_r,
[--with-libc_r link libc_r if possible (FreeBSD only)], [ [ --with-libc_r link libc_r if possible (FreeBSD only)], [
case $withval in case $withval in
yes) with_libc_r=yes;; yes) with_libc_r=yes;;
*) with_libc_r=no;; *) with_libc_r=no;;
@ -301,7 +301,7 @@ AC_FUNC_FSEEKO
AC_CHECK_FUNCS(ftello) AC_CHECK_FUNCS(ftello)
AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strncasecmp strerror strftime\ AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strncasecmp strerror strftime\
strchr strstr strtoul crypt flock vsnprintf\ strchr strstr strtoul crypt flock vsnprintf\
isinf isnan finite hypot) isinf isnan finite hypot acosh)
AC_CHECK_FUNCS(fmod killpg drand48 random wait4 waitpid syscall chroot fsync\ AC_CHECK_FUNCS(fmod killpg drand48 random wait4 waitpid syscall chroot fsync\
truncate chsize times utimes fcntl lockf lstat symlink readlink\ truncate chsize times utimes fcntl lockf lstat symlink readlink\
setitimer setruid seteuid setreuid setresuid setproctitle\ setitimer setruid seteuid setreuid setresuid setproctitle\
@ -522,7 +522,7 @@ dnl default value for $KANJI
DEFAULT_KCODE="KCODE_NONE" DEFAULT_KCODE="KCODE_NONE"
AC_ARG_WITH(default-kcode, AC_ARG_WITH(default-kcode,
[--with-default-kcode=CODE specify default value for \$KCODE (utf8|euc|sjis|none)], [ --with-default-kcode=CODE specify default value for \$KCODE (utf8|euc|sjis|none)],
[case $withval in [case $withval in
utf8) DEFAULT_KCODE="KCODE_UTF8";; utf8) DEFAULT_KCODE="KCODE_UTF8";;
euc) DEFAULT_KCODE="KCODE_EUC";; euc) DEFAULT_KCODE="KCODE_EUC";;
@ -534,7 +534,7 @@ AC_DEFINE_UNQUOTED(DEFAULT_KCODE, $DEFAULT_KCODE)
dnl wheather use dln_a_out or not dnl wheather use dln_a_out or not
AC_ARG_WITH(dln-a-out, AC_ARG_WITH(dln-a-out,
[--with-dln-a-out use dln_a_out if possible], [ [ --with-dln-a-out use dln_a_out if possible], [
case $withval in case $withval in
yes) with_dln_a_out=yes;; yes) with_dln_a_out=yes;;
*) with_dln_a_out=no;; *) with_dln_a_out=no;;
@ -801,7 +801,7 @@ esac
EXTSTATIC= EXTSTATIC=
AC_SUBST(EXTSTATIC)dnl AC_SUBST(EXTSTATIC)dnl
AC_ARG_WITH(static-linked-ext, AC_ARG_WITH(static-linked-ext,
[--with-static-linked-ext link external modules statically], [ --with-static-linked-ext link external modules statically],
[case $withval in [case $withval in
yes) STATIC= yes) STATIC=
EXTSTATIC=static;; EXTSTATIC=static;;
@ -911,7 +911,7 @@ LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so'
ENABLE_SHARED=no ENABLE_SHARED=no
AC_ARG_ENABLE(shared, AC_ARG_ENABLE(shared,
[--enable-shared build a shared library for Ruby. ], [ --enable-shared build a shared library for Ruby. ],
[enable_shared=$enableval]) [enable_shared=$enableval])
if test "$enable_shared" = 'yes'; then if test "$enable_shared" = 'yes'; then
LIBRUBY='$(LIBRUBY_SO)' LIBRUBY='$(LIBRUBY_SO)'
@ -1097,7 +1097,7 @@ esac
RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}" RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}"
AC_ARG_WITH(sitedir, AC_ARG_WITH(sitedir,
[--with-sitedir=DIR site libraries in DIR [PREFIX/lib/ruby/site_ruby]], [ --with-sitedir=DIR site libraries in DIR [PREFIX/lib/ruby/site_ruby]],
[sitedir=$withval], [sitedir=$withval],
[sitedir='${prefix}/lib/ruby/site_ruby']) [sitedir='${prefix}/lib/ruby/site_ruby'])
SITE_DIR="`eval \"echo ${sitedir}\"`" SITE_DIR="`eval \"echo ${sitedir}\"`"
@ -1138,7 +1138,7 @@ AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${arch}") AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${arch}")
AC_ARG_WITH(search-path, AC_ARG_WITH(search-path,
[--with-search-path=DIR specify the additional search path], [ --with-search-path=DIR specify the additional search path],
[search_path=$withval]) [search_path=$withval])
if test "$search_path" != ""; then if test "$search_path" != ""; then
AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path") AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path")

88
missing/acosh.c Normal file
View file

@ -0,0 +1,88 @@
/**********************************************************************
acosh.c -
$Author$
$Date$
created at: Fri Apr 12 00:34:17 JST 2002
public domain rewrite of acosh(3), asinh(3) and atanh(3)
**********************************************************************/
#include <errno.h>
#include <float.h>
#include <math.h>
/* DBL_MANT_DIG must be less than 4 times of bits of int */
#ifdef DBL_MANT_DIG
#define DBL_MANT_DIG 53 /* in this case, at least 12 digit precision */
#endif
#define BIG_CRITERIA_BIT (1<<DBL_MANT_DIG/2)
#if BIG_CRITERIA_BIT > 0
#define BIG_CRITERIA (1.0*BIG_CRITERIA_BIT)
#else
#define BIG_CRITERIA (1.0*(1<<DBL_MANT_DIG/4)*(1<<(DBL_MANT_DIG/2+1-DBL_MANT_DIG/4)))
#endif
#define SMALL_CRITERIA_BIT (1<<(DBL_MANT_DIG/3))
#if SMALL_CRITERIA_BIT > 0
#define SMALL_CRITERIA (1.0/SMALL_CRITERIA_BIT)
#else
#define SMALL_CRITERIA (1.0*(1<<DBL_MANT_DIG/4)*(1<<(DBL_MANT_DIG/3+1-DBL_MANT_DIG/4)))
#endif
#ifndef HAVE_ACOSH
double
acosh(x)
double x;
{
if (x < 1)
x = -1; /* NaN */
else if (x == 1)
return 0;
else if (x > BIG_CRITERIA)
x += x;
else
x += sqrt((x + 1) * (x - 1));
return log(x);
}
#endif
#ifndef HAVE_ASINH
double
asinh(x)
double x;
{
int neg = x < 0;
double z = fabs(x);
if (z < SMALL_CRITERIA) return x;
if (z < (1.0/(1<<DBL_MANT_DIG/5))) {
double x2 = z * z;
z *= 1 + x2 * (-1.0/6.0 + x2 * 3.0/40.0);
}
else if (z > BIG_CRITERIA) {
z = log(z + z);
}
else {
z = log(z + sqrt(z * z + 1));
}
if (neg) z = -z;
return z;
}
#endif
#ifndef HAVE_ATANH
double
atanh(x)
double x;
{
int neg = x < 0;
double z = fabs(x);
if (z < SMALL_CRITERIA) return x;
z = log(z > 1 ? -1 : (1 + z) / (1 - z)) / 2;
if (neg) z = -z;
return z;
}
#endif