--- gforth/prim 2002/12/13 15:49:53 1.104
+++ gforth/prim 2002/12/16 20:40:10 1.106
@@ -1288,7 +1288,8 @@ while(u1--)
ASCII strings (larger if ubits is large), and should share no
divisors with ubits.
*/
-unsigned rot = ((char []){5,0,1,2,3,4,5,5,5,5,3,5,5,5,5,7,5,5,5,5,7,5,5,5,5,6,5,5,5,5,7,5,5})[ubits];
+static char rot_values[] = {5,0,1,2,3,4,5,5,5,5,3,5,5,5,5,7,5,5,5,5,7,5,5,5,5,6,5,5,5,5,7,5,5};
+unsigned rot = rot_values[ubits];
Char *cp = c_addr;
for (ukey=0; cp>(ubits-rot)))
@@ -1808,16 +1809,9 @@ floor ( r1 -- r2 ) float
/* !! unclear wording */
r2 = floor(r1);
-(fround) ( r1 -- r2 ) gforth paren_f_round
-""Round to the nearest integral value. Primitive variant (unused)""
-/* !! eliminate this as primitive? */
-/* !! unclear wording */
-#ifdef HAVE_RINT
+fround ( r1 -- r2 ) gforth f_round
+""Round to the nearest integral value.""
r2 = rint(r1);
-#else
-r2 = floor(r1+0.5);
-/* !! This is not quite true to the rounding rules given in the standard */
-#endif
fmax ( r1 r2 -- r3 ) float f_max
if (r1