Scr#1
\ TRANSCENDENTAL FUNCTIONS.
\ FLOATING POINT REQUIRED.

: 2, , , ;
: F*2** >R X@ R> - 0 MAX X! ;
: 2VARIABLE CREATE 4 ALLOT ;
CREATE ATNTAB
7.8539816&-1 2, 4.6364761&-1 2,
2.4497866&-1 2, 1.2435499&-1 2,
6.2418810&-2 2, 3.1239833&-2 2,
1.5623729&-2 2, 7.8123411&-3 2,
3.9062301&-3 2, 1.9531225&-3 2,
9.7656219&-4 2, 4.8828121&-4 2,
2.4414062&-4 2,

: ATNTAB@ DUP 12 > IF 1& ROT
 F*2** ELSE 2* 2* ATNTAB + 2@
 THEN ;

2VARIABLE FX 2VARIABLE FY
: TAN2 1& FX 2! 2DUP 1&-4 F< IF
  FY 2! ELSE 0. FY 2! 24 0 DO
  BEGIN 2DUP I ATNTAB@ F> WHILE
  I ATNTAB@ F- FX 2@ FY 2@ I
  F*2** F- FY 2@ FX 2@ I F*2**
  F+ FY 2! FX 2!
REPEAT LOOP  2DROP THEN ;

3.1415927& 2CONSTANT PI
6.9314718&-1 2CONSTANT LN2
-->


Scr#2
\ TRANSCENDENTALS  TRIGONOMETRY
: FTAN 2DUP F0< >R FABS
 2DUP PI F/ F->D D->F PI F* F-
 TAN2 FY 2@ FX 2@ F/ R> IF
 FNEGATE THEN ;
: FSIN 2DUP F0< >R FABS
 2DUP PI F2* F/ F->D D->F PI F2*
 F* F- TAN2 FY 2@ FX 2@ 2DUP F*
 FY 2@ 2DUP F* F+ FSQRT F/ R> IF
 FNEGATE THEN ;
: FCOS PI F2/ 2SWAP F- FSIN ;

: ATN2 FY 2@ 1&-4 F< IF
  FY 2@ ELSE 0. 24 0 DO BEGIN
  FY 2@ FX 2@ I F*2** F>
  WHILE I ATNTAB@ F+ FX 2@
  FY 2@ I F*2** F+ FY 2@ FX 2@
  I F*2** F- FY 2! FX 2!
  REPEAT LOOP THEN ;

: FARCTAN 2DUP F0< >R FABS
  FY 2! 1& FX 2! ATN2 R> IF
  FNEGATE THEN ;
: FARCSIN 2DUP F0< >R FABS
  2DUP FY 2! 1& 2SWAP 2DUP F* F-
  FSQRT FX 2! ATN2 R> IF
  FNEGATE THEN ;
: FARCCOS PI F2/ 2SWAP FARCSIN
  F- ;
-->



Scr#3
\ TRANSCENDENTALS 3 FEXP
CREATE LNTAB
6.9314718&-1 2, 4.0546511&-1 2,
2.2314355&-1 2, 1.1778304&-1 2,
6.0624621&-2 2, 3.0771659&-2 2,
1.5504186&-2 2, 7.7821404&-3 2,
3.8986404&-3 2, 1.9512201&-3 2,
9.7608597&-4 2, 4.8816208&-4 2,
2.4411063&-4 2, 1.2206286&-4 2,
6.1033194&-5 2, 3.0517112&-5 2,
1.5258673&-5 2, 7.6293654&-6 2,
3.8146900&-6 2, 1.9073468&-6 2,
9.5357386&-7 2, 4.7683704&-7 2,
2.3841855&-7 2, 1.1920928&-7 2,

: LNTAB@ 2* 2* LNTAB + 2@ ;
: FEXP 2DUP F0< >R FABS
  2DUP LN2 F/ F->D OVER >R D->F
  LN2 F* F- 0. FX 2! 24 0 DO
  BEGIN 2DUP I LNTAB@ F> WHILE
  I LNTAB@ F-  1& FX 2@ F+
  I F*2** FX 2@ F+ FX 2! REPEAT
  LOOP 2DROP FX 2@ 1& F+ X@ R>
  + 255  MIN X! R> IF 1& 2SWAP
  F/ THEN  ;

-->






Scr#4
\ TRANSCENDENTALS 4 FLN,F**
: FLN 2DUP F0< IF 2DROP NAN
 ELSE X@ >R 128 X! 1& F-
   FX 2!       LN2 24 0 DO BEGIN
  FX 2@ 1& F+ I F*2** FX 2@ F+
  2DUP 1& F< WHILE FX 2! I
  LNTAB@  F- REPEAT 2DROP LOOP
  R> 128 - S->D D->F LN2 F* F+
  THEN ;

: F** 2SWAP FLN F* FEXP ;

180& PI F/ 2CONSTANT 180/PI
PI 180& F/ 2CONSTANT PI/180
: DEG 180/PI F* ;
: RAD PI/180 F* ;
10& FLN 2CONSTANT LN10

: F10** LN10 F* FEXP ;
: FLOG FLN LN10 F/ ;

