Alternative 80386 math lib v2.0 part03/06

Glenn Geers glenn at qed.physics.su.OZ.AU
Mon Dec 17 08:03:23 AEST 1990


Submitted-by: root at trantor
Archive-name: mathlib2.0/part03

---- Cut Here and feed the following to sh ----
#!/bin/sh
# this is mathlib.03 (part 3 of mathlib2.0)
# do not concatenate these parts, unpack them in order with /bin/sh
# file erff.c continued
#
if test ! -r _shar_seq_.tmp; then
	echo 'Please unpack part 1 first!'
	exit 1
fi
(read Scheck
 if test "$Scheck" != 3; then
	echo Please unpack part "$Scheck" next!
	exit 1
 else
	exit 0
 fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
	echo 'x - still skipping erff.c'
else
echo 'x - continuing file erff.c'
sed 's/^X//' << 'SHAR_EOF' >> 'erff.c' &&
X				skip++;
X			}
X		}
X		if (!skip) {
X			ysq = ONE/(y*y);
X			xnum = P[5]*ysq;
X			xden = ysq;
X			for (i = 0; i <= 3; i++) {
X				xnum = (xnum+P[i])*ysq;
X				xden = (xden+Q[i])*ysq;
X			}
X			result = ysq*(xnum+P[4])/(xden+Q[4]);
X			result = (SQRPI-result)/y;
X			if (jint != 2) {
X				i = (int)(y*SIXTEN); ysq = (double)i/SIXTEN;
X				result *= exp(-ysq*ysq)*exp(-(y-ysq)*(y+ysq));
X			}
X		}
X	}
X	if (jint == 0) {	/* Fix up for negative argument, erf, etc. */
X		result = HALF-result; result += HALF;
X		if (x < ZERO)
X			result = -result;
X	}
X	else if (jint == 1) {
X		if (x < ZERO)
X			result = TWO-result;
X	}
X	else if (x < ZERO) {
X		if (x < XNEG)
X			result = XINF;
X		else {
X			i = (int)(x*SIXTEN); ysq = (double)i/SIXTEN;
X			y = exp(ysq*ysq)*exp((x-ysq)*(x+ysq));
X			result = -result; result += y+y;
X		}
X	}
X	return result;
}
X
/* 
X *  This subprogram computes approximate values for erf(x).
X *    (see comments heading calerf()).
X * 
X *    Author/date: W. J. Cody, January 8, 1985
X */
float
erff(float x)
{
X	return ((float)calerf(x,0));
}
X
/* 
X *  This subprogram computes approximate values for erfc(x).
X *    (see comments heading calerf()).
X * 
X *    Author/date: W. J. Cody, January 8, 1985
X */
float
erfcf(float x)
{
X	return ((float)calerf(x,1));
}
X
/* 
X *  This subprogram computes approximate values for exp(x*x) * erfc(x).
X *    (see comments heading calerf()).
X * 
X *    Author/date: W. J. Cody, March 30, 1987
X */
float
erfcxf(float x)
{
X	return ((float)calerf(x,2));
}
SHAR_EOF
echo 'File erff.c is complete' &&
chmod 0644 erff.c ||
echo 'restore of erff.c failed'
Wc_c="`wc -c < 'erff.c'`"
test 9376 -eq "$Wc_c" ||
	echo 'erff.c: original size 9376, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= nextafterf.c ==============
if test -f 'nextafterf.c' -a X"$1" != X"-c"; then
	echo 'x - skipping nextafterf.c (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting nextafterf.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'nextafterf.c' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
** A mix of C and assembler - well I've got the functions so I might 
** as well use them!
**
*/
X
#include "fpumath.h"
X
asm(".align 4");
asm(".Lulp:");
asm(".double 5.9604644775390625e-08");
X
asm(".align 4");
asm(".Lulpup:");
asm(".double 1.1920928955078125e-07");
X
float
nextafterf(float x, float y)
{
X	asm("subl $8, %esp");
X
X	if (isnanf(x) || isnanf(y))
X		return(quiet_nanf(1.0));
X
X	if (isinff(x))
X		if (y > x)
X			return(-max_normalf());
X		else
X		if (y < x)
X			return(max_normalf());
X
X	if (x == 0.0) {
X		if (y > 0.0)
X			return(min_subnormalf());
X		else
X			return(-min_subnormalf());
X	}
X
X	if (isnormalf(x)) {
X		if ((x == min_normalf()) && y < x)
X			return(max_subnormalf());
X
X		if ((x == max_normalf()) && y > x)
X			return(infinityf());
X
X		if ((x == -max_normalf()) && y < x)
X			return(-infinityf());
X
X		asm("movl 8(%ebp), %eax");
X		asm("andl $0x7f800000, %eax");
X		asm("movl %eax, -8(%ebp)");
X		asm("flds -8(%ebp)");
X
X		if (fabsf(x) <= 2.0 && y < x) 
X			asm("fldl .Lulp");
X		else
X			asm("fldl .Lulpup");
X
X		asm("fmulp");
X
X		if (y > x) {
X			asm("flds 8(%ebp)");
X			asm("faddp");
X			asm("leave");
X			asm("ret");
X		}
X		if (y < x) {
X			asm("flds 8(%ebp)");
X			asm("fsubp");
X			asm("leave");
X			asm("ret");
X		}
X	}
X	else
X	if (issubnormalf(x)) {
X		if ((x == max_subnormalf()) && y > x)
X			return(min_normalf());
X
X		if ((x == -max_subnormalf()) && y < x)
X			return(-min_normalf());
X
X		if (y > x) 
X			return(x + min_subnormalf());
X
X		if (y < x)
X			return(x - min_subnormalf());
X	}
X	
X	return(x);
}
SHAR_EOF
chmod 0644 nextafterf.c ||
echo 'restore of nextafterf.c failed'
Wc_c="`wc -c < 'nextafterf.c'`"
test 1717 -eq "$Wc_c" ||
	echo 'nextafterf.c: original size 1717, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= acos.s ==============
if test -f 'acos.s' -a X"$1" != X"-c"; then
	echo 'x - skipping acos.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting acos.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'acos.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
