( EXTENDED FLOATING POINT LOAD BLOCK) BFP /LOAD 02 LOAD 03 LOAD 04 LOAD 05 LOAD 06 LOAD 07 LOAD 08 LOAD 09 LOAD ;S ( FLOATING POINT FORMATTED OUTPUT) : F/MOD 2DUP F0> IF F/ 2DUP FIX 2SWAP 2OVER FLOAT F- 2SWAP ELSE 8 MESSAGE ABORT THEN ; : 5F12.3 CR 4 * DUP 0 DO I 4 / 3 .R DUP I - 20 MIN 0 DO OVER J + I + 2@ 3 12 F.R 4 +LOOP CR 20 +LOOP 2DROP ; ;S ( EXP, 10**X ) : LINEXP 1E0 F+ ; : TANHX/2 2E0 F/ 2DUP 2DUP F* 2DUP 0. 1 5 DO I 0 FLOAT F+ F/ -2 +LOOP ; : 1+T/1-T 1E0 2OVER F+ 2SWAP 1E0 2SWAP F- F/ ; OCTAL : 2**N 200 * 40177 + 177777 SWAP ; : X<2**-16 2DUP SWAP DROP 4000 < ; DECIMAL : X<1 2DUP 1E0 F< ; : 2EXP TANHX/2 1+T/1-T ; : X>1 .69314718 F/ 1E0 F/MOD DROP DUP 127 > IF DROP 2DROP 9 MESSAGE ABORT ELSE 2**N 2SWAP .69314718 F* 2EXP F* THEN ; : 1EXP X<2**-16 IF LINEXP ELSE X<1 IF 2EXP ELSE X>1 THEN THEN ; : -EXP FABS 1EXP 1/X ; : EXP 2DUP 0. F< IF -EXP ELSE 1EXP THEN ; : 10**X .4342945 F/ EXP ; ;S ( LN, LOG10, LOG2, Y**X, ASINH, ACOSH, ATANH) : LNIT 1E0 F- 2DUP 2E0 F+ F/ 2DUP 2DUP F* 2DUP 2DUP 2DUP 2DUP 11. F/ 1 9 DO I 0 FLOAT 1/X F+ F* -2 +LOOP 2E0 F* ; : FRACTION 127 AND 16384 + SWAP 65535 AND SWAP ; : CHARAC 2DUP SWAP DROP 32640 AND 128 / 0 128 0 D- FLOAT .6931472 F* 2SWAP ; : 1LN CHARAC FRACTION LNIT F+ ; : LN 2DUP 0. F> IF 1LN ELSE 10 MESSAGE ABORT THEN ; : LOG10 LN 10. LN F/ ; : LOG2 LN 2E0 LN F/ ; : Y**X 2SWAP LN F* EXP ; : ASINH 2DUP 2DUP F* 1E0 F+ SQRT F+ LN ; : ACOSH 2DUP 1E0 F< IF 11 MESSAGE ABORT ELSE 2DUP 2DUP F* 1E0 F- SQRT F+ LN THEN ; : ATANH 2DUP FABS 1E0 F> IF 11 MESSAGE ABORT ELSE 2DUP 1E0 F+ 2SWAP 1E0 2SWAP F- F/ LN 2E0 F/ THEN ; ;S ;S ;S ;S ;S ;S