Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Forth > Re: High level ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 3 of 8 Topic 4017 of 4053
Post > Topic >>

Re: High level FSIN and FCOS

by Albert van der Horst <albert@[EMAIL PROTECTED] > Apr 26, 2008 at 08:02 AM

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




 8 Posts in Topic:
High level FSIN and FCOS
"The Beez'" <  2008-04-25 10:48:48 
Re: High level FSIN and FCOS
Aleksej Saushev <asau@  2008-04-26 11:53:58 
Re: High level FSIN and FCOS
Albert van der Horst <  2008-04-26 08:02:23 
Re: High level FSIN and FCOS
Bill <foo@[EMAIL PROTE  2008-04-26 09:56:23 
Re: High level FSIN and FCOS
"Ed" <nospam  2008-04-27 12:52:17 
Re: High level FSIN and FCOS
Albert van der Horst <  2008-04-27 11:17:52 
Re: High level FSIN and FCOS
"Rod Pemberton"  2008-04-26 21:56:38 
Re: High level FSIN and FCOS
"Mark W. Humphries&q  2008-04-26 20:00:09 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat May 17 0:02:16 CDT 2008.