Lhalfpi:
X	.double 1.57079632679489661923
X
X	.align 4
X	.globl acos
acos:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X
X	ftst
X	fstsw %ax
X	sahf
X	jz .Lzero
X
X	fst %st(1)
X	fmull 8(%ebp)
X	fld1
X	fsubp
X	fsqrt
X	fdivp
X	fld1
X	fpatan
X	jnc .Ldone
X
X	fldpi
X	faddp
X	leave
X	ret
X
Lzero:
X	fldl .Lhalfpi
X
Ldone:
X	leave
X	ret
SHAR_EOF
chmod 0644 acos.s ||
echo 'restore of acos.s failed'
Wc_c="`wc -c < 'acos.s'`"
test 544 -eq "$Wc_c" ||
	echo 'acos.s: original size 544, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= copysign.s ==============
if test -f 'copysign.s' -a X"$1" != X"-c"; then
	echo 'x - skipping copysign.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting copysign.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'copysign.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
globl copysign
copysign:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 20(%ebp), %eax
X	andl $0x80000000, %eax
X	cmpl $0x80000000, %eax
X	je .Lneg
X	andl $0x7fffffff, 12(%ebp)
X	fldl 8(%ebp)		/* Store argument for return */
X	leave
X	ret
Lneg:
X	orl $0x80000000, 12(%ebp)
X	fldl 8(%ebp)		/* Store argument for return */
X	leave
X	ret
SHAR_EOF
chmod 0644 copysign.s ||
echo 'restore of copysign.s failed'
Wc_c="`wc -c < 'copysign.s'`"
test 555 -eq "$Wc_c" ||
	echo 'copysign.s: original size 555, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= drem.s ==============
if test -f 'drem.s' -a X"$1" != X"-c"; then
	echo 'x - skipping drem.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting drem.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'drem.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl drem
drem:
X	pushl %ebp
X	movl %esp,%ebp
X	
X	fldl 16(%ebp)
X	fldl 8(%ebp)
Lnotred:
X	fprem1
X
X	fstsw %ax
X	sahf
X	jp .Lnotred
X
X	leave
X	ret
SHAR_EOF
chmod 0644 drem.s ||
echo 'restore of drem.s failed'
Wc_c="`wc -c < 'drem.s'`"
test 381 -eq "$Wc_c" ||
	echo 'drem.s: original size 381, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= fabs.s ==============
if test -f 'fabs.s' -a X"$1" != X"-c"; then
	echo 'x - skipping fabs.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting fabs.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'fabs.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl fabs
fabs:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fabs
X
X	leave
X	ret
SHAR_EOF
chmod 0644 fabs.s ||
echo 'restore of fabs.s failed'
Wc_c="`wc -c < 'fabs.s'`"
test 322 -eq "$Wc_c" ||
	echo 'fabs.s: original size 322, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= hypot.s ==============
if test -f 'hypot.s' -a X"$1" != X"-c"; then
	echo 'x - skipping hypot.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting hypot.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'hypot.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
globl hypot
hypot:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fmull 8(%ebp)
X	fldl 16(%ebp)
X	fmull 16(%ebp)
X	faddp
X	fsqrt
X
X	leave
X	ret
SHAR_EOF
chmod 0644 hypot.s ||
echo 'restore of hypot.s failed'
Wc_c="`wc -c < 'hypot.s'`"
test 377 -eq "$Wc_c" ||
	echo 'hypot.s: original size 377, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= logb.s ==============
if test -f 'logb.s' -a X"$1" != X"-c"; then
	echo 'x - skipping logb.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting logb.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'logb.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl logb
logb:
X	pushl %ebp
X	movl %esp,%ebp
X	
X	fldl 8(%ebp)
X	fxtract
X	fldl %st(1)
X
X	leave
X	ret
SHAR_EOF
chmod 0644 logb.s ||
echo 'restore of logb.s failed'
Wc_c="`wc -c < 'logb.s'`"
test 339 -eq "$Wc_c" ||
	echo 'logb.s: original size 339, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= scalb.s ==============
if test -f 'scalb.s' -a X"$1" != X"-c"; then
	echo 'x - skipping scalb.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting scalb.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'scalb.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl scalb
scalb:
X	pushl %ebp
X	movl %esp,%ebp
X	
X	fildl 16(%ebp)
X	fldl 8(%ebp)
X	fscale
X
X	leave
X	ret
SHAR_EOF
chmod 0644 scalb.s ||
echo 'restore of scalb.s failed'
Wc_c="`wc -c < 'scalb.s'`"
test 343 -eq "$Wc_c" ||
	echo 'scalb.s: original size 343, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= tan.s ==============
if test -f 'tan.s' -a X"$1" != X"-c"; then
	echo 'x - skipping tan.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting tan.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'tan.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl tan
tan:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fptan
X	fstp %st(0)
X
X	leave
X	ret
SHAR_EOF
chmod 0644 tan.s ||
echo 'restore of tan.s failed'
Wc_c="`wc -c < 'tan.s'`"
test 334 -eq "$Wc_c" ||
	echo 'tan.s: original size 334, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= asin.s ==============
if test -f 'asin.s' -a X"$1" != X"-c"; then
	echo 'x - skipping asin.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting asin.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'asin.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl asin
asin:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fst %st(1)
X	fst %st(2)
X	fmulp
X	fld1
X	fsubp
X	fsqrt
X	fld1
X	fdivp
X	fmulp
X	fld1
X	fpatan
X
X	leave
X	ret
SHAR_EOF
chmod 0644 asin.s ||
echo 'restore of asin.s failed'
Wc_c="`wc -c < 'asin.s'`"
test 401 -eq "$Wc_c" ||
	echo 'asin.s: original size 401, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= ceil.s ==============
if test -f 'ceil.s' -a X"$1" != X"-c"; then
	echo 'x - skipping ceil.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting ceil.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'ceil.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Could use ceil(x) = -floor(-x) but this is quicker.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl ceil
