#!/bin/sh
# This is a shell archive (produced by GNU sharutils 4.2.1).
# To extract the files from this archive, save it to some FILE, remove
# everything before the `!/bin/sh' line above, then type `sh FILE'.
#
# Made on 2006-04-10 00:06 EDT by <segin@segin.no-ip.org>.
# Source directory was `/home/segin'.
#
# Existing files will *not* be overwritten unless `-c' is specified.
#
# This shar contains:
# length mode       name
# ------ ---------- ------------------------------------------
#   1572 -rw-r--r-- elkslibm/Makefile
#   1374 -rw-r--r-- elkslibm/exp.c
#   1342 -rw-r--r-- elkslibm/log.c
#   1088 -rw-r--r-- elkslibm/pow.c
#   1794 -rw-r--r-- elkslibm/sin.c
#   1609 -rw-r--r-- elkslibm/tan.c
#   1016 -rw-r--r-- elkslibm/ldexp.c
#    536 -rw-r--r-- elkslibm/log10.c
#   1999 -rw-r--r-- elkslibm/ansi.h
#   1423 -rw-r--r-- elkslibm/asin.c
#   1474 -rw-r--r-- elkslibm/atan.c
#   1168 -rw-r--r-- elkslibm/float.h
#    437 -rw-r--r-- elkslibm/floor.c
#    435 -rw-r--r-- elkslibm/ceil.c
#    305 -rw-r--r-- elkslibm/fabs.c
#    548 -rw-r--r-- elkslibm/fmod.c
#   1376 -rw-r--r-- elkslibm/frexp.c
#   1999 -rw-r--r-- elkslibm/localmath.h
#  14368 -rw-r--r-- elkslibm/libm.a
#   1392 -rw-r--r-- elkslibm/math.h
#   1775 -rw-r--r-- elkslibm/modf.c
#   1562 -rw-r--r-- elkslibm/sinh.c
#   1142 -rw-r--r-- elkslibm/tanh.c
#    830 -rw-r--r-- elkslibm/sqrt.c
#    351 -rw-r--r-- elkslibm/hugeval.c
#    848 -rw-r--r-- elkslibm/atan2.c
#    201 -rw-r--r-- elkslibm/isnan.c
#
save_IFS="${IFS}"
IFS="${IFS}:"
gettext_dir=FAILED
locale_dir=FAILED
first_param="$1"
for dir in $PATH
do
  if test "$gettext_dir" = FAILED && test -f $dir/gettext \
     && ($dir/gettext --version >/dev/null 2>&1)
  then
    set `$dir/gettext --version 2>&1`
    if test "$3" = GNU
    then
      gettext_dir=$dir
    fi
  fi
  if test "$locale_dir" = FAILED && test -f $dir/shar \
     && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
  then
    locale_dir=`$dir/shar --print-text-domain-dir`
  fi
done
IFS="$save_IFS"
if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
then
  echo=echo
else
  TEXTDOMAINDIR=$locale_dir
  export TEXTDOMAINDIR
  TEXTDOMAIN=sharutils
  export TEXTDOMAIN
  echo="$gettext_dir/gettext -s"
fi
if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then
  shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"'
elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then
  shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"'
elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then
  shar_touch='touch -am $3$4$5$6$2 "$8"'
else
  shar_touch=:
  echo
  $echo 'WARNING: not restoring timestamps.  Consider getting and'
  $echo "installing GNU \`touch', distributed in GNU File Utilities..."
  echo
fi
rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch
#
if mkdir _sh16061; then
  $echo 'x -' 'creating lock directory'
else
  $echo 'failed to create lock directory'
  exit 1
fi
# ============= elkslibm/Makefile ==============
if test ! -d 'elkslibm'; then
  $echo 'x -' 'creating directory' 'elkslibm'
  mkdir 'elkslibm'
