Computing Today  Floating Point Dictionary
Software: Ace arithmetic 

Stephen Renals 
9.8451 and an exponent of 2. This is useful, since: ln 9.84E2 = 2*ln 10 + ln 9.84
Hence the exponent is multiplied by ln 10 (2.30528) to be
added on to the sum at the end. The value of h is then calculated from
the mantissa and the above series is summed. The natural logarithm of a number may therefore be found. log10X = ln x ln 10 EXP calculates the exponential function (exp x ex) of a floating point number. This is achieved by summing the Taylor Approximation to exp x: exp h = l + h + h2 + h3 + h4 + h5 + . . . 21 31 41 51 where nl = n * (n  1) * (n  2) * . . . * 1 LN is accurate to around 3 significant figures (SF). The size of the operand is not important, as LN splits the number, as mentioned earlier. EXP is accurate to 5 or 6 SF on numbers between about 2 and 12. It is accurate to 3 or 4 SF when the operand
is between about 12 and 16, or 2 and 4. Above 22 of 23, or below 6 it is not very accurate. ab = exp(b * ln a) F↑ is accurate to between 4 and 6 SF on answers ranging from 0.05 to 1.25 million, and accurate to 2 or 3 SF
on answers up to 500 million or between 0.05 and 0.007. 9x5  4x4 + 2x = 3, ie 9x5  4x4 + 2x  3 = 0 type in: : FX (9x5  4x4 + 2x  3) 2DUP 5. FI^ 9. F* 20VER 4. FI^ 4. F* F 2SWAP 2DUP F+ F+ 3. F ; REDEFINE X : F'X (45x4  16x3 + 2) 2DUP 4. FI^ 45. F* 2SWAP 3. FI^ 16. F* F 2. F+ ; REDEFINE F'X 

FLOATING POINT
This dictionary for the Jupiter Ace will let you 

The Jupiter Ace has only the most basic of floating point words defined in ROM. However, with a little effort,
a fairly acceptable package of floating point words may be defined.

FINPUT will wait for a floating point number to be entered, whereas INPUT (only included for completeness)
will wait for a 16bit number to be entered. ln m = 2(h + h3 + h5 + h7 + h9 + . . .) 3 5 7 9 where h = m  l
m + l
This series gives a good approximation of ln m, when m is less than 10. 
Software: Ace arithmetic 

Typing SOLVE will leave the 
FX F'X axm + bxn maxml + nbxnl sin(ax + b) a*sin (ax + b) cos(ax + b) a*cos (ax + b) tan(ax + b) a/cos2(ax + b) ax ax * ln a exp x exp x ln x l/x Table 1. Some common functions and their derivatives 
Listing 1. The floating point dictionary for the Ace. : ITPAL ; DEFINER CODE (Page 147 Ace manual) DOES> CALL ; : HEX 16 BASE C! ; HEX CODE 2* (NN*2 ) DF C, (RST 24 ) CB C, 23 C, (SLA E ) CB C, 12 C, (RL D ) D7 C, (RST 16 ) FD C, E9 C, (JP(IY) ) CODE 2/ (NN/2) DF C, (RST 24) CB C, 2A C, (SRA D ) CB C, 1B C, (RR E ) D7 C, (RST 16) FD C, E9 C, (JP(IY)) DECIMAL Enter floating point stack rearrangement words  page 91 Ace manual : 2ROLL (N) DUP 2* ROLL SWAP 2* ROLL SWAP ; : 2PICK (N1FP2) DUP 2* PICK SWAP 2* 1+ PICK SWAP ; : 2?DUP (FPFP,FP if FP=0, FPFP if FP=0) 2DUP OR IF 2DUP THEN ; DEFINER 2VARIABLE (4 byte variable) SWAP , , DOES> ; DEFINER 2CONSTANT (4 byte constant) SWAP , , DOES> 2@ ; : FLOAT (NFP signed UFLOAT) DUP 0< SWAP ABS UFLOAT ROT IF FNEGATE THEN ; : F0< (FPFLAG page 114 Ace manual) SWAP DROP 0< ; : FINPUT (FP) BEGIN RETYPE NUMBER 4102 = WHILE DROP REPEAT ; 
: INPUT (N) BEGIN RETYPE NUMBER 4181 = WHILE 2DROP REPEAT ; : FERROR? (FLAG) IF 8 15421 C! ABORT (ERRNO = 8) THEN ; : FI^ (FP1,FP2FPIFP2; FP2=integer (not less than zero) 2DUP INT UFLOAT 20VER F OR FERROR? 1. 2SWAP 2DUP OR IF INT 0 DO 2OVER F* LOOP THEN 2SWAP 2DROP ; : LN (FPln(FP)) ?DUP 0< FERROR? (can't have In of a negative number) DUP 256 / UFLOAT 65. F (extract the exponent) 2.30528 F* 2SWAP 255 AND 16640 + (a = exponent.1n10, m = mantissa) 2DUP 1. F 2SWAP 1. F+ F/ (a, h = m1/m+1) 2DUP 2DUP F* 2OVER 31 3 DO (a, sum, h2, hi2) 2OVER F. 2ROT 2OVER (a, h2, hi, sum, hi) I UFLOAT F/ F+ (a, h2, hi, new sum) 2ROT 2ROT 2 +LOOP 2DROP 2DROP 2. F* F+ ; : LOG (FPlog10FP) LN 2.30258 F/ ; : EXP (FPexp(fP)) 1. 2SWAP 1. (1., h, 1.) 31 1 DO (sum, h, last term) 2OVER I UFLOAT F/ F* (sum, h, this term = last term*h/i) 2ROT 2OVER F+ 2ROT 2ROT LOOP 2DROP 2DROP ; : F^ (FPl,FP2FPl,FP2) 2SWAP LN F* EXP ; Enter SIN COS TAN SQRT from page 92 of Ace manual : FX (function equated to 0 by SOLVE) (redefine to desired function) (before executing SOLVE) ; : F'X (derived function of FX for SOLVE) (redefine before executing SOLVE) ; : SOLVE (FP Equates function FX to 0) 1. 26 0 (F`X is derived function of FX) DO 2DUP FX 20VER F'X F/ F LOOP ; 
Please Note ** December 2021 : LN (FPln(FP)) ?DUP 0< FERROR? (can't have In of a negative number) DUP 256 / UFLOAT 65. F (extract the exponent) 2.30528 F* 2SWAP 255 AND 16640 + (a = exponent.1n10, m = mantissa) 2DUP 1. F 2SWAP 1. F+ F/ (a, h = m1/m+1) 2DUP 2DUP F* 2OVER 31 3 DO (a, sum, h2, hi2) 2OVER F* 2ROT 2OVER (a, h2, hi, sum, hi) I UFLOAT F/ F+ (a, h2, hi, new sum) 2ROT 2ROT 2 +LOOP 2DROP 2DROP 2. F* F+ ; 