ceil:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X	
X	fldl 8(%ebp)    	/* load data */
X
X	fstcw -12(%ebp)		/* store control word */
X	fstcw -16(%ebp)		/* store it again */
X	orw $0x0800, -16(%ebp)	/* round toward +inf */
X	fldcw -16(%ebp)		/* store new control word */
X	frndint			/* rounding gives ceil(x) */
X	fldcw -12(%ebp)		/* restore original control word */
X
X	leave
X	ret
SHAR_EOF
chmod 0644 ceil.s ||
echo 'restore of ceil.s failed'
Wc_c="`wc -c < 'ceil.s'`"
test 682 -eq "$Wc_c" ||
	echo 'ceil.s: original size 682, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= exp.s ==============
if test -f 'exp.s' -a X"$1" != X"-c"; then
	echo 'x - skipping exp.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting exp.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'exp.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl exp
exp:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X
X	leave
X	ret
SHAR_EOF
chmod 0644 exp.s ||
echo 'restore of exp.s failed'
Wc_c="`wc -c < 'exp.s'`"
test 400 -eq "$Wc_c" ||
	echo 'exp.s: original size 400, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= expm1.s ==============
if test -f 'expm1.s' -a X"$1" != X"-c"; then
	echo 'x - skipping expm1.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting expm1.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'expm1.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl expm1