fi
if test -f 'elkslibm/Makefile' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/Makefile' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/Makefile' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/Makefile' &&
# Makefile for lib/math.
X
CC	= bcc -ansi
CFLAGS	= -O -D_POSIX_SOURCE -I.
CC1	= $(CC) $(CFLAGS) -c
X
LIBRARY	= libm.a
all:	$(LIBRARY)
X
OBJECTS	= \
X	$(LIBRARY)(asin.o) \
X	$(LIBRARY)(atan.o) \
X	$(LIBRARY)(atan2.o) \
X	$(LIBRARY)(ceil.o) \
X	$(LIBRARY)(exp.o) \
X	$(LIBRARY)(fabs.o) \
X	$(LIBRARY)(floor.o) \
X	$(LIBRARY)(fmod.o) \
X	$(LIBRARY)(frexp.o) \
X	$(LIBRARY)(hugeval.o) \
X	$(LIBRARY)(isnan.o) \
X	$(LIBRARY)(ldexp.o) \
X	$(LIBRARY)(log.o) \
X	$(LIBRARY)(log10.o) \
X	$(LIBRARY)(modf.o) \
X	$(LIBRARY)(pow.o) \
X	$(LIBRARY)(sin.o) \
X	$(LIBRARY)(sinh.o) \
X	$(LIBRARY)(sqrt.o) \
X	$(LIBRARY)(tan.o) \
X	$(LIBRARY)(tanh.o) \
X
$(LIBRARY):	$(OBJECTS)
X	ar cr $@ *.o
X	rm *.o
X
$(LIBRARY)(asin.o):	asin.c
X	$(CC1) asin.c
X
$(LIBRARY)(atan.o):	atan.c
X	$(CC1) atan.c
X
$(LIBRARY)(atan2.o):	atan2.c
X	$(CC1) atan2.c
X
$(LIBRARY)(ceil.o):	ceil.c
X	$(CC1) ceil.c
X
$(LIBRARY)(exp.o):	exp.c
X	$(CC1) exp.c
X
$(LIBRARY)(fabs.o):	fabs.c
X	$(CC1) fabs.c
X
$(LIBRARY)(floor.o):	floor.c
X	$(CC1) floor.c
X
$(LIBRARY)(fmod.o):	fmod.c
X	$(CC1) fmod.c
X
$(LIBRARY)(frexp.o):	frexp.c
X	$(CC1) frexp.c
X
$(LIBRARY)(hugeval.o):	hugeval.c
X	$(CC1) hugeval.c
X
$(LIBRARY)(isnan.o):	isnan.c
X	$(CC1) isnan.c
X
$(LIBRARY)(ldexp.o):	ldexp.c
X	$(CC1) ldexp.c
X
$(LIBRARY)(log.o):	log.c
X	$(CC1) log.c
X
$(LIBRARY)(log10.o):	log10.c
X	$(CC1) log10.c
X
$(LIBRARY)(modf.o):	modf.c
X	$(CC1) modf.c
X
$(LIBRARY)(pow.o):	pow.c
X	$(CC1) pow.c
X
$(LIBRARY)(sin.o):	sin.c
X	$(CC1) sin.c
X
$(LIBRARY)(sinh.o):	sinh.c
X	$(CC1) sinh.c
X
$(LIBRARY)(sqrt.o):	sqrt.c
X	$(CC1) sqrt.c
X
$(LIBRARY)(tan.o):	tan.c
X	$(CC1) tan.c
X
$(LIBRARY)(tanh.o):	tanh.c
X	$(CC1) tanh.c
SHAR_EOF
  (set 20 06 04 09 23 53 37 'elkslibm/Makefile'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/Makefile' ||
  $echo 'restore of' 'elkslibm/Makefile' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/Makefile:' 'MD5 check failed'
a9dfff31e4320ec54da9ce73d474e8f3  elkslibm/Makefile
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/Makefile'`"
    test 1572 -eq "$shar_count" ||
    $echo 'elkslibm/Makefile:' 'original size' '1572,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/exp.c ==============
if test -f 'elkslibm/exp.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/exp.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/exp.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/exp.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: exp.c,v 1.5 91/03/19 16:38:29 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
#include	"localmath.h"
X
X
double
exp(double x)
{
X	/*	Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X
X	static double p[] = {
X		0.25000000000000000000e+0,
X		0.75753180159422776666e-2,
X		0.31555192765684646356e-4
X	};
X
X	static double q[] = {
X		0.50000000000000000000e+0,
X		0.56817302698551221787e-1,
X		0.63121894374398503557e-3,
X		0.75104028399870046114e-6
X	};
X	double	xn, g;
X	int	n;
X	int	negative = x < 0;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (x < M_LN_MIN_D) {
X		errno = ERANGE;
X		return 0.0;
X	}
X	if (x > M_LN_MAX_D) {
X		errno = ERANGE;
X		return HUGE_VAL;
X	}
X
X	if (negative) x = -x;
X 
X	/* ??? avoid underflow ??? */
X
X	n = x * M_LOG2E + 0.5;	/* 1/ln(2) = log2(e), 0.5 added for rounding */
X	xn = n;
X	{
X		double	x1 = (long) x;
X		double	x2 = x - x1;
X
X		g = ((x1-xn*0.693359375)+x2) - xn*(-2.1219444005469058277e-4);
X	}
X	if (negative) {
X		g = -g;
X		n = -n;
X	}
X	xn = g * g;
X	x = g * POLYNOM2(xn, p);
X	n += 1;
X	return (ldexp(0.5 + x/(POLYNOM3(xn, q) - x), n));
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/exp.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/exp.c' ||
  $echo 'restore of' 'elkslibm/exp.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/exp.c:' 'MD5 check failed'
ff40a660f9e2ee77f8d52317ac2044e3  elkslibm/exp.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/exp.c'`"
    test 1374 -eq "$shar_count" ||
    $echo 'elkslibm/exp.c:' 'original size' '1374,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/log.c ==============
if test -f 'elkslibm/log.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/log.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/log.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/log.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: log.c,v 1.3 91/03/19 16:38:45 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
#include	"localmath.h"
X
double
log(double x)
{
X	/*	Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X	static double a[] = {
X		-0.64124943423745581147e2,
X		 0.16383943563021534222e2,
X		-0.78956112887491257267e0
X	};
X	static double b[] = {
X		-0.76949932108494879777e3,
X		 0.31203222091924532844e3,
X		-0.35667977739034646171e2,
X		 1.0
X	};
X
X	double	znum, zden, z, w;
X	int	exponent;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (x < 0) {
X		errno = EDOM;
X		return -HUGE_VAL;
X	}
X	else if (x == 0) {
X		errno = ERANGE;
X		return -HUGE_VAL;
X	}
X
X	if (x <= DBL_MAX) {
X	}
X	else return x;	/* for infinity and Nan */
X	x = frexp(x, &exponent);
X	if (x > M_1_SQRT2) {
X		znum = (x - 0.5) - 0.5;
X		zden = x * 0.5 + 0.5;
X	}
X	else {
X		znum = x - 0.5;
X		zden = znum * 0.5 + 0.5;
X		exponent--;
X	}
X	z = znum/zden; w = z * z;
X	x = z + z * w * (POLYNOM2(w,a)/POLYNOM3(w,b));
X	z = exponent;
X	x += z * (-2.121944400546905827679e-4);
X	return x + z * 0.693359375;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/log.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/log.c' ||
  $echo 'restore of' 'elkslibm/log.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/log.c:' 'MD5 check failed'
7d3ad6094822df1a9b95c695e65fc7f4  elkslibm/log.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/log.c'`"
    test 1342 -eq "$shar_count" ||
    $echo 'elkslibm/log.c:' 'original size' '1342,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/pow.c ==============
if test -f 'elkslibm/pow.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/pow.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/pow.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/pow.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: pow.c,v 1.3 90/08/28 13:59:36 eck Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
#include	"localmath.h"
X
double
pow(double x, double y)
{
X	/*	Simple version for now. The Cody and Waite book has
X		a very complicated, much more precise version, but
X		this version has machine-dependent arrays A1 and A2,
X		and I don't know yet how to solve this ???
X	*/
X	double dummy;
X	int	result_neg = 0;
X
X	if ((x == 0 && y == 0) ||
X	    (x < 0 && modf(y, &dummy) != 0)) {
X		errno = EDOM;
X		return 0;
X	}
X
X	if (x == 0) return x;
X
X	if (x < 0) {
X		if (modf(y/2.0, &dummy) != 0) {
X			/* y was odd */
X			result_neg = 1;
X		}
X		x = -x;
X	}
X	x = log(x);
X
X	if (x < 0) {
X		x = -x;
X		y = -y;
X	}
X	/* Beware of overflow in the multiplication */
X	if (x > 1.0 && y > DBL_MAX/x) {
X		errno = ERANGE;
X		return result_neg ? -HUGE_VAL : HUGE_VAL;
X	}
X
X	x = exp(x * y);
X	return result_neg ? -x : x;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/pow.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/pow.c' ||
  $echo 'restore of' 'elkslibm/pow.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/pow.c:' 'MD5 check failed'
0bff858b689ace98c1f68f9b4cab6b18  elkslibm/pow.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/pow.c'`"
    test 1088 -eq "$shar_count" ||
    $echo 'elkslibm/pow.c:' 'original size' '1088,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/sin.c ==============
if test -f 'elkslibm/sin.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/sin.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/sin.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/sin.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: sin.c,v 1.3 91/03/19 16:39:04 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
#include	"localmath.h"
X
static double
sinus(double x, int cos_flag)
{
X	/*      Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X
X	static double r[] = {
X		-0.16666666666666665052e+0,
X		 0.83333333333331650314e-2,
X		-0.19841269841201840457e-3,
X		 0.27557319210152756119e-5,
X		-0.25052106798274584544e-7,
X		 0.16058936490371589114e-9,
X		-0.76429178068910467734e-12,
X		 0.27204790957888846175e-14
X	};
X
X	double  y;
X	int     neg = 1;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (x < 0) {
X		x = -x;
X		neg = -1;
X	}
X	if (cos_flag) {
X		neg = 1;
X		y = M_PI_2 + x;
X	}
X	else    y = x;
X
X	/* ??? avoid loss of significance, if y is too large, error ??? */
X
X	y = y * M_1_PI + 0.5;
X
X	if (y >= DBL_MAX/M_PI) return 0.0;
X
X	/*      Use extended precision to calculate reduced argument.
X		Here we used 12 bits of the mantissa for a1.
X		Also split x in integer part x1 and fraction part x2.
X	*/
#define A1 3.1416015625
#define A2 -8.908910206761537356617e-6
X	{
X		double x1, x2;
X
X		modf(y, &y);
X		if (modf(0.5*y, &x1)) neg = -neg;
X		if (cos_flag) y -= 0.5;
X		x2 = modf(x, &x1);
X		x = x1 - y * A1;
X		x += x2;
X		x -= y * A2;
#undef A1
#undef A2
X	}
X 
X	if (x < 0) {
X		neg = -neg;
X		x = -x;
X	}
X
X	/* ??? avoid underflow ??? */
X
X	y = x * x;
X	x += x * y * POLYNOM7(y, r);
X	return neg==-1 ? -x : x;
}
X
double
sin(double x)
{
X	return sinus(x, 0);
}
X
double
cos(double x)
{
X	if (x < 0) x = -x;
X	return sinus(x, 1);
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/sin.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/sin.c' ||
  $echo 'restore of' 'elkslibm/sin.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/sin.c:' 'MD5 check failed'
1c9e76d1944136ff60fad540bdba7cc5  elkslibm/sin.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/sin.c'`"
    test 1794 -eq "$shar_count" ||
    $echo 'elkslibm/sin.c:' 'original size' '1794,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/tan.c ==============
if test -f 'elkslibm/tan.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/tan.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/tan.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/tan.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: tan.c,v 1.3 91/03/19 16:39:30 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
#include	"localmath.h"
X
double
tan(double x)
{
X	/*      Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X
X	int negative = x < 0;
X	int invert = 0;
X	double  y;
X	static double   p[] = {
X		 1.0,
X		-0.13338350006421960681e+0,
X		 0.34248878235890589960e-2,
X		-0.17861707342254426711e-4
X	};
X	static double   q[] = {
X		 1.0,
X		-0.46671683339755294240e+0,
X		 0.25663832289440112864e-1,
X		-0.31181531907010027307e-3,
X		 0.49819433993786512270e-6
X	};
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (negative) x = -x;
X 
X	/* ??? avoid loss of significance, error if x is too large ??? */
X
X	y = x * M_2_PI + 0.5;
X
X	if (y >= DBL_MAX/M_PI_2) return 0.0;
X
X	/*      Use extended precision to calculate reduced argument.
X		Here we used 12 bits of the mantissa for a1.
X		Also split x in integer part x1 and fraction part x2.
X	*/
X    #define A1 1.57080078125
X    #define A2 -4.454455103380768678308e-6
X	{
X		double x1, x2;
X
X		modf(y, &y);
X		if (modf(0.5*y, &x1)) invert = 1;
X		x2 = modf(x, &x1);
X		x = x1 - y * A1;
X		x += x2;
X		x -= y * A2;
X    #undef A1
X    #undef A2
X	}
X
X	/* ??? avoid underflow ??? */
X	y = x * x;
X	x += x * y * POLYNOM2(y, p+1);
X	y = POLYNOM4(y, q);
X	if (negative) x = -x;
X	return invert ? -y/x : x/y;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/tan.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/tan.c' ||
  $echo 'restore of' 'elkslibm/tan.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/tan.c:' 'MD5 check failed'
f19bf93ff65ca4f5ef34dda69f292bf2  elkslibm/tan.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/tan.c'`"
    test 1609 -eq "$shar_count" ||
    $echo 'elkslibm/tan.c:' 'original size' '1609,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/ldexp.c ==============
if test -f 'elkslibm/ldexp.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/ldexp.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/ldexp.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/ldexp.c' &&
/*
X * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X */
/* $Header: ldexp.c,v 1.5 91/03/19 16:38:37 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
X
double
ldexp(double fl, int exp)
{
X	int sign = 1;
X	int currexp;
X
X	if (__IsNan(fl)) {
X		errno = EDOM;
X		return fl;
X	}
X	if (fl == 0.0) return 0.0;
X	if (fl<0) {
X		fl = -fl;
X		sign = -1;
X	}
X	if (fl > DBL_MAX) {		/* for infinity */
X		errno = ERANGE;
X		return sign * fl;
X	}
X	fl = frexp(fl,&currexp);
X	exp += currexp;
X	if (exp > 0) {
X		if (exp > DBL_MAX_EXP) {
X			errno = ERANGE;
X			return sign * HUGE_VAL;
X		}
X		while (exp>30) {
X			fl *= (double) (1L << 30);
X			exp -= 30;
X		}
X		fl *= (double) (1L << exp);
X	}
X	else	{
X		/* number need not be normalized */
X		if (exp < DBL_MIN_EXP - DBL_MANT_DIG) {
X			return 0.0;
X		}
X		while (exp<-30) {
X			fl /= (double) (1L << 30);
X			exp += 30;
X		}
X		fl /= (double) (1L << -exp);
X	}
X	return sign * fl;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/ldexp.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/ldexp.c' ||
  $echo 'restore of' 'elkslibm/ldexp.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/ldexp.c:' 'MD5 check failed'
c2ade50424c4e426511d2b305d634054  elkslibm/ldexp.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/ldexp.c'`"
    test 1016 -eq "$shar_count" ||
    $echo 'elkslibm/ldexp.c:' 'original size' '1016,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/log10.c ==============
if test -f 'elkslibm/log10.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/log10.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/log10.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/log10.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: log10.c,v 1.3 91/03/19 16:38:55 ceriel Exp $ */
X
#include	<math.h>
#include	<errno.h>
#include	"localmath.h"
X
double
log10(double x)
{
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (x < 0) {
X		errno = EDOM;
X		return -HUGE_VAL;
X	}
X	else if (x == 0) {
X		errno = ERANGE;
X		return -HUGE_VAL;
X	}
X
X	return log(x) / M_LN10;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/log10.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/log10.c' ||
  $echo 'restore of' 'elkslibm/log10.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/log10.c:' 'MD5 check failed'
7dc6c11c12cda91d87353cafa037a8e9  elkslibm/log10.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/log10.c'`"
    test 536 -eq "$shar_count" ||
    $echo 'elkslibm/log10.c:' 'original size' '536,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/ansi.h ==============
if test -f 'elkslibm/ansi.h' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/ansi.h' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/ansi.h' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/ansi.h' &&
/* The <ansi.h> header attempts to decide whether the compiler has enough
X * conformance to Standard C for Minix to take advantage of.  If so, the
X * symbol _ANSI is defined (as 31415).  Otherwise _ANSI is not defined
X * here, but it may be defined by applications that want to bend the rules.
X * The magic number in the definition is to inhibit unnecessary bending
X * of the rules.  (For consistency with the new '#ifdef _ANSI" tests in
X * the headers, _ANSI should really be defined as nothing, but that would
X * break many library routines that use "#if _ANSI".)
X
X * If _ANSI ends up being defined, a macro
X *
X *	_PROTOTYPE(function, params)
X *
X * is defined.  This macro expands in different ways, generating either
X * ANSI Standard C prototypes or old-style K&R (Kernighan & Ritchie)
X * prototypes, as needed.  Finally, some programs use _CONST, _VOIDSTAR etc
X * in such a way that they are portable over both ANSI and K&R compilers.
X * The appropriate macros are defined here.
X */
X
#ifndef _ANSI_H
#define _ANSI_H
X
#if __STDC__ == 1
#define _ANSI		31459	/* compiler claims full ANSI conformance */
#endif
X
#ifdef __GNUC__
#define _ANSI		31459	/* gcc conforms enough even in non-ANSI mode */
#endif
X
#ifdef _ANSI
X
/* Keep everything for ANSI prototypes. */
#define	_PROTOTYPE(function, params)	function params
#define	_ARGS(params)			params
X
#define	_VOIDSTAR	void *
#define	_VOID		void
#define	_CONST		const
#define	_VOLATILE	volatile
#define _SIZET		size_t
X
#else
X
/* Throw away the parameters for K&R prototypes. */
#define	_PROTOTYPE(function, params)	function()
#define	_ARGS(params)			()
X
#define	_VOIDSTAR	void *
#define	_VOID		void
#define	_CONST
#define	_VOLATILE
#define _SIZET		int
X
#endif /* _ANSI */
X
/* Setting any of _MINIX, _POSIX_C_SOURCE or _POSIX2_SOURCE implies
X * _POSIX_SOURCE.  (Seems wrong to put this here in ANSI space.)
X */
#if defined(_MINIX) || _POSIX_C_SOURCE > 0 || defined(_POSIX2_SOURCE)
#undef _POSIX_SOURCE
#define _POSIX_SOURCE	1
#endif
X
#endif /* ANSI_H */
SHAR_EOF
  (set 20 06 04 09 23 53 54 'elkslibm/ansi.h'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/ansi.h' ||
  $echo 'restore of' 'elkslibm/ansi.h' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/ansi.h:' 'MD5 check failed'
248e5cbf8e919e0e337deb9074f5e2e6  elkslibm/ansi.h
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/ansi.h'`"
    test 1999 -eq "$shar_count" ||
    $echo 'elkslibm/ansi.h:' 'original size' '1999,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/asin.c ==============
if test -f 'elkslibm/asin.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/asin.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/asin.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/asin.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: asin.c,v 1.3 91/03/19 16:38:12 ceriel Exp $ */
X
#include	<math.h>
#include	<errno.h>
#include	"localmath.h"
X
static double
asin_acos(double x, int cosfl)
{
X	int negative = x < 0;
X	int     i;
X	double  g;
X	static double p[] = {
X		-0.27368494524164255994e+2,
X		 0.57208227877891731407e+2,
X		-0.39688862997540877339e+2,
X		 0.10152522233806463645e+2,
X		-0.69674573447350646411e+0
X	};
X	static double q[] = {
X		-0.16421096714498560795e+3,
X		 0.41714430248260412556e+3,
X		-0.38186303361750149284e+3,
X		 0.15095270841030604719e+3,
X		-0.23823859153670238830e+2,
X		 1.0
X	};
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X
X	if (negative) {
X		x = -x;
X	}
X	if (x > 0.5) {
X		i = 1;
X		if (x > 1) {
X			errno = EDOM;
X			return 0;
X		}
X		g = 0.5 - 0.5 * x;
X		x = - sqrt(g);
X		x += x;
X	}
X	else {
X		/* ??? avoid underflow ??? */
X		i = 0;
X		g = x * x;
X	}
X	x += x * g * POLYNOM4(g, p) / POLYNOM5(g, q);
X	if (cosfl) {
X		if (! negative) x = -x;
X	}
X	if ((cosfl == 0) == (i == 1)) {
X		x = (x + M_PI_4) + M_PI_4;
X	}
X	else if (cosfl && negative && i == 1) {
X		x = (x + M_PI_2) + M_PI_2;
X	}
X	if (! cosfl && negative) x = -x;
X	return x;
}
X
double
asin(double x)
{
X	return asin_acos(x, 0);
}
X
double
acos(double x)
{
X	return asin_acos(x, 1);
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/asin.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/asin.c' ||
  $echo 'restore of' 'elkslibm/asin.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/asin.c:' 'MD5 check failed'
680f475aac35eea8124b64f3de4c36f9  elkslibm/asin.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/asin.c'`"
    test 1423 -eq "$shar_count" ||
    $echo 'elkslibm/asin.c:' 'original size' '1423,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/atan.c ==============
if test -f 'elkslibm/atan.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/atan.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/atan.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/atan.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: atan.c,v 1.3 91/03/19 16:38:21 ceriel Exp $ */
X
#include	<float.h>
#include	<math.h>
/* #include	<errno.h> */
#include	"localmath.h"
X
int errno;
#define EDOM 153
X
double
atan(double x)
{
X	/*      Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X
X	static double p[] = {
X		-0.13688768894191926929e+2,
X		-0.20505855195861651981e+2,
X		-0.84946240351320683534e+1,
X		-0.83758299368150059274e+0
X	};
X	static double q[] = {
X		 0.41066306682575781263e+2,
X		 0.86157349597130242515e+2,
X		 0.59578436142597344465e+2,
X		 0.15024001160028576121e+2,
X		 1.0
X	};
X	static double a[] = {
X		0.0,
X		0.52359877559829887307710723554658381,  /* pi/6 */
X		M_PI_2,
X		1.04719755119659774615421446109316763   /* pi/3 */
X	};
X
X	int     neg = x < 0;
X	int     n;
X	double  g;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (neg) {
X		x = -x;
X	}
X	if (x > 1.0) {
X		x = 1.0/x;
X		n = 2;
X	}
X	else    n = 0;
X
X	if (x > 0.26794919243112270647) {       /* 2-sqtr(3) */
X		n = n + 1;
X		x = (((0.73205080756887729353*x-0.5)-0.5)+x)/
X			(1.73205080756887729353+x);
X	}
X
X	/* ??? avoid underflow ??? */
X
X	g = x * x;
X	x += x * g * POLYNOM3(g, p) / POLYNOM4(g, q);
X	if (n > 1) x = -x;
X	x += a[n];
X	return neg ? -x : x;
}
SHAR_EOF
  (set 20 06 04 09 23 55 58 'elkslibm/atan.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/atan.c' ||
  $echo 'restore of' 'elkslibm/atan.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/atan.c:' 'MD5 check failed'
19d3dbff4937355025495b89db8d598a  elkslibm/atan.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/atan.c'`"
    test 1474 -eq "$shar_count" ||
    $echo 'elkslibm/atan.c:' 'original size' '1474,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/float.h ==============
if test -f 'elkslibm/float.h' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/float.h' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/float.h' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/float.h' &&
/* The <float.h> header defines some implementation limits for (IEEE) floating
X * point. Application programs can use it to find out how big and small 
X * floating-point numbers can be, what epsilon to use for iteration, etc.
X */
X
#ifndef _FLOAT_H
#define _FLOAT_H
X
#define FLT_DIG			6
#define FLT_EPSILON		1.19209290e-07F
#define FLT_MANT_DIG		24
#define FLT_MAX			3.40282347e+38F
#define FLT_MAX_10_EXP		38
#define FLT_MAX_EXP		128
#define FLT_MIN			1.17549435e-38F
#define FLT_MIN_10_EXP		-37
#define FLT_MIN_EXP		-125
X
#define DBL_DIG			15
#define DBL_EPSILON		2.2204460492503131e-16
#define DBL_MANT_DIG		53
#define DBL_MAX			1.7976931348623157e+308
#define DBL_MAX_10_EXP		308
#define DBL_MAX_EXP		1024
#define DBL_MIN			2.2250738585072014e-308
#define DBL_MIN_10_EXP		-307
#define DBL_MIN_EXP		-1021
X
#define LDBL_DIG		15
#define LDBL_EPSILON		2.2204460492503131e-16L
#define LDBL_MANT_DIG		53
#define LDBL_MAX		1.7976931348623157e+308L
#define LDBL_MAX_10_EXP		308
#define LDBL_MAX_EXP		1024
#define LDBL_MIN		2.2250738585072014e-308L
#define LDBL_MIN_10_EXP		-307
#define LDBL_MIN_EXP		-1021
X
#define FLT_ROUNDS		1
#define FLT_RADIX		2
X
#endif /* _FLOAT_H */
SHAR_EOF
  (set 20 06 04 09 23 54 56 'elkslibm/float.h'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/float.h' ||
  $echo 'restore of' 'elkslibm/float.h' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/float.h:' 'MD5 check failed'
25cb44858d3f2624052f468a532d2d69  elkslibm/float.h
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/float.h'`"
    test 1168 -eq "$shar_count" ||
    $echo 'elkslibm/float.h:' 'original size' '1168,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/floor.c ==============
if test -f 'elkslibm/floor.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/floor.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/floor.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/floor.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: floor.c,v 1.1 89/05/10 16:01:29 eck Exp $ */
X
#include	<math.h>
X
double
floor(double x)
{
X	double val;
X
X	return modf(x, &val) < 0 ? val - 1.0 : val ;
X	/*	this also works if modf always returns a positive
X		fractional part
X	*/
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/floor.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/floor.c' ||
  $echo 'restore of' 'elkslibm/floor.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/floor.c:' 'MD5 check failed'
79c57c336f2290285225913f64d28baa  elkslibm/floor.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/floor.c'`"
    test 437 -eq "$shar_count" ||
    $echo 'elkslibm/floor.c:' 'original size' '437,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/ceil.c ==============
if test -f 'elkslibm/ceil.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/ceil.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/ceil.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/ceil.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: ceil.c,v 1.1 89/05/10 16:00:46 eck Exp $ */
X
#include	<math.h>
X
double
ceil(double x)
{
X	double val;
X
X	return modf(x, &val) > 0 ? val + 1.0 : val ;
X	/*	this also works if modf always returns a positive
X		fractional part
X	*/
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/ceil.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/ceil.c' ||
  $echo 'restore of' 'elkslibm/ceil.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/ceil.c:' 'MD5 check failed'
764f4f6fbb6e18f58af4c0b186fb4304  elkslibm/ceil.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/ceil.c'`"
    test 435 -eq "$shar_count" ||
    $echo 'elkslibm/ceil.c:' 'original size' '435,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/fabs.c ==============
if test -f 'elkslibm/fabs.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/fabs.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/fabs.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/fabs.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: fabs.c,v 1.1 89/05/10 16:01:17 eck Exp $ */
X
double
fabs(double x)
{
X	return  x < 0 ? -x : x;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/fabs.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/fabs.c' ||
  $echo 'restore of' 'elkslibm/fabs.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/fabs.c:' 'MD5 check failed'
0d412fcebd6f795859f7943d4ab7cd54  elkslibm/fabs.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/fabs.c'`"
    test 305 -eq "$shar_count" ||
    $echo 'elkslibm/fabs.c:' 'original size' '305,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/fmod.c ==============
if test -f 'elkslibm/fmod.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/fmod.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/fmod.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/fmod.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Hans van Eck
X */
/* $Header: fmod.c,v 1.1 89/12/18 15:41:53 eck Exp $ */
X
#include	<math.h>
#include	<errno.h>
X
double
fmod(double x, double y)
{
X	long	i;
X	double val;
X	double frac;
X
X	if (y == 0) {
X		errno = EDOM;
X		return 0;
X	}
X	frac = modf( x / y, &val);
X
X	return frac * y;
X
/*
X	val = x / y;
X	if (val > LONG_MIN && val < LONG_MAX) {
X		i = val;
X		return x - i * y;
X	}
*/
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/fmod.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/fmod.c' ||
  $echo 'restore of' 'elkslibm/fmod.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/fmod.c:' 'MD5 check failed'
0147ae91c28449bcaf4709a59db4d64c  elkslibm/fmod.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/fmod.c'`"
    test 548 -eq "$shar_count" ||
    $echo 'elkslibm/fmod.c:' 'original size' '548,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/frexp.c ==============
if test -f 'elkslibm/frexp.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/frexp.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/frexp.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/frexp.c' &&
/*
X * CDDL HEADER START
X *
X * The contents of this file are subject to the terms of the
X * Common Development and Distribution License, Version 1.0 only
X * (the "License").  You may not use this file except in compliance
X * with the License.
X *
X * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
X * or http://www.opensolaris.org/os/licensing.
X * See the License for the specific language governing permissions
X * and limitations under the License.
X *
X * When distributing Covered Code, include this CDDL HEADER in each
X * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
X * If applicable, add the following below this CDDL HEADER, with the
X * fields enclosed by brackets "[]" replaced with your own identifying
X * information: Portions Copyright [yyyy] [name of copyright owner]
X *
X * CDDL HEADER END
X */
#pragma ident	"@(#)frexp.c	1.3	05/06/08 SMI"  /* from UCB 5.2 3/9/86 */
X
/*
X * the call
X *	x = frexp(arg,&exp);
X * must return a double fp quantity x which is <1.0
X * and the corresponding binary exponent "exp".
X * such that
X *	arg = x*2^exp
X */
double
frexp(x, i)
X	double x;
X	int *i;
{
X	int neg, j;
X
X	j = 0;
X	neg = 0;
X	if (x<0) {
X		x = -x;
X		neg = 1;
X	}
X	if (x>=1.0)
X		while (x>=1.0) {
X			j = j+1;
X			x = x/2;
X		}
X	else if (x < 0.5 && x != 0.0)
X		while(x<0.5) {
X			j = j-1;
X			x = 2*x;
X		}
X	*i = j;
X	if(neg)
X		x = -x;
X	return (x);
}
SHAR_EOF
  (set 20 06 04 09 23 49 21 'elkslibm/frexp.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/frexp.c' ||
  $echo 'restore of' 'elkslibm/frexp.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/frexp.c:' 'MD5 check failed'
24b07eb798fda9a530b36c0025257a3e  elkslibm/frexp.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/frexp.c'`"
    test 1376 -eq "$shar_count" ||
    $echo 'elkslibm/frexp.c:' 'original size' '1376,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/localmath.h ==============
if test -f 'elkslibm/localmath.h' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/localmath.h' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/localmath.h' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/localmath.h' &&
/*
X * localmath.h - This header is used by the mathematical library.
X */
/* $Header: localmath.h,v 1.2 89/12/18 15:43:05 eck Exp $ */
X
/* some constants (Hart & Cheney) */
#define	M_PI		3.14159265358979323846264338327950288
#define	M_2PI		6.28318530717958647692528676655900576
#define	M_3PI_4		2.35619449019234492884698253745962716
#define	M_PI_2		1.57079632679489661923132169163975144
#define	M_3PI_8		1.17809724509617246442349126872981358
#define	M_PI_4		0.78539816339744830961566084581987572
#define	M_PI_8		0.39269908169872415480783042290993786
#define	M_1_PI		0.31830988618379067153776752674502872
#define	M_2_PI		0.63661977236758134307553505349005744
#define	M_4_PI		1.27323954473516268615107010698011488
#define	M_E		2.71828182845904523536028747135266250
#define	M_LOG2E		1.44269504088896340735992468100189213
#define	M_LOG10E	0.43429448190325182765112891891660508
#define	M_LN2		0.69314718055994530941723212145817657
#define	M_LN10		2.30258509299404568401799145468436421
#define	M_SQRT2		1.41421356237309504880168872420969808
#define	M_1_SQRT2	0.70710678118654752440084436210484904
#define	M_EULER		0.57721566490153286060651209008240243
X
/* macros for constructing polynomials */
#define	POLYNOM1(x, a)	((a)[1]*(x)+(a)[0])
#define	POLYNOM2(x, a)	(POLYNOM1((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM3(x, a)	(POLYNOM2((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM4(x, a)	(POLYNOM3((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM5(x, a)	(POLYNOM4((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM6(x, a)	(POLYNOM5((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM7(x, a)	(POLYNOM6((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM8(x, a)	(POLYNOM7((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM9(x, a)	(POLYNOM8((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM10(x, a)	(POLYNOM9((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM11(x, a)	(POLYNOM10((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM12(x, a)	(POLYNOM11((x),(a)+1)*(x)+(a)[0])
#define	POLYNOM13(x, a)	(POLYNOM12((x),(a)+1)*(x)+(a)[0])
X
#define	M_LN_MAX_D	(M_LN2 * DBL_MAX_EXP)
#define	M_LN_MIN_D	(M_LN2 * (DBL_MIN_EXP - 1))
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/localmath.h'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/localmath.h' ||
  $echo 'restore of' 'elkslibm/localmath.h' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/localmath.h:' 'MD5 check failed'
7b7500fc97ebb0df6b001259e72236d0  elkslibm/localmath.h
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/localmath.h'`"
    test 1999 -eq "$shar_count" ||
    $echo 'elkslibm/localmath.h:' 'original size' '1999,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/libm.a ==============
if test -f 'elkslibm/libm.a' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/libm.a' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/libm.a' '(binary)'
  sed 's/^X//' << 'SHAR_EOF' | uudecode &&
begin 600 elkslibm/libm.a
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
-6%M96D1$7E]=PR,`"@).
`
end
SHAR_EOF
  (set 20 06 04 09 23 56 04 'elkslibm/libm.a'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/libm.a' ||
  $echo 'restore of' 'elkslibm/libm.a' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/libm.a:' 'MD5 check failed'
f2a96ec2ac02aee65d24bd5f18d02638  elkslibm/libm.a
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/libm.a'`"
    test 14368 -eq "$shar_count" ||
    $echo 'elkslibm/libm.a:' 'original size' '14368,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/math.h ==============
if test -f 'elkslibm/math.h' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/math.h' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/math.h' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/math.h' &&
/* The <math.h> header contains prototypes for mathematical functions. */
X
#ifndef _MATH_H
#define _MATH_H
X
#ifndef _ANSI_H
#include <ansi.h>
#endif
X
#define HUGE_VAL	(__huge_val())		/* may be infinity */
X
/* Function Prototypes. */
_PROTOTYPE( double __huge_val,	(void)					);
_PROTOTYPE( int __IsNan,	(double _x)				);
X
_PROTOTYPE( double acos,  (double _x)					);
_PROTOTYPE( double asin,  (double _x)					);
_PROTOTYPE( double atan,  (double _x)					);
_PROTOTYPE( double atan2, (double _y, double _x)			);
_PROTOTYPE( double ceil,  (double _x)					);
_PROTOTYPE( double cos,   (double _x)					);
_PROTOTYPE( double cosh,  (double _x)					);
_PROTOTYPE( double exp,   (double _x)					);
_PROTOTYPE( double fabs,  (double _x)					);
_PROTOTYPE( double floor, (double _x)					);
_PROTOTYPE( double fmod,  (double _x, double _y)			);
_PROTOTYPE( double frexp, (double _x, int *_exp)			);
_PROTOTYPE( double ldexp, (double _x, int _exp)				);
_PROTOTYPE( double log,   (double _x)					);
_PROTOTYPE( double log10, (double _x)					);
_PROTOTYPE( double modf,  (double _x, double *_iptr)			);
_PROTOTYPE( double pow,   (double _x, double _y)			);
_PROTOTYPE( double sin,   (double _x)					);
_PROTOTYPE( double sinh,  (double _x)					);
_PROTOTYPE( double sqrt,  (double _x)					);
_PROTOTYPE( double tan,   (double _x)					);
_PROTOTYPE( double tanh,  (double _x)					);
X
#endif /* _MATH_H */
SHAR_EOF
  (set 20 06 04 09 23 53 15 'elkslibm/math.h'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/math.h' ||
  $echo 'restore of' 'elkslibm/math.h' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/math.h:' 'MD5 check failed'
b19a329949ff3af63c7c1bd9202f56e7  elkslibm/math.h
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/math.h'`"
    test 1392 -eq "$shar_count" ||
    $echo 'elkslibm/math.h:' 'original size' '1392,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/modf.c ==============
if test -f 'elkslibm/modf.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/modf.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/modf.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/modf.c' &&
/*
X * CDDL HEADER START
X *
X * The contents of this file are subject to the terms of the
X * Common Development and Distribution License, Version 1.0 only
X * (the "License").  You may not use this file except in compliance
X * with the License.
X *
X * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
X * or http://www.opensolaris.org/os/licensing.
X * See the License for the specific language governing permissions
X * and limitations under the License.
X *
X * When distributing Covered Code, include this CDDL HEADER in each
X * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
X * If applicable, add the following below this CDDL HEADER, with the
X * fields enclosed by brackets "[]" replaced with your own identifying
X * information: Portions Copyright [yyyy] [name of copyright owner]
X *
X * CDDL HEADER END
X */
#pragma ident	"@(#)modf.c	1.4	05/06/08 SMI"  /* from ATT S5R3 */
X
/*	The following is extracted from...	*/
X
/*	Copyright (c) 1984 AT&T	*/
/*	  All Rights Reserved  	*/
X
X
/*
X * modf(value, iptr) returns the signed fractional part of value
X * and stores the integer part indirectly through iptr.
X *
X */
X
#define MAXPOWTWO	4.503599627370496000E+15
X			/* doubles >= MAXPOWTWO are already integers */
double
modf(value, iptr)
double value;
register double *iptr;
{
X	register double absvalue;
X
X	if ((absvalue = (value >= 0.0) ? value : -value) >= MAXPOWTWO)
X		*iptr = value; /* it must be an integer */
X	else {
X		*iptr = absvalue + MAXPOWTWO; /* shift fraction off right */
X		*iptr -= MAXPOWTWO; /* shift back without fraction */
X		while (*iptr > absvalue) /* above arithmetic might round */
X			*iptr -= 1.0; /* test again just to be sure */
X		if (value < 0.0)
X			*iptr = -*iptr;
X	}
X	return (value - *iptr); /* signed fractional part */
}
SHAR_EOF
  (set 20 06 04 09 23 43 57 'elkslibm/modf.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/modf.c' ||
  $echo 'restore of' 'elkslibm/modf.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/modf.c:' 'MD5 check failed'
c4b40aa2c9e4dfcf04d6267920ce8630  elkslibm/modf.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/modf.c'`"
    test 1775 -eq "$shar_count" ||
    $echo 'elkslibm/modf.c:' 'original size' '1775,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/sinh.c ==============
if test -f 'elkslibm/sinh.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/sinh.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/sinh.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/sinh.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: sinh.c,v 1.3 91/03/19 16:39:12 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
#include	"localmath.h"
X
static double
sinh_cosh(double x, int cosh_flag)
{
X	/*	Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X
X	static double p[] = {
X		-0.35181283430177117881e+6,
X		-0.11563521196851768270e+5,
X		-0.16375798202630751372e+3,
X		-0.78966127417357099479e+0
X	};
X	static double q[] = {
X		-0.21108770058106271242e+7,
X		 0.36162723109421836460e+5,
X		-0.27773523119650701167e+3,
X		 1.0
X	};
X	int	negative = x < 0;
X	double	y = negative ? -x : x;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (! cosh_flag && y <= 1.0) {
X		/* ??? check for underflow ??? */
X		y = y * y;
X		return x + x * y * POLYNOM3(y, p)/POLYNOM3(y,q);
X	}
X
X	if (y >= M_LN_MAX_D) {
X		/* exp(y) would cause overflow */
#define LNV	0.69316101074218750000e+0
#define VD2M1	0.52820835025874852469e-4
X		double	w = y - LNV;
X		
X		if (w < M_LN_MAX_D+M_LN2-LNV) {
X			x = exp(w);
X			x += VD2M1 * x;
X		}
X		else {
X			errno = ERANGE;
X			x = HUGE_VAL;
X		}
X	}
X	else {
X		double	z = exp(y);
X		
X		x = 0.5 * (z + (cosh_flag ? 1.0 : -1.0)/z);
X	}
X	return negative ? -x : x;
}
X
double
sinh(double x)
{
X	return sinh_cosh(x, 0);
}
X
double
cosh(double x)
{
X	if (x < 0) x = -x;
X	return sinh_cosh(x, 1);
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/sinh.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/sinh.c' ||
  $echo 'restore of' 'elkslibm/sinh.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/sinh.c:' 'MD5 check failed'
48f20a89235c6e7b2a89ab0dbbb0abe3  elkslibm/sinh.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/sinh.c'`"
    test 1562 -eq "$shar_count" ||
    $echo 'elkslibm/sinh.c:' 'original size' '1562,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/tanh.c ==============
if test -f 'elkslibm/tanh.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/tanh.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/tanh.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/tanh.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: tanh.c,v 1.3 91/03/19 16:39:40 ceriel Exp $ */
X
#include	<float.h>
#include	<math.h>
#include	<errno.h>
#include	"localmath.h"
X
double
tanh(double x)
{
X	/*	Algorithm and coefficients from:
X			"Software manual for the elementary functions"
X			by W.J. Cody and W. Waite, Prentice-Hall, 1980
X	*/
X
X	static double p[] = {
X		-0.16134119023996228053e+4,
X		-0.99225929672236083313e+2,
X		-0.96437492777225469787e+0
X	};
X	static double q[] = {
X		 0.48402357071988688686e+4,
X		 0.22337720718962312926e+4,
X		 0.11274474380534949335e+3,
X		 1.0
X	};
X	int 	negative = x < 0;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (negative) x = -x;
X
X	if (x >= 0.5*M_LN_MAX_D) {
X		x = 1.0;
X	}
#define LN3D2	0.54930614433405484570e+0	/* ln(3)/2 */
X	else if (x > LN3D2) {
X		x = 0.5 - 1.0/(exp(x+x)+1.0);
X		x += x;
X	}
X	else {
X		/* ??? avoid underflow ??? */
X		double g = x*x;
X		x += x * g * POLYNOM2(g, p)/POLYNOM3(g, q);
X	}
X	return negative ? -x : x;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/tanh.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/tanh.c' ||
  $echo 'restore of' 'elkslibm/tanh.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/tanh.c:' 'MD5 check failed'
3a46bbed8a7e6f0ca82d5b1a8ae8e1d3  elkslibm/tanh.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/tanh.c'`"
    test 1142 -eq "$shar_count" ||
    $echo 'elkslibm/tanh.c:' 'original size' '1142,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/sqrt.c ==============
if test -f 'elkslibm/sqrt.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/sqrt.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/sqrt.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/sqrt.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: sqrt.c,v 1.3 91/03/19 16:39:21 ceriel Exp $ */
X
#include	<math.h>
#include	<float.h>
#include	<errno.h>
X
#define NITER	5
X
double
sqrt(double x)
{
X	int exponent;
X	double val;
X
X	if (__IsNan(x)) {
X		errno = EDOM;
X		return x;
X	}
X	if (x <= 0) {
X		if (x < 0) errno = EDOM;
X		return 0;
X	}
X
X	if (x > DBL_MAX) return x;	/* for infinity */
X
X	val = frexp(x, &exponent);
X	if (exponent & 1) {
X		exponent--;
X		val *= 2;
X	}
X	val = ldexp(val + 1.0, exponent/2 - 1);
X	/* was: val = (val + 1.0)/2.0; val = ldexp(val, exponent/2); */
X	for (exponent = NITER - 1; exponent >= 0; exponent--) {
X		val = (val + x / val) / 2.0;
X	}
X	return val;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/sqrt.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/sqrt.c' ||
  $echo 'restore of' 'elkslibm/sqrt.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/sqrt.c:' 'MD5 check failed'
fdfba3ee2fdaabb58d87e1541841e65e  elkslibm/sqrt.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/sqrt.c'`"
    test 830 -eq "$shar_count" ||
    $echo 'elkslibm/sqrt.c:' 'original size' '830,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/hugeval.c ==============
if test -f 'elkslibm/hugeval.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/hugeval.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/hugeval.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/hugeval.c' &&
/*
X * (c) copyright 1990 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Hans van Eck
X */
/* $Header: hugeval.c,v 1.1 90/10/24 14:29:42 eck Exp $ */
#include	<math.h>
X
double
__huge_val(void)
{
X	return 1.0e+1000;	/* This will generate a warning */
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/hugeval.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/hugeval.c' ||
  $echo 'restore of' 'elkslibm/hugeval.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/hugeval.c:' 'MD5 check failed'
721558fc352d2fecb84c17d73635e1ea  elkslibm/hugeval.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/hugeval.c'`"
    test 351 -eq "$shar_count" ||
    $echo 'elkslibm/hugeval.c:' 'original size' '351,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/atan2.c ==============
if test -f 'elkslibm/atan2.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/atan2.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/atan2.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/atan2.c' &&
/*
X * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
X * See the copyright notice in the ACK home directory, in the file "Copyright".
X *
X * Author: Ceriel J.H. Jacobs
X */
/* $Header: atan2.c,v 1.2 89/12/18 15:42:35 eck Exp $ */
X
#include	<math.h>
#include	<errno.h>
#include	"localmath.h"
X
double
atan2(double y, double x)
{
X	double absx, absy, val;
X
X	if (x == 0 && y == 0) {
X		errno = EDOM;
X		return 0;
X	}
X	absy = y < 0 ? -y : y;
X	absx = x < 0 ? -x : x;
X	if (absy - absx == absy) {
X		/* x negligible compared to y */
X		return y < 0 ? -M_PI_2 : M_PI_2;
X	}
X	if (absx - absy == absx) {
X		/* y negligible compared to x */
X		val = 0.0;
X	}
X	else	val = atan(y/x);
X	if (x > 0) {
X		/* first or fourth quadrant; already correct */
X		return val;
X	}
X	if (y < 0) {
X		/* third quadrant */
X		return val - M_PI;
X	}
X	return val + M_PI;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/atan2.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/atan2.c' ||
  $echo 'restore of' 'elkslibm/atan2.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/atan2.c:' 'MD5 check failed'
40065f9364cdd4b6fdb2a16c1ae1fa49  elkslibm/atan2.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/atan2.c'`"
    test 848 -eq "$shar_count" ||
    $echo 'elkslibm/atan2.c:' 'original size' '848,' 'current size' "$shar_count!"
  fi
fi
# ============= elkslibm/isnan.c ==============
if test -f 'elkslibm/isnan.c' && test "$first_param" != -c; then
  $echo 'x -' SKIPPING 'elkslibm/isnan.c' '(file already exists)'
else
  $echo 'x -' extracting 'elkslibm/isnan.c' '(text)'
  sed 's/^X//' << 'SHAR_EOF' > 'elkslibm/isnan.c' &&
int __IsNan(double d)
{
#if defined(vax) || defined(pdp)
#else
X	float f = d;
X
X	if ((*((long *) &f) & 0x7f800000) == 0x7f800000 &&
X	    (*((long *) &f) & 0x007fffff) != 0) return 1;
#endif
X	return 0;
}
SHAR_EOF
  (set 20 06 04 09 23 44 14 'elkslibm/isnan.c'; eval "$shar_touch") &&
  chmod 0644 'elkslibm/isnan.c' ||
  $echo 'restore of' 'elkslibm/isnan.c' 'failed'
  if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
  && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
    md5sum -c << SHAR_EOF >/dev/null 2>&1 \
    || $echo 'elkslibm/isnan.c:' 'MD5 check failed'
5da50bb4884be18812cb87684a6b1e7a  elkslibm/isnan.c
SHAR_EOF
  else
    shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'elkslibm/isnan.c'`"
    test 201 -eq "$shar_count" ||
    $echo 'elkslibm/isnan.c:' 'original size' '201,' 'current size' "$shar_count!"
  fi
fi
rm -fr _sh16061
exit 0
