xref: /csrg-svn/old/libm/liboldnm/sinh.s (revision 20008)
1*20008Sdist#
2*20008Sdist# Copyright (c) 1980 Regents of the University of California.
3*20008Sdist# All rights reserved.  The Berkeley software License Agreement
4*20008Sdist# specifies the terms and conditions for redistribution.
5*20008Sdist#
6*20008Sdist#	@(#)sinh.s	5.1 (Berkeley) 05/08/85
7*20008Sdist#
8*20008Sdist#
919999Sdist# double _sinh(arg)
1019999Sdist# double _cosh(arg)
1119999Sdist# double arg
1219999Sdist# method: compute from exp except for sinh where -.5<arg<.5
1319999Sdist# then a polynimial approx. is uded
1419999Sdist# JF Jarvis, August 12,1978
1519999Sdist.globl _sinh
1619999Sdist.globl _cosh
1719999Sdist.globl _exp
1819999Sdist.text
1919999Sdist.align 1
2019999Sdist_sinh:
2119999Sdist	.word	0x0c0
2219999Sdist	bispsw	$0xe0
2319999Sdist	movd	4(ap),r6
2419999Sdist	cmpd	r6,$0d0.5e+0
2519999Sdist	jgeq	expfrm
2619999Sdist	cmpd	r6,$0d-0.5e+0
2719999Sdist	jleq	expfrm
2819999Sdist	muld3	r6,r6,r0	# Hart&Cheney SINH 1985
2919999Sdist	polyd	r0,$5,pcoef
3019999Sdist	muld2	r6,r0
3119999Sdist	ret
3219999Sdistexpfrm:
3319999Sdist	movd	r6,-(sp)	# sinh(x)=(exp(x)-exp(-x))/2
3419999Sdist	calls	$2,_exp
3519999Sdist	divd3	r0,$0d1.0e+0,r2
3619999Sdist	subd2	r2,r0
3719999Sdist	muld2	$0d0.5e+0,r0
3819999Sdist	ret
3919999Sdist.align 1
4019999Sdist_cosh:
4119999Sdist	.word	0x0
4219999Sdist	bispsw	$0xe0
4319999Sdist	movd	4(ap),-(sp)
4419999Sdist	calls	$2,_exp
4519999Sdist	divd3	r0,$0d1.0e+0,r2
4619999Sdist	addd2	r2,r0
4719999Sdist	muld2	$0d0.5e+0,r0
4819999Sdist	ret
4919999Sdist.data
5019999Sdist.align	2
5119999Sdistpcoef:
5219999Sdist	.double 0d0.251726188251e-7
5319999Sdist	.double 0d0.275569807356154e-5
5419999Sdist	.double 0d0.1984127027907999e-3
5519999Sdist	.double 0d0.833333333307759961e-2
5619999Sdist	.double 0d0.16666666666667212324e+0
5719999Sdist	.double 0d0.99999999999999998116e+0
58