expm1:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	fldl 8(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X
X	fstpl -8(%ebp)
X
X	fldl 8(%ebp)
X	fchs
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X
X	fld1
X	fsubp
X	fmull -8(%ebp)
X
X	leave
X	ret
SHAR_EOF
chmod 0644 expm1.s ||
echo 'restore of expm1.s failed'
Wc_c="`wc -c < 'expm1.s'`"
test 573 -eq "$Wc_c" ||
	echo 'expm1.s: original size 573, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= finite.s ==============
if test -f 'finite.s' -a X"$1" != X"-c"; then
	echo 'x - skipping finite.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting finite.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'finite.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl finite
finite:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x7ff00000, %eax
X	cmpl $0x7ff00000, %eax
X	je	.Lnotfinite
X
X	movl $1, %eax
X	leave
X	ret
X
Lnotfinite:
X	movl $0, %eax
X	leave
X	ret
SHAR_EOF
chmod 0644 finite.s ||
echo 'restore of finite.s failed'
Wc_c="`wc -c < 'finite.s'`"
test 447 -eq "$Wc_c" ||
	echo 'finite.s: original size 447, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= log.s ==============
if test -f 'log.s' -a X"$1" != X"-c"; then
	echo 'x - skipping log.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting log.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'log.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl log
log:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldln2
X	fldl 8(%ebp)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 log.s ||
echo 'restore of log.s failed'
Wc_c="`wc -c < 'log.s'`"
test 329 -eq "$Wc_c" ||
	echo 'log.s: original size 329, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= log1p.s ==============
if test -f 'log1p.s' -a X"$1" != X"-c"; then
	echo 'x - skipping log1p.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting log1p.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'log1p.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl log1p
log1p:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldln2
X	fldl 8(%ebp)
X	fld1
X	faddp
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 log1p.s ||
echo 'restore of log1p.s failed'
Wc_c="`wc -c < 'log1p.s'`"
test 346 -eq "$Wc_c" ||
	echo 'log1p.s: original size 346, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= pow.s ==============
if test -f 'pow.s' -a X"$1" != X"-c"; then
	echo 'x - skipping pow.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting pow.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'pow.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** This file started life as a C implemenation of pow, it then evolved
** into an embeded asm version (with some C) and finally, all assembler.
** It's actually hacked assembler produced by gcc.
**
** Copyright 1990 G. Geers
**
*/
X
text
LC0:
X	.ascii "pow: DOMAIN error\12\0"
X	.align 4
LC1:
X	.double 0d0.00000000000000000000e+00
X	.align 4
LC2:
X	.double 0d1.00000000000000000000e+00
X	.align 4
globl pow
pow:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $28,%esp
X	pushl %edi
X	pushl %esi
X	pushl %ebx
X	movl 16(%ebp),%esi
X	movl 20(%ebp),%edi
X	movl $0,-4(%ebp)
X	movl $1,%ebx
X	fldl 8(%ebp)
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	jae .L2
X	movl %ebx,-4(%ebp)
X	pushl %edi
X	pushl %esi
/**/
X	fldl 16(%ebp)
X
X	fstcw -8(%ebp)
X	fstcw -12(%ebp)
X	orw $0x0400, -12(%ebp)
X	fldcw -12(%ebp)
X
X	frndint
X	fldcw -8(%ebp)
/**/
X	fstpl -16(%ebp)
X	pushl %edi
X	pushl %esi
X	fldl (%esp) 
X	addl $8,%esp
X	fsubl -16(%ebp)
X	fstpl -16(%ebp)
X	addl $8,%esp
X	fldl -16(%ebp)
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	je .L3
X	movl $33,errno
X	pushl $.LC0
X	pushl $_iob+32
X	call fprintf
X	fldl .LC1
X	jmp .L1
X	.align 4
L3:
X	pushl %edi
X	pushl %esi
/**/
X	fldl	16(%ebp)
X	fistpl	-8(%ebp)
X	movl	-8(%ebp),%eax
/**/
X	testl %eax,%eax
X	jge .L5
X	incl %eax
L5:
X	andl $-2,%eax
X	movl -8(%ebp),%ecx
X	subl %eax,%ecx
X	movl %ecx,%eax
X	testl %eax,%eax
X	je .L2
X	xorl %ebx,%ebx
L2:
X	fldl 8(%ebp)
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	jne .L6
X	pushl %edi
X	pushl %esi
X	fldl (%esp) 
X	addl $8,%esp
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	je .L6
X	fldl .LC1
X	jmp .L1
X	.align 4
L6:
X	pushl %edi
X	pushl %esi
X	fldl (%esp) 
X	addl $8,%esp
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	jne .L8
X	fldl .LC2
X	jmp .L1
X	.align 4
L8:
/APP
X	fldl 16(%ebp)
X	fldl 8(%ebp)
/NO_APP
X	cmpl $0,-4(%ebp)
X	je .L10
/APP
X	fchs
/NO_APP
L10:
/APP
X	fyl2x
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
/NO_APP
X	testl %ebx,%ebx
X	jne .L1
/APP
X	fchs
/NO_APP
L1:
X	leal -28(%ebp),%esp
X	popl %ebx
X	popl %esi
X	popl %edi
X	leave
X	ret
SHAR_EOF
chmod 0644 pow.s ||
echo 'restore of pow.s failed'
Wc_c="`wc -c < 'pow.s'`"
test 2128 -eq "$Wc_c" ||
	echo 'pow.s: original size 2128, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= sin.s ==============
if test -f 'sin.s' -a X"$1" != X"-c"; then
	echo 'x - skipping sin.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting sin.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'sin.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl sin
sin:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fsin
X
X	leave
X	ret
SHAR_EOF
chmod 0644 sin.s ||
echo 'restore of sin.s failed'
Wc_c="`wc -c < 'sin.s'`"
test 320 -eq "$Wc_c" ||
	echo 'sin.s: original size 320, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= atan.s ==============
if test -f 'atan.s' -a X"$1" != X"-c"; then
	echo 'x - skipping atan.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting atan.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'atan.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl atan
atan:
X	pushl %ebp
X	movl %esp,%ebp
X	
X	fldl 8(%ebp)
X	fld1
X	fpatan
X
X	leave
X	ret
SHAR_EOF
chmod 0644 atan.s ||
echo 'restore of atan.s failed'
Wc_c="`wc -c < 'atan.s'`"
test 331 -eq "$Wc_c" ||
	echo 'atan.s: original size 331, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= cos.s ==============
if test -f 'cos.s' -a X"$1" != X"-c"; then
	echo 'x - skipping cos.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting cos.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'cos.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl cos
cos:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fcos
X
X	leave
X	ret
SHAR_EOF
chmod 0644 cos.s ||
echo 'restore of cos.s failed'
Wc_c="`wc -c < 'cos.s'`"
test 320 -eq "$Wc_c" ||
	echo 'cos.s: original size 320, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= exp10.s ==============
if test -f 'exp10.s' -a X"$1" != X"-c"; then
	echo 'x - skipping exp10.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting exp10.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'exp10.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl exp10
exp10:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fldl2t
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X
X	leave
X	ret
SHAR_EOF
chmod 0644 exp10.s ||
echo 'restore of exp10.s failed'
Wc_c="`wc -c < 'exp10.s'`"
test 404 -eq "$Wc_c" ||
	echo 'exp10.s: original size 404, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= floor.s ==============
if test -f 'floor.s' -a X"$1" != X"-c"; then
	echo 'x - skipping floor.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting floor.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'floor.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl floor
floor:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X	
X	fldl 8(%ebp)    	/* load data */
X
X	fstcw -12(%ebp)		/* store control word */
X	fstcw -16(%ebp)		/* store it again */
X	orw $0x0400, -16(%ebp)	/* round toward -inf */
X	fldcw -16(%ebp)		/* store new control word */
X
X	frndint			/* rounding gives floor(x) */
X	fldcw -12(%ebp)		/* restore original control word */
X
X	leave
X	ret
SHAR_EOF
chmod 0644 floor.s ||
echo 'restore of floor.s failed'
Wc_c="`wc -c < 'floor.s'`"
test 628 -eq "$Wc_c" ||
	echo 'floor.s: original size 628, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= log10.s ==============
if test -f 'log10.s' -a X"$1" != X"-c"; then
	echo 'x - skipping log10.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting log10.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'log10.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl log10
log10:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldlg2
X	fldl 8(%ebp)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 log10.s ||
echo 'restore of log10.s failed'
Wc_c="`wc -c < 'log10.s'`"
test 333 -eq "$Wc_c" ||
	echo 'log10.s: original size 333, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= rint.s ==============
if test -f 'rint.s' -a X"$1" != X"-c"; then
	echo 'x - skipping rint.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting rint.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'rint.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl rint
rint:
X	pushl %ebp
X	movl %esp,%ebp
X	
X	fldl 8(%ebp)
X	frndint
X
X	leave
X	ret
SHAR_EOF
chmod 0644 rint.s ||
echo 'restore of rint.s failed'
Wc_c="`wc -c < 'rint.s'`"
test 326 -eq "$Wc_c" ||
	echo 'rint.s: original size 326, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= sqrt.s ==============
if test -f 'sqrt.s' -a X"$1" != X"-c"; then
	echo 'x - skipping sqrt.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting sqrt.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'sqrt.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
** sqrt in the prevailing precision
*/
X
X	.align 4
X	.globl sqrt
sqrt:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fsqrt
X
X	leave
X	ret
SHAR_EOF
chmod 0644 sqrt.s ||
echo 'restore of sqrt.s failed'
Wc_c="`wc -c < 'sqrt.s'`"
test 359 -eq "$Wc_c" ||
	echo 'sqrt.s: original size 359, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= exp2.s ==============
if test -f 'exp2.s' -a X"$1" != X"-c"; then
	echo 'x - skipping exp2.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting exp2.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'exp2.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl exp2
exp2:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X
X	leave
X	ret
SHAR_EOF
chmod 0644 exp2.s ||
echo 'restore of exp2.s failed'
Wc_c="`wc -c < 'exp2.s'`"
test 387 -eq "$Wc_c" ||
	echo 'exp2.s: original size 387, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= log2.s ==============
if test -f 'log2.s' -a X"$1" != X"-c"; then
	echo 'x - skipping log2.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting log2.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'log2.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl log2
log2:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fld1
X	fldl 8(%ebp)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 log2.s ||
echo 'restore of log2.s failed'
Wc_c="`wc -c < 'log2.s'`"
test 329 -eq "$Wc_c" ||
	echo 'log2.s: original size 329, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= sinh.s ==============
if test -f 'sinh.s' -a X"$1" != X"-c"; then
	echo 'x - skipping sinh.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting sinh.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'sinh.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
** This file started life as a C program but has been massively hacked.
**
** The coefficients are from Hart, et.al. via Berkeley
**
*/
X
data
X	.align 4
p0:
X	.double 0d-6.30767364049771680000e+05
X	.align 4
p1:
X	.double 0d-8.99127202203950870000e+04
X	.align 4
p2:
X	.double 0d-2.89421135598956380000e+03
X	.align 4
p3:
X	.double 0d-2.63056321339749710000e+01
X	.align 4
q0:
X	.double 0d-6.30767364049771680000e+05
X	.align 4
q1:
X	.double 0d1.52151737879001900000e+04
X	.align 4
q2:
X	.double 0d-1.73678953558233700000e+02
X
text
X	.align 4
LC0:
X	.double 0d2.10000000000000000000e+01
X	.align 4
LC1:
X	.double 0d5.00000000000000000000e-01
X
X	.align 4
globl sinh
X
sinh:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $72,%esp
X	fldl 8(%ebp)
X	fstpl -8(%ebp)
X	movl $1,%edx
X	fldl -8(%ebp)
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	jae .L2
X	fldl -8(%ebp)
X	fchs
X	fstpl -8(%ebp)
X	movl $-1,%edx
L2:
X	fldl .LC0
X	fldl -8(%ebp)
X	fcompp
X	fnstsw %ax
X	sahf
X	jbe .L3
X	fldl -8(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X	fldl .LC1
X	fmulp
X	testl %edx,%edx
X	jg .L7
X	fchs
L7:
X	leave
X	ret
L3:
X	fldl .LC1
X	fldl -8(%ebp)
X	fcompp
X	fnstsw %ax
X	sahf
X	jbe .L6
X	fldl 8(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X	fst %st(1)
X	fld1
X	fdivp
X	fsubrp
X	fldl .LC1
X	fmulp
X	leave
X	ret
L6:
X	fldl -8(%ebp)
X	fmull -8(%ebp)
X	fstl -16(%ebp)
X	fmull p3
X	faddl p2
X	fmull -16(%ebp)
X	faddl p1
X	fmull -16(%ebp)
X	faddl p0
X	fmull -8(%ebp)
X	fstpl -72(%ebp)
X	fldl -16(%ebp)
X	faddl q2
X	fmull -16(%ebp)
X	faddl q1
X	fmull -16(%ebp)
X	faddl q0
X	fstpl -56(%ebp)
X	fldl -72(%ebp)
X	fdivl -56(%ebp)
X	pushl %edx
X	fildl (%esp)
X	addl $4,%esp
X	fstpl -64(%ebp)
X	fmull -64(%ebp)
X	leal -76(%ebp),%esp
X	leave
X	ret
SHAR_EOF
chmod 0644 sinh.s ||
echo 'restore of sinh.s failed'
Wc_c="`wc -c < 'sinh.s'`"
test 1943 -eq "$Wc_c" ||
	echo 'sinh.s: original size 1943, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= cosh.s ==============
if test -f 'cosh.s' -a X"$1" != X"-c"; then
	echo 'x - skipping cosh.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting cosh.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'cosh.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
LC2:
X	.double 0.500
X
X	.align 4
X	.globl cosh
cosh:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X	ftst
X	fstsw %ax
X	sahf
X	ja .Lpos
X	fchs
X
Lpos:
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X	fst %st(1)
X
X	fld1
X	fdivp
X	faddp
X
X	fldl .LC2
X	fmulp
X
X	leave
X	ret
SHAR_EOF
chmod 0644 cosh.s ||
echo 'restore of cosh.s failed'
Wc_c="`wc -c < 'cosh.s'`"
test 533 -eq "$Wc_c" ||
	echo 'cosh.s: original size 533, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= tanh.s ==============
if test -f 'tanh.s' -a X"$1" != X"-c"; then
	echo 'x - skipping tanh.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting tanh.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'tanh.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl tanh
tanh:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	fldl 8(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X	fstl %st(1)
X	fstl -16(%ebp)
X
X	fld1
X	fdivp
X
X	fsubr
X	faddl -16(%ebp)
X	fdivrp
X
X	leave
X	ret
SHAR_EOF
chmod 0644 tanh.s ||
echo 'restore of tanh.s failed'
Wc_c="`wc -c < 'tanh.s'`"
test 493 -eq "$Wc_c" ||
	echo 'tanh.s: original size 493, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= asinh.s ==============
if test -f 'asinh.s' -a X"$1" != X"-c"; then
	echo 'x - skipping asinh.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting asinh.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'asinh.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl asinh
asinh:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X
X	fmull 8(%ebp)
X	fld1
X	faddp
X	fsqrt
X	faddl 8(%ebp)
X	fldln2
X	fxch %st(1)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 asinh.s ||
echo 'restore of asinh.s failed'
Wc_c="`wc -c < 'asinh.s'`"
test 397 -eq "$Wc_c" ||
	echo 'asinh.s: original size 397, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= acosh.s ==============
if test -f 'acosh.s' -a X"$1" != X"-c"; then
	echo 'x - skipping acosh.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting acosh.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'acosh.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl acosh
acosh:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 8(%ebp)
X
X	fmull 8(%ebp)
X	fld1
X	fsubrp
X	fsqrt
X	faddl 8(%ebp)
X	fldln2
X	fxch %st(1)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 acosh.s ||
echo 'restore of acosh.s failed'
Wc_c="`wc -c < 'acosh.s'`"
test 398 -eq "$Wc_c" ||
	echo 'acosh.s: original size 398, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= atanh.s ==============
if test -f 'atanh.s' -a X"$1" != X"-c"; then
	echo 'x - skipping atanh.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting atanh.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'atanh.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
Lhalf:
X	.double 0.500
X
X	.align 4
X	.globl atanh
atanh:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fld1
X	faddl 8(%ebp)
X	fld1
X	fsubl 8(%ebp)
X	fdivrp
X
X	fldln2
X	fxch %st(1)
X	fyl2x
X
X	fldl .Lhalf
X	fmulp
X
X	leave
X	ret
SHAR_EOF
chmod 0644 atanh.s ||
echo 'restore of atanh.s failed'
Wc_c="`wc -c < 'atanh.s'`"
test 438 -eq "$Wc_c" ||
	echo 'atanh.s: original size 438, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= atan2.s ==============
if test -f 'atan2.s' -a X"$1" != X"-c"; then
	echo 'x - skipping atan2.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting atan2.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'atan2.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
Lpi:
X	.double 3.14159265358979323846
X
X	.align 4
Lmpi:
X	.double -3.14159265358979323846
X
X	.align 4
Lhalfpi: 
X	.double 1.57079632679489661923
X
X	.align 4
Lmhalfpi:
X	.double -1.57079632679489661923
X
X	.align 4
X	.globl atan2
atan2:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldl 16(%ebp)
X	ftst
X	fnstsw %ax
X	sahf 
X	fldl 8(%ebp)
X	jz .Lgotzero
X	jc .Lgotneg
X
X	fdivp
X	fld1
X	fpatan
X
X	leave
X	ret
X
Lgotneg:
X	ftst
X	fnstsw %ax
X	sahf 
X	jc .Lneg1
X
X	fdivp
X	fld1
X	fpatan
X	fldl .Lmpi
X	fsubrp
X
X	leave
X	ret
X
Lneg1:
X	fdivp
X	fld1
X	fpatan
X	fldl .Lpi
X	fsubrp
X
X	leave
X	ret
X
Lgotzero:
X	ftst
X	fnstsw %ax
X	sahf
X	jz .Lzero
X	jc .Lneg
X
X	fldl .Lhalfpi
X
X	leave
X	ret
X
Lzero:
X	fldz
X
X	leave
X	ret
X
Lneg:
X	fldl .Lmhalfpi
X
X	leave
X	ret
SHAR_EOF
chmod 0644 atan2.s ||
echo 'restore of atan2.s failed'
Wc_c="`wc -c < 'atan2.s'`"
test 931 -eq "$Wc_c" ||
	echo 'atan2.s: original size 931, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= fmod.s ==============
if test -f 'fmod.s' -a X"$1" != X"-c"; then
	echo 'x - skipping fmod.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting fmod.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'fmod.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl fmod
fmod:
X	pushl %ebp
X	movl %esp,%ebp
X	
X	fldl 16(%ebp)
X	fldl 8(%ebp)
Lnotred:
X	fprem
X
X	fstsw %ax
X	sahf
X	jp .Lnotred
X
X	leave
X	ret
SHAR_EOF
chmod 0644 fmod.s ||
echo 'restore of fmod.s failed'
Wc_c="`wc -c < 'fmod.s'`"
test 380 -eq "$Wc_c" ||
	echo 'fmod.s: original size 380, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= ieee_ext.s ==============
if test -f 'ieee_ext.s' -a X"$1" != X"-c"; then
	echo 'x - skipping ieee_ext.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting ieee_ext.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'ieee_ext.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl isnan
isnan:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x7ff00000, %eax
X	cmpl $0x7ff00000, %eax
X	jne .Lnotnan
X	movl 12(%ebp), %eax
X	andl $0xfffff, %eax
X	orl 8(%ebp), %eax
X	je .Lnotnan
X
X	movl $1, %eax
X	leave 
X	ret
X
Lnotnan:
X	movl $0, %eax
X
Ldone:
X	leave
X	ret
X
X	.align 4
X	.globl isinf
isinf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x7ff00000, %eax
X	cmpl $0x7ff00000, %eax
X	je .Lcouldbeinf
X
Lnotinf:
X	movl $0, %eax
X	leave
X	ret
X
Lcouldbeinf:
X	movl 12(%ebp), %eax
X	andl $0xfffff, %eax
X	orl 8(%ebp), %eax
X	jne .Lnotinf
X
X	movl $1, %eax
X	leave
X	ret
X
X	.align 4
X	.globl iszero
iszero:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	cmpl $0x0, %eax
X	je .Lcouldbezero
Lnotzero:
X	movl $0, %eax
X	leave
X	ret
X
Lcouldbezero:
X	andl $0xfffff, %eax
X	orl 8(%ebp), %eax
X	jne .Lnotzero
X
X	movl $1, %eax
X	leave
X	ret
X
X	.align 4
X	.globl signbit
signbit:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x80000000, %eax
X	cmpl $0x80000000, %eax
X	jne .Lpos
X	movl $1, %eax
X	leave
X	ret
X
Lpos:
X	movl $0, %eax
X	leave
X	ret
X
X	.align 4
X	.globl issubnormal
issubnormal:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x7ff00000, %eax
X	cmpl $0x0, %eax
X	je .Lcouldbesub
X
Lnotsubnorm:
X	movl $0, %eax
X	leave
X	ret
X
Lcouldbesub:
X	movl 12(%ebp), %eax
X	andl $0xfffff, %eax
X	orl 8(%ebp), %eax
X	je .Lnotsubnorm
X
X	movl $1, %eax
X	leave
X	ret
X
X	.align 4
X	.globl isnormal
isnormal:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x7ff00000, %eax /* mask sign bit */
X	xorl $0x7ff00000, %eax 
X	cmpl $0x0, %eax
X	je .Lnotnorm
X	cmpl $0x7ff00000, %eax
X	je .Lnotnorm
X
Lnorm:
X	movl $1, %eax
X	leave
X	ret
X
Lcouldbenorm:
X	movl 12(%ebp), %eax
X	andl $0xfffff, %eax
X	orl 8(%ebp), %eax
X	je .Lnorm
X
Lnotnorm:
X	movl $0, %eax
X	leave
X	ret
SHAR_EOF
chmod 0644 ieee_ext.s ||
echo 'restore of ieee_ext.s failed'
Wc_c="`wc -c < 'ieee_ext.s'`"
test 1994 -eq "$Wc_c" ||
	echo 'ieee_ext.s: original size 1994, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= infinity.s ==============
if test -f 'infinity.s' -a X"$1" != X"-c"; then
	echo 'x - skipping infinity.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting infinity.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'infinity.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl infinity
infinity:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x7ff00000, -12(%ebp)
X	movl $0x0, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
SHAR_EOF
chmod 0644 infinity.s ||
echo 'restore of infinity.s failed'
Wc_c="`wc -c < 'infinity.s'`"
test 394 -eq "$Wc_c" ||
	echo 'infinity.s: original size 394, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= sqrtp.s ==============
if test -f 'sqrtp.s' -a X"$1" != X"-c"; then
	echo 'x - skipping sqrtp.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting sqrtp.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'sqrtp.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
** sqrt in 64 bit precision always
*/
X
X	.align 4
X	.globl sqrtp
sqrtp:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	fnstcw -12(%ebp) 	   /* store current control word */
X	fnstcw -16(%ebp)		   /* store again */
X	andw  $0xf2ff, -12(%ebp)	   /* enable 64 bit precision */
X	fldcw -12(%ebp)
X
X	fldl 8(%ebp)
X	fsqrt
X
X	fldcw -16(%ebp)		   /* restore original control word */
X
X	leave
X	ret
SHAR_EOF
chmod 0644 sqrtp.s ||
echo 'restore of sqrtp.s failed'
Wc_c="`wc -c < 'sqrtp.s'`"
test 605 -eq "$Wc_c" ||
	echo 'sqrtp.s: original size 605, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= ieee_values.s ==============
if test -f 'ieee_values.s' -a X"$1" != X"-c"; then
	echo 'x - skipping ieee_values.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting ieee_values.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'ieee_values.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl max_normal
X
max_normal:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x7fefffff, -12(%ebp)
X	movl $0xffffffff, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
X
X	.align 4
X	.globl min_normal
X
min_normal:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x00100000, -12(%ebp)
X	movl $0x00000001, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
X
X	.align 4
X	.globl min_subnormal
X
min_subnormal:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x0, -12(%ebp)
X	movl $0x00000001, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
X
X	.align 4
X	.globl max_subnormal
X
max_subnormal:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x000fffff, -12(%ebp)
X	movl $0xffffffff, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
X
X	.align 4
X	.globl quiet_nan
X
quiet_nan:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x7fffffff, -12(%ebp)
X	movl $0xffffffff, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
X
X	.align 4
X	.globl signaling_nan
X
signaling_nan:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $8, %esp
X
X	movl $0x7ff00000, -12(%ebp)
X	movl $0x00000001, -16(%ebp)
X
X	fldl -16(%ebp)
X	
X	leave
X	ret
SHAR_EOF
chmod 0644 ieee_values.s ||
echo 'restore of ieee_values.s failed'
Wc_c="`wc -c < 'ieee_values.s'`"
test 1295 -eq "$Wc_c" ||
	echo 'ieee_values.s: original size 1295, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= acosf.s ==============
if test -f 'acosf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping acosf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting acosf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'acosf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
Lhalfpi:
X	.double 1.57079632679489661923
X
X	.align 4
X	.globl acosf
acosf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	flds 8(%ebp)
X
X	ftst
X	fstsw %ax
X	sahf
X	jz .Lzero
X
X	fst %st(1)
X	fmuls 8(%ebp)
X	fld1
X	fsubp
X	fsqrt
X	fdivp
X	fld1
X	fpatan
X	jnc .Ldone
X
X	fldpi
X	faddp
X	leave
X	ret
X
Lzero:
X	flds .Lhalfpi
X
Ldone:
X	leave
X	ret
SHAR_EOF
chmod 0644 acosf.s ||
echo 'restore of acosf.s failed'
Wc_c="`wc -c < 'acosf.s'`"
test 546 -eq "$Wc_c" ||
	echo 'acosf.s: original size 546, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= copysignf.s ==============
if test -f 'copysignf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping copysignf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting copysignf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'copysignf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
globl copysignf
copysignf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 12(%ebp), %eax
X	andl $0x80000000, %eax
X	cmpl $0x80000000, %eax
X	je .Lneg
X	andl $0x7fffffff, 8(%ebp)
X	flds 8(%ebp)		/* Store argument for return */
X	leave
X	ret
Lneg:
X	orl $0x80000000, 8(%ebp)
X	flds 8(%ebp)		/* Store argument for return */
X	leave
X	ret
SHAR_EOF
chmod 0644 copysignf.s ||
echo 'restore of copysignf.s failed'
Wc_c="`wc -c < 'copysignf.s'`"
test 555 -eq "$Wc_c" ||
	echo 'copysignf.s: original size 555, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= fabsf.s ==============
if test -f 'fabsf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping fabsf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting fabsf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'fabsf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl fabsf
fabsf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	flds 8(%ebp)
X	fabs
X
X	leave
X	ret
SHAR_EOF
chmod 0644 fabsf.s ||
echo 'restore of fabsf.s failed'
Wc_c="`wc -c < 'fabsf.s'`"
test 324 -eq "$Wc_c" ||
	echo 'fabsf.s: original size 324, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= log10f.s ==============
if test -f 'log10f.s' -a X"$1" != X"-c"; then
	echo 'x - skipping log10f.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting log10f.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'log10f.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl log10f
log10f:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldlg2
X	flds 8(%ebp)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 log10f.s ||
echo 'restore of log10f.s failed'
Wc_c="`wc -c < 'log10f.s'`"
test 335 -eq "$Wc_c" ||
	echo 'log10f.s: original size 335, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= sinf.s ==============
if test -f 'sinf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping sinf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting sinf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'sinf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl sinf
sinf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	flds 8(%ebp)
X	fsin
X
X	leave
X	ret
SHAR_EOF
chmod 0644 sinf.s ||
echo 'restore of sinf.s failed'
Wc_c="`wc -c < 'sinf.s'`"
test 322 -eq "$Wc_c" ||
	echo 'sinf.s: original size 322, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= acoshf.s ==============
if test -f 'acoshf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping acoshf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting acoshf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'acoshf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl acoshf
acoshf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	flds 8(%ebp)
X
X	fmuls 8(%ebp)
X	fld1
X	fsubrp
X	fsqrt
X	fadds 8(%ebp)
X	fldln2
X	fxch %st(1)
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 acoshf.s ||
echo 'restore of acoshf.s failed'
Wc_c="`wc -c < 'acoshf.s'`"
test 400 -eq "$Wc_c" ||
	echo 'acoshf.s: original size 400, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= cosf.s ==============
if test -f 'cosf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping cosf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting cosf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'cosf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl cosf
cosf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	flds 8(%ebp)
X	fcos
X
X	leave
X	ret
SHAR_EOF
chmod 0644 cosf.s ||
echo 'restore of cosf.s failed'
Wc_c="`wc -c < 'cosf.s'`"
test 322 -eq "$Wc_c" ||
	echo 'cosf.s: original size 322, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= finitef.s ==============
if test -f 'finitef.s' -a X"$1" != X"-c"; then
	echo 'x - skipping finitef.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting finitef.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'finitef.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl finitef
finitef:
X	pushl %ebp
X	movl %esp,%ebp
X
X	movl 8(%ebp), %eax
X	andl $0x7ff00000, %eax
X	cmpl $0x7ff00000, %eax
X	je	.Lnotfinite
X
X	movl $1, %eax
X	leave
X	ret
X
Lnotfinite:
X	movl $0, %eax
X	leave
X	ret
SHAR_EOF
chmod 0644 finitef.s ||
echo 'restore of finitef.s failed'
Wc_c="`wc -c < 'finitef.s'`"
test 448 -eq "$Wc_c" ||
	echo 'finitef.s: original size 448, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= log1pf.s ==============
if test -f 'log1pf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping log1pf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting log1pf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'log1pf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
*/
X
X	.align 4
X	.globl log1pf
log1pf:
X	pushl %ebp
X	movl %esp,%ebp
X
X	fldln2
X	flds 8(%ebp)
X	fld1
X	faddp
X	fyl2x
X
X	leave
X	ret
SHAR_EOF
chmod 0644 log1pf.s ||
echo 'restore of log1pf.s failed'
Wc_c="`wc -c < 'log1pf.s'`"
test 348 -eq "$Wc_c" ||
	echo 'log1pf.s: original size 348, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= sinhf.s ==============
if test -f 'sinhf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping sinhf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting sinhf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'sinhf.s' &&
/*
** This file is part of the alternative 80386 math library and is
** covered by the GNU General Public license with my modification
** as noted in the README file that accompanied this file.
**
** Copyright 1990 G. Geers
**
** This file started life as a C program but has been massively hacked.
**
*/
X
data
X	.align 4
p0:
X	.double 0d-6.30767364049771680000e+05
X	.align 4
p1:
X	.double 0d-8.99127202203950870000e+04
X	.align 4
p2:
X	.double 0d-2.89421135598956380000e+03
X	.align 4
p3:
X	.double 0d-2.63056321339749710000e+01
X	.align 4
q0:
X	.double 0d-6.30767364049771680000e+05
X	.align 4
q1:
X	.double 0d1.52151737879001900000e+04
X	.align 4
q2:
X	.double 0d-1.73678953558233700000e+02
X
text
X	.align 4
LC0:
X	.double 0d2.10000000000000000000e+01
X	.align 4
LC1:
X	.double 0d5.00000000000000000000e-01
X	.align 4
X
globl sinhf
sinhf:
X	pushl %ebp
X	movl %esp,%ebp
X	subl $88,%esp
X	movl 8(%ebp),%ecx
X	movl %ecx,-4(%ebp)
X	movl $1,%edx
X	pushl %ecx
X	flds (%esp) 
X	addl $4,%esp
X	ftst
X	fstp %st(0)
X	fnstsw %ax
X	sahf
X	jae .L2
X	flds -4(%ebp)
X	fchs
X	fstps -4(%ebp)
X	movl $-1,%edx
L2:
X	flds -4(%ebp)
X	fldl .LC0
X	fcompp
X	fnstsw %ax
X	sahf
X	jae .L3
X	flds 8(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X	fldl .LC1
X	fmulp
X	testl %edx,%edx
X	jg .L7
X	fchs
L7:
X	leave
X	ret
L3:
X	flds -4(%ebp)
X	fldl .LC1
X	fcompp
X	fnstsw %ax
X	sahf
X	jae .L6
X	flds -4(%ebp)
X	fldl2e
X	fmulp
X	fstl %st(1)
X	frndint
X	fstl %st(2)
X	fsubrp
X	f2xm1
X	fld1
X	faddp
X	fscale
X	fst %st(1)
X	fld1
X	fdivp
X	fsubrp
X	fldl .LC1
X	fmulp
X	leave
X	ret
L6:
X	flds -4(%ebp)
X	fmuls -4(%ebp)
X	fstps -88(%ebp)
X	flds -88(%ebp)
X	fstpl -12(%ebp)
X	fldl -12(%ebp)
X	fmull p3
X	faddl p2
X	fmull -12(%ebp)
X	faddl p1
X	fmull -12(%ebp)
X	faddl p0
X	flds -4(%ebp)
X	fstpl -20(%ebp)
X	fmull -20(%ebp)
X	fstpl -88(%ebp)
X	fldl -12(%ebp)
X	faddl q2
X	fmull -12(%ebp)
X	faddl q1
X	fmull -12(%ebp)
X	faddl q0
X	fstpl -60(%ebp)
X	fldl -88(%ebp)
X	fdivl -60(%ebp)
X	pushl %edx
X	fildl (%esp)
X	addl $4,%esp
X	fstps -64(%ebp)
X	flds -64(%ebp)
X	fstpl -72(%ebp)
X	fmull -72(%ebp)
X	addl $-4,%esp
X	fstps (%esp)
X	flds (%esp) 
X	addl $4,%esp
X	leave
X	ret
SHAR_EOF
chmod 0644 sinhf.s ||
echo 'restore of sinhf.s failed'
Wc_c="`wc -c < 'sinhf.s'`"
test 2072 -eq "$Wc_c" ||
	echo 'sinhf.s: original size 2072, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= asinf.s ==============
if test -f 'asinf.s' -a X"$1" != X"-c"; then
	echo 'x - skipping asinf.s (File already exists)'
	rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting asinf.s (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'asinf.s' &&
/*
SHAR_EOF
true || echo 'restore of asinf.s failed'
fi
echo 'End of mathlib2.0 part 3'
echo 'File asinf.s is continued in part 4'
echo 4 > _shar_seq_.tmp
exit 0
--
Glenn Geers                       | "So when it's over, we're back to people.
Department of Theoretical Physics |  Just to prove that human touch can have
The University of Sydney          |  no equal."
Sydney NSW 2006 Australia         |  - Basia Trzetrzelewska, 'Prime Time TV'



More information about the Alt.sources mailing list