In article
<4c1d96fb-b352-4cb1-a731-13f27c6926f0@[EMAIL PROTECTED]
>,
The Beez' <hansoft@[EMAIL PROTECTED]
> wrote:
>Hi!
>
>Does anyone have some high level source for FSIN and FCOS words? Of
>course, FP words allowed ;-) BTW, FLN, F** or others are appreciated
>as well.
This is excerpted of the transputer sources. It will need some adaptation,
like removing the T in front of some words.
This is not rocket science: a standard Chebychev approximation is used
to arrive at most 2 bits from the exact value. (More on those on my
site below.) The binary representation of floats is IEEE.
The series have 8 terms. This is suboptimal for single precision.
_________________________________
TCREATE- SIN
#8 T,
$4A TC, $BB TC, $52 TC, $3C TC,
$2C TC, $26 TC, $06 TC, $BE TC, \ -6.446240144508160000E-010
$FA TC, $55 TC, $FC TC, $E7 TC,
$CE TC, $89 TC, $6E TC, $3E TC, \ 5.688204129779959808E-008
$16 TC, $64 TC, $6E TC, $3D TC,
$62 TC, $30 TC, $CE TC, $BE TC, \ -3.598809125770790400E-006
$B3 TC, $38 TC, $9F TC, $24 TC,
$83 TC, $07 TC, $25 TC, $3F TC, \ 1.604411684738620160E-004
$6E TC, $D5 TC, $17 TC, $CE TC,
$2C TC, $2D TC, $73 TC, $BF TC, \ -4.681754131060741120E-003
$50 TC, $10 TC, $75 TC, $67 TC,
$BC TC, $66 TC, $B4 TC, $3F TC, \ 7.969262624561789952E-002
$5D TC, $BD TC, $25 TC, $E6 TC,
$BC TC, $AB TC, $E4 TC, $BF TC, \ -6.459640975062189056E-001
$28 TC, $2D TC, $44 TC, $54 TC,
$FB TC, $21 TC, $F9 TC, $3F TC, \ 1.570796326794900224E+000
-- MINIMAX results for COSINE-1 where m = 50 and iterations = 200
-- Number of coefficients n = 8 and Q = 1.00000000000000E+0017
-- Error less than 1e-17
-- Add 1.0 to the result of series!
TCREATE- COS
#8 T,
$9B TC, $F6 TC, $8F TC, $FE TC,
$57 TC, $74 TC, $D1 TC, $3D TC, \ 6.34989835370917E-0011
$2D TC, $09 TC, $8A TC, $E2 TC,
$24 TC, $6A TC, $3B TC, $BE TC, \ -6.38296485859783E-0009
$C0 TC, $36 TC, $CA TC, $78 TC,
$2A TC, $9D TC, $9F TC, $3E TC, \ 4.71084256750041E-0007
$17 TC, $6A TC, $02 TC, $0E TC,
$1F TC, $6D TC, $FA TC, $BE TC, \ -2.52020407748109E-0005
$91 TC, $12 TC, $54 TC, $68 TC,
$50 TC, $1F TC, $4E TC, $3F TC, \ 9.19260274401328E-0004
$91 TC, $7B TC, $3C TC, $7E TC,
$3C TC, $5D TC, $95 TC, $BF TC, \ -2.08634807632922E-0002
$8D TC, $5A TC, $1B TC, $08 TC,
$1F TC, $3C TC, $D0 TC, $3F TC, \ 2.53669507901045E-0001
$DF TC, $45 TC, $BE TC, $C9 TC,
$3C TC, $BD TC, $F3 TC, $BF TC, \ -1.23370055013617E+0000
/ Use offsets of 0 10 or18 into these words as appropriate,
/ or use the decimal values for no IEEE.
FNUM PI/2,
$35 C, $C2 C, $68 C, $21 C,
$A2 C, $DA C, $0F C, $C9 C,
$FF C, $3F C, \ extended 1.570796326794896620
$18 C, $2D C, $44 C, $54 C,
$FB C, $21 C, $F9 C, $3F C, \ double 1.570796326794897
$DB C, $0F C, $C9 C, $3F C, \ single 1.570796
FNUM PI*2,
$35 C, $C2 C, $68 C, $21 C,
$A2 C, $DA C, $0F C, $C9 C,
$01 C, $40 C, \ extended 6.283185307179586480
$18 C, $2D C, $44 C, $54 C,
$FB C, $21 C, $19 C, $40 C, \ double 6.283185307179586
$DB C, $0F C, $C9 C, $40 C, \ single 6.283185
FNUM PI,
$35 C, $C2 C, $68 C, $21 C,
$A2 C, $DA C, $0F C, $C9 C,
$00 C, $40 C, \ extended 3.141592653589793240
$18 C, $2D C, $44 C, $54 C,
$FB C, $21 C, $09 C, $40 C, \ double 3.141592653589793
$DB C, $0F C, $49 C, $40 C, \ single 3.141593
T: SERIES ( x x^1/2 / a -- t )
@[EMAIL PROTECTED]
>S F@[EMAIL PROTECTED]
S> 1- 0 \ x xn an \ a
DO
FOVER F* \ x xn t \ a
F@[EMAIL PROTECTED]
F+ \ x xn t \ a
LOOP
FNIP \ x t \ a
F* \ x*t \ a
DROP T; \ t \
T: REDUCE.2PI \ x
PI*2 \ x pi2
FOVER FOVER F/ \ x pi2 x/pi2
FLOOR \ x pi2 i(x/pi2)
FOVER F* \ x pi2 mod(x,pi2)
FROT \ PI2 MOD(X,PI2) X
FSWAP F- \ PI2 MOD(X,PI2)
FOVER 2E F/ FOVER \ PI2 MOD PI MOD
F< IF FSWAP F- ELSE FNIP THEN T;
T: REDUCE.PI \ x
PI \ x pi
FOVER FOVER F/ \ x pi x/pi
FLOOR \ x pi i(x/pi)
FOVER F* \ x pi mod(x,pi)
FROT \ PI MOD(X,PI) X
FSWAP F- \ PI MOD(X,PI)
FOVER 2E F/ FOVER \ PI MOD PI MOD
F< IF FSWAP F- ELSE FNIP THEN T;
H: R.FSIN ( 0..pi )
FDUP PI/2 F> IF PI FSWAP F- THEN
2/PI F* \ x
FDUP FSQR \ x * ( a1*x^2 + a2*x^4 ...)
SIN SERIES H; \ t
T: FSIN \ <r> --- <sin(r)>
REDUCE.2PI
FDUP F0< IF FNEGATE R.FSIN FNEGATE EXIT
ENDIF
R.FSIN T; ANS
H: R.FCOS ( 0..pi/2 )
2/PI F* \ x
FSQR FDUP \ x^2 ( a1 + a2*x^2 + a3*x^4 ...) + 1
COS SERIES 1E F+ H; \ t
T: FCOS \ <r> --- <cos(r)>
REDUCE.2PI
FABS FDUP PI/2 F> IF FNEGATE PI F+ R.FCOS FNEGATE EXIT
ENDIF
R.FCOS T; ANS
________________
>
>Hans Bezemer
Groetjes Albert
--
--
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- like all pyramid schemes -- ultimately falters.
albert@[EMAIL PROTECTED]
&=n http://home.hccnet.nl/a.w.m.van.der.horst


|