Processors tests (floating point)

Sine function Some tests are performed on many different processors from 8086 to modern CPU's. The initial purpose of the tests is the evaluation of my own compiler. But it is only integer tests. Here simple floating point tests presented. They calculates the area under half the period of the sine unction by using rectangle method, the simplest method of integration.

The initial goal was to evaluate the efficiency of modern math coprocessors, and for this purpose rather primitive implementations of single- and double-precision floating-point arithmetic were written. Initial double-precision arithmetic implementatution could only work on 64-bit systems.

Testing was then expanded to include some 8-bit microcomputers and programmable calculators.

I also came up with a consistent proof of the existence of the limit of the ratio of the sine function to its argument needed to calculate the derivative. I'm not the first to do this, but my version is based on simpler grounds. You can read about it here.

Sine function calculated by FPU/library call and sum of Maclaurin series. Floating point arithmetic are performed by FPU/library calls and self-written in C language software implementation (possible inefficient and not fully correct):

Library Accuracy Max datatype used Remark
real4x32 Real*4 uint64_t uint64_t by uint32_t division on CPU. For 64-bit and 32-bit systems
real4x16 Real*4 uint32_t Compare, subtract and shift (cmp-sub-shl) used for division
real8x64 Real*8 __uint128_t __uint128_t by uint64_t division on CPU
real8x32 Real*8 uint64_t Compare, subtract and shift (cmp-sub-shl) used for division
real8x16 Real*8 uint32_t Compare, subtract and shift (cmp-sub-shl) used for division, optionally 8086 inline assembler used

Unfortunately, no stable versions of this libraries and different results were obtained using different versions. Current version here.

GCC and Borland C/C++ compilers are used. On some old compters built-in Basic interpreter are used. It is incorrect to compare the speed of compiled and interpreted code. On new machines the difference can be hundreds of times, on old machines it is much less - from two to five times. This is true for floating point calculations only, for integer calculations the difference are much more.

On many systems number of intervals (N) reduced to 106 - 101 and the time is multiplied by 107 /  N. Nubmer of signs after decimal point may be greater than time measurement accuracy (for unified results alignment). On old systems time measured by electronic stopwatch. It may increase result by reaction time (~0.4 sec) multiplied by 107 / 10 N.

MS DOS and first MS Windows versions of my own compiler implements double precision arithmetic on 80x87 FPU unit only. It also used if possible.

For calculations with single precision (Real*4) N = 107 is too large and result error significant (2.023 instead of 2.0), but here the time is determined, not the area.

Old versions of C compilers always use double precision arithmetic, IBM PC Basic interpreters always use single precision sine function (in versions 3.x precision may be changed via /D command line argument, but it was not used).

Thanks to the Yandex Museum for the opportunity to use some old computers - IBM 5150, Apple//e, Sinclair ZX81 and some others.

Simplified source code for first two columns (FPU/Lib and Soft-sin):

#include <stdio.h>
#include <math.h>


#ifdef  REAL8

typedef double real;
#define ERR 1E-16

#else

typedef float  real;
#define ERR 1E-8

#endif


real sin2(real x)
{
  real s = x;
  real a = x;
  real y = x * x;
  real n = 1;
  do
  {
    a    =-a * y / ((n + 1) * (n + 2));
    s   += a;
    n   += 2;
  }
  while (fabs(a) > ERR);

  return s;
}


int main(void)
{
  const real PI = 3.141592653589793238;
  const int  N  = 10000000;

  real       s  = 0.0;
  int        i  = 0;
  while     (i  < N)
  {
    #ifdef SOFT
      s +=   sin2(PI * i / N);
    #else
      #ifdef REAL4
        s += sinf(PI * i / N);
      #else
        s += sin (PI * i / N);
      #endif
    #endif

    i++;
  }

  printf("%.16f\n", PI * s / N);

  return 0;
}

Most of the results were obtained on real machines, some were also obtained on emulators. Some of them are correct, others are not. In many cases three digits after decimal point added for alignment only.

Cpu: Accuracy: Word: Compiler/interpreter: All:

System/CPU Accuracy N FPU/Lib Soft-sin Soft-all Remark
Core i5-4690S@3200 Real*4 107 0.071 0.195 2.211 gcc 9.4.0, REAL4, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*4 107 0.073 0.155 1.279 REAL4, No-div
Core i5-4690S@3200 Real*4 107 0.127 0.231 1.858 Initial version, incorrect rounding
Core i5-4690S@3200 Real*8 107 0.133 0.351 2.523 No-div
Core i5-4690S@3200 Real*8 107 0.133 0.440 5.120 Initial version, incorrect rounding
Core i5-4690S@3200 Real*8 107 0.133 0.440 5.675 gcc 9.4.0, Soft-all/NOFPU, correct rounding?
Core 2 Duo E6850@3000 Real*4 107 0.178 0.532 4.003 REAL4
Athlon 64-3200+@2000 Real*4 107 0.355 0.870 8.051 gcc, REAL4, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 0.384 1.251 35.340 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 0.384 1.251 54.642 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Core 2 Duo E6850@3000 Real*8 107 0.384 1.483 10.207  
Core i5-4690S@3200 Real*4 107 0.386 0.620 5.049 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*4 107 0.386 0.620 37.405 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Pentium 4@3000 Real*4 107 0.389 1.128 6.569 gcc/64 bit, REAL4
Core i5-4690S@3200 Real*8 107 0.482 1.145 n/a Context 1.4/32 bit
Core i5-4690S@3200 Real*4 107 0.494 1.758 57.788 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 0.494 2.582 213.135 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 0.494 3.076 224.890 Borland C++ 3.1 + asm/16 bit, set 87=Y
Core i5-4690S@3200 Real*8 107 0.494 3.076 411.877 Borland C++ 3.1/16 bit, set 87=Y
Elbrus-8S@1300 Real*4 107 0.540 1.300 9.220 REAL4
Core i5-4690S@3200 Real*4 107 0.549 2.032 58.502 Borland C++ 3.1/16 bit, set 87=Y
Athlon 64-3200+@2000 Real*8 107 0.551 1.643 14.206 gcc, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200/FreeDOS

Real*4 107 0.604 2.032 67.676 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200/FreeDOS Real*8 107 0.604 3.021 250.488 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200/FreeDOS Real*8 107 0.604 3.021 359.308 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Elbrus-8S@1300 Real*8 107 0.640 2.080 21.560  
Elbrus-8S@1300 Real*8 107 0.640 2.080 37.540 cmp-sub-shl
Athlon 64-3200+@2000 Real*4 107 0.649 1.248 9.577 gcc, REAL4
Athlon 64-3200+@2000 Real*4 107 0.656 1.656 8.328 gcc 4.8.1 + asm -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*4 107 0.656 1.656 11.171 gcc 4.8.1 -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*4 107 0.656 1.671 10.219 gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*4 107 0.656 1.671 13.312 gcc 4.8.1 -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*8 107 0.657 1.704 16.317 gcc
Athlon 64-3200+@2000 Real*4 107 0.688 2.078 15.875 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*4 107 0.688 2.078 61.547 Borland C++ 5.5.1, Soft-all/NOFPU, inefficient div64/32 implementation, correct rounding?
Pentium 4@3000 Real*8 107 0.695 2.628 17.786 gcc/64 bit
Athlon 64-3200+@2000 Real*8 107 0.719 4.344 73.125 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*8 107 0.719 4.344 104.891 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*4 107 0.989 4.559 89.484 Borland C++ 3.1/16 bit, set 87=Y, correct rounding?
Athlon 64-3200+@2000 Real*8 107 0.989 6.921 246.368 Borland C++ 3.1 + asm/16 bit, set 87=Y, correct rounding?
Athlon 64-3200+@2000 Real*8 107 0.989 6.921 459.064 Borland C++ 3.1/16 bit, set 87=Y, correct rounding?
Pentium 4@1600 Real*4 107 1.004 2.516 19.932 REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.061 3.893 26.341 gcc 5.4.0 + asm -std=c11 -O2, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.061 3.893 30.442 gcc 5.4.0 -std=c11 -O2, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.062 3.893 18.668 gcc 5.4.0 + asm -std=c11 -O3, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.062 3.893 23.137 gcc 5.4.0 -std=c11 -O3, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 1.166 1.898 14.766 REAL4, No-div
Athlon 64-3200+@2000 Real*8 107 1.421 2.453 53.422 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*8 107 1.421 2.453 63.469 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*8 107 1.422 2.468 52.062 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*8 107 1.422 2.468 80.093 gcc 4.8.1 -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.703 14.359 174.375 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.703 14.359 226.515 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.719 4.719 37.969 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.719 4.719 213.188 Borland C++ 5.5.1, Soft-all/NOFPU, inefficient div64/32 implementation, correct rounding?
Pentium 4@1600 Real*4 107 1.765 3.671 16.172 gcc 4.8.1 + asm -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 1.765 3.671 19.171 gcc 4.8.1 -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 1.766 6.937 30.641 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 1.766 6.937 126.672 Borland C++ 5.5.1, Soft-all/NOFPU, inefficient div64/32 implementation, correct rounding?
Pentium 4@1600 Real*4 107 1.796 3.687 18.281 gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 1.796 3.687 21.359 gcc 4.8.1 -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 1.813 9.328 242.344 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.830 3.640 24.110 gcc 4.3.3 + asm -std=c99 -O3, Ubuntu 9.04, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.830 3.640 28.680 gcc 4.3.3 -std=c99 -O3, Ubuntu 9.04, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 1.840 5.490 148.130 gcc 4.3.3 + asm -std=c99 -O3, Ubuntu 9.04, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 1.840 5.490 195.680 gcc 4.3.3 -std=c99 -O3, Ubuntu 9.04, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.875 4.281 21.281 gcc 4.8.1 + asm -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.875 4.281 24.859 gcc 4.8.1 -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.890 4.296 23.718 gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 1.890 4.296 27.812 gcc 4.8.1 -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.901 5.173 138.904 gcc + asm -std=c11, -O3, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.901 5.173 207.049 gcc -std=c11, -O3, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.903 3.702 138.900 gcc + asm -std=gnu11, -O3, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.903 3.702 143.331 gcc + asm -std=gnu11, -O2, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.903 3.702 207.761 gcc -std=gnu11, -O3, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.934 5.175 143.346 gcc + asm -std=c11, -O2, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.934 5.175 160.317 gcc -std=c11, -O2, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 1.948 3.107 61.782 No-div
Pentium 4@1600 Real*8 107 1.948 3.755 74.032 Newton-int
Pentium 4@1600 Real*8 107 1.948 3.755 185.735  
Pentium 4@1600 Real*4 107 1.953 2.564 15.582  
Pentium 4@1600 Real*8 107 1.956 3.700 160.317 gcc -std=gnu11, -O2, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 2.307 10.547 636.438 Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 2.307 10.547 956.854 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*4 107 2.362 6.592 192.152 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 2.511 5.948 134.737 gcc 5.4.0 + asm -std=c11 -O3, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 2.511 5.948 141.697 gcc 5.4.0 -std=c11 -O2, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 2.511 5.948 152.552 gcc 5.4.0 + asm -std=c11 -O2, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 2.511 5.948 238.837 gcc 5.4.0 -std=c11 -O3, Mint 18.3, REAL4, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 2.637 17.084 888.904 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 2.637 17.084 1,206.024 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/Celeron@@533 Real*8 107 2.911 30.157 715.155 Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 2.966 11.755 248.785 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.015 10.064 70.030 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.015 10.064 364.615 Borland C++ 5.5.1, Soft-all/NOFPU, inefficient div64/32 implementation, correct rounding?
Pentium III@533 Real*8 107 3.165 16.233 339.218 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 3.165 16.233 438.220 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.124 8.492 47.057 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.124 8.492 58.794 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.234 9.183 37.954 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.234 9.183 49.030 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*4 107 3.680 16.754 329.590 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 3.680 43.616 1,047.162 Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 3.680 43.616 1,634.326 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 4.265 6.421 139.828 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 4.265 6.421 230.421 gcc 4.8.1 -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 4.281 6.375 149.343 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Celeron M353@900 Real*8 107 4.281 6.375 160.421 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 5.375 5.875 140.671 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 5.375 5.875 144.125 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 5.375 5.875 147.313 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 5.375 5.875 172.922 gcc 4.8.1 -std=c11 -O3, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 107 7.430 64.833 946.491 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 107 7.430 64.833 1,077.749 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 7.500 12.467 236.199 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 7.500 12.467 398.693 gcc 4.8.1 -std=c11 -O3, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 7.530 12.467 254.626 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Pentium III@533 Real*8 107 7.530 12.467 273.783 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
86Box/K6@200 Real*8 106 7.690 85.144 1,900.635 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 107 7.741 41.499 184.415 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 107 7.741 41.499 888.427 Borland C++ 5.5.1, Soft-all/NOFPU, inefficient div64/32 implementation, correct rounding?
K6@200 Real*8 107 7.910 116.050 1,091.310 Borland C++ 5.5.1/cmp-sub-shl
K6@200 Real*4 107 8.190 102.660 249.090 Borland C++ 5.5.1/cmp-sub-shl
K6@200 Real*4 107 8.190 102.660 521.960 Borland C++ 5.5.1/div64/32
K6@200 Real*8 107 8.190 116.050 1,261.200 Borland C++ 5.5.1Newton-int
K6@200 Real*4 106 8.789 56.580 782.227 Borland C++ 3.1/16 bit, set 87=Y
K6@200 Real*4 106 8.789 65.369 797.607 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 107 8.850 42.240 104.690 gcc 4.8.1, REAL4, div64/32
K6@200 Real*4 107 8.850 42.240 191.640 gcc 4.8.1, REAL4, cmp-sub-shl
K6@200 Real*4 107 8.852 41.359 112.421 gcc 4.8.1 + asm -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 107 8.852 41.359 136.376 gcc 4.8.1 -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 107 8.862 41.379 130.677 gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 107 8.862 41.379 159.018 gcc 4.8.1 -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 106 9.338 76.355 2,881.714 Borland C++ 3.1 + asm/16 bit, set 87=Y
K6@200 Real*8 106 9.338 97.778 2,854.248 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 106 9.338 97.778 4,535.706 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 106 9.338 76.355 4,689.514 Borland C++ 3.1/16 bit, set 87=Y
Pentium MMX@166 Real*4 107 9.744 41.940 249.719 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium MMX@166 Real*4 107 9.744 41.940 1,048.538 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Pentium MMX@166 Real*8 107 10.195 78.082 980.549 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Pentium MMX@166 Real*8 107 10.195 78.082 1,436.635 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Pentium MMX@166 Real*4 106 11.536 68.115 1,004.150 Borland C++ 3.1, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/Pentium MMX@166 Real*8 106 11.536 97.229 3,030.029 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Pentium MMX@166 Real*8 106 11.536 97.778 2,742.188 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Pentium MMX@166 Real*8 106 11.536 97.778 4,742.249 Borland C++ 3.1, set 87=Y, Soft-all/NOFPU, correct rounding?
STM32F411RET6@100 Real*4 105 14.700 74.200 288.100 FPU, REAL4
Core i5-4690S@3200 Real*8 107 16.315 217.365 213.189 Borland C++ 3.1 + asm/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 16.315 217.365 306.903 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*4 107 16.864 144.031 58.502 Borland C++ 3.1/16 bit, set 87=N
Core i5-4690S@3200 Real*8 107 16.974 229.614 224.890 Borland C++ 3.1 + asm/16 bit, set 87=N
Core i5-4690S@3200 Real*8 107 16.974 229.614 411.877 Borland C++ 3.1/16 bit, set 87=N
Core i5-4690S@3200 Real*4 107 18.622 158.313 67.731 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 18.842 249.939 249.225 Borland C++ 3.1 + asm/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 18.842 249.939 359.692 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Athlon 64-3200+@2000 Real*8 107 21.808 255.267 246.368 Borland C++ 3.1 + asm/16 bit, set 87=N, correct rounding
Athlon 64-3200+@2000 Real*8 107 21.808 265.267 459.064 Borland C++ 3.1/16 bit, set 87=N, correct rounding
Athlon 64-3200+@2000 Real*4 107 21.863 165.015 89.484 Borland C++ 3.1/16 bit, set 87=N, correct rounding
K6@200 Real*8 107 23.283 54.688 697.823 gcc 4.8.1 + asm -std=c11 -O3, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 107 23.283 54.688 955.934 gcc 4.8.1 -std=c11 -O3, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 107 23.290 55.750 316.480 gcc 4.8.1/Newton-int
K6@200 Real*8 107 23.290 55.750 989.430 gcc 4.8.1/cmp-sub-shl
K6@200 Real*8 107 23.303 54.688 743.879 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 107 23.303 54.688 759.752 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*4 106 35.600 150.000 n/a GW-Basic 3.22
Core i5-4690S@3200 Real*8 106 38.100 276.600 n/a GW-Basic 3.22
Am486DX2@66 Real*4 106 74.200 169.100 676.200 gcc 4.8.1 + asm -std=gnu11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 74.200 169.100 836.000 gcc 4.8.1 -std=gnu11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 74.200 169.200 797.000 gcc 4.8.1 + asm -std=gnu11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 74.200 169.200 969.400 gcc 4.8.1 -std=gnu11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 74.700 219.200 800.800 gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 74.700 219.200 973.800 gcc 4.8.1 -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 75.380 228.260 1,212.520 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 75.380 228.260 5,247.270 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*8 106 76.400 334.500 6,373.600 Borland C++ 5.5.1
Am486DX2@66 Real*8 106 76.400 334.500 9,042.400 Borland C++ 5.5.1/Newton-int
Am486DX2@66 Real*4 106 76.900 218.600 678.900 gcc 4.8.1 + asm -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 76.900 218.600 835.400 gcc 4.8.1 -std=c11 -O3, REAL4, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 76.904 288.940 4,347.839 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 76.904 296.631 4,049.561 Borland C++ 3.1/16 bit, set 87=Y
Am486DX2@66 Real*4 106 77.400 237.300 1,625.200 Borland C++ 5.5.1
Am486DX2@66 Real*8 106 77.454 463.074 12,410.706 Borland C++ 3.1 + asm/16 bit, set 87=Y
Am486DX2@66 Real*8 106 78.003 449.890 12,245.361 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*8 106 78.003 449.890 20,310.425 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/Am486DX2@66 Real*8 106 81.848 570.190 14,408.569 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*4 107 90.033 719.714 248.785 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 90.527 1,129.724 888.904 Borland C++ 3.1 + asm/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Pentium 4@1600 Real*8 107 90.527 1,129.724 1,206.024 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*8 106 128.600 248.800 3,494.400 gcc 4.8.1 + asm -std=gnu11 -O2, correct rounding?
Am486DX2@66 Real*8 106 128.600 248.800 3,581.100 gcc 4.8.1 -std=gnu11 -O2, correct rounding?
Am486DX2@66 Real*8 106 130.700 249.300 3,268.000 gcc 4.8.1 + asm -std=gnu11 -O3, correct rounding?
Am486DX2@66 Real*8 106 130.700 249.300 4,736.200 gcc 4.8.1-std=gnu11 -O3, correct rounding?
Am486DX2@66 Real*8 106 133.500 250.400 2,308.600 gcc 4.8.1/Newton-int
Am486DX2@66 Real*8 106 133.500 307.000 3,480.600 gcc 4.8.1 + asm -std=c11 -O2, correct rounding?
Am486DX2@66 Real*8 106 133.500 307.000 3,661.800 gcc 4.8.1 -std=c11 -O2, correct rounding?
Am486DX2@66 Real*8 106 134.000 306.400 3,262.600 gcc 4.8.1 + asm -std=c11 -O3, correct rounding?
Am486DX2@66 Real*8 106 134.000 306.400 4,782.900 gcc 4.8.1 -std=c11 -O3, correct rounding?
STM32F411RET6@100 Real*4 105 151.400 352.800 288.100 REAL4
Am386SX@33 Real*4 105 242.900 1,652.100 10,105.005 IIT3C87SX/Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 247.192 1,922.607 31,338.501 IIT3C87SX/Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
K6@200 Real*4 106 254.883 1,590.820 782.227 Borland C++ 3.1/16 bit, set 87=N
Am386SX@33 Real*8 105 258.179 3,301.392 73,092.041 IIT3C87SX/Borland C++ 3.1 + asm/16 bit, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 105 260.700 2,531.300 40,395.000 IIT3C87SX/Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 105 260.700 2,531.300 63,920.700 IIT3C87SX/Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 106 261.475 2,206.055 2,881.714 Borland C++ 3.1 + asm/16 bit, set 87=N
K6@200 Real*8 106 261.475 2,206.055 4,689.514 Borland C++ 3.1/16 bit, set 87=N
K6@200 Real*4 106 262.024 1,723.206 797.607 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 106 266.418 2,826.233 4,489.014 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 280.000 1,614.000 6,108.000 IIT3C87SX/gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
STM32F411RET6@100 Real*8 105 284.800 1,250.400 1,623.600  
Pentium MMX@166 Real*4 106 322.449 1,885.803 1,004.700 Borland C++ 3.1, set 87=N, Soft-all/NOFPU, correct rounding?
Pentium MMX@166

Real*8 106 325.745 3,077.271 2,749.328 Borland C++ 3.1 + asm/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
86Box/Am386SX@33 Real*8 105 329.590 2,581.787 66,989.136 80387SX/1ws/Borland C++ 3.1 + asm/16 bit, Soft-all/NOFPU, correct rounding?
STM32F103C8T6@48 Real*4 104 519.000 576.000 675.000  
STM32F103C8T6@48 Real*8 104 624.000 2,239.000 3,217.000  
K6@200 Real*4 105 619.000 3,228.820 n/a GW-Basic 3.22
K6@200 Real*8 105 671.000 5,406.000 n/a GW-Basic 3.22
Am386SX@33 Real*8 105 885.000 2,158.000 23,387.000 IIT3C87SX/gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
ATSAMD21G18A-U@48 Real*4 104 1,056.000 1,781.000 2,033.000  
Am486DX2@66 Real*4 106 1,140.381 5,523.376 4,347.839 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*4 106 1,155.212 5,551.392 4,049.561 Borland C++ 3.1/16 bit, set 87=N
Am486DX2@66 Real*8 106 1,173.889 9,213.135 12,245.361 Borland C++ 3.1 + asm/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*8 106 1,173.889 9,213.135 20,310.425 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
Am486DX2@66 Real*8 106 1,187.073 9,105.469 12,410.706 Borland C++ 3.1 + asm/16 bit, set 87=N
Am486DX2@66 Real*8 106 1,187.073 9,105.469 21,437.073 Borland C++ 3.1/16 bit, set 87=N
PCem/IBM 5170/80286@8 Real*4 103 1,318.359 11,975.098 125,628.662 80287/1ws/Borland C++ 3.1, set 87=Y, Soft-all/NOFPU, correct rounding?
PCem/IBM 5170/80286@8 Real*8 103 1,428.227 19,665.527 282,458.496 80287/1ws/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
ATmega328P-PU@16 Real*4 104 1,606.000 5,521.000 20,000.000  
ATSAMD21G18A-U@48 Real*8 104 1,965.000 3,077.000 3,762.000  
Am286@16 Real*4 104 2,801.514 10,382.080 54,272.461 P80C287@10.67/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@16 Real*8 104 2,856.445 18,072.510 109,643.555 P80C287@10.67/Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Am286@16 Real*8 104 2,856.445 18,072.510 236,865.234 P80C287@10.67/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@16 Real*4 104 2,911.377 10,437.012 71,136.475 P80C287@10.67/1ws/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@16 Real*8 104 2,966.309 18,127.441 139,965.820 P80C287@10.67/1ws/Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Am286@16 Real*8 104 2,966.309 18,127.441 313,714.600 P80C287@10.67/1ws/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*4 104 3,295.898 12,414.551 107,995.605 P80C287@10.67/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,350.830 20,434.570 212,420.654 P80C287@10.67/Borland C++ 3.1 + asm
Am286@8 Real*8 104 3,350.830 20,654.297 217,474.365 P80C287@10.67/Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,350.830 20,654.296 472,137.451 P80C287@10.67/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,350.830 21,148.682 530,200.195 P80C287@10.67/Turbo C 2.0
Am286@8 Real*4 104 3,405.762 12,854.004 141,778.565 P80C287@10.67/1ws/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*4 104 3,405.762 14,886.475 108,984.375 P80C287@10.67/Turbo C 2.0
86Box/IBM 5170/80286@8 Real*4 104 3,515.625 13,073.730 125,628.662 80287/1ws/Borland C++ 3.1, set 87=Y, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,515.625 21,643.066 278,283.691 P80C287@10.67/1ws/Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,515.625 21,643.066 626,330.566 P80C287@10.67/1ws/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
86Box/IBM 5170/80286@8 Real*8 104 3,570.557 19,445.801 282,403.565 80287/1ws/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 4,724.121 22,357.178 n/a P80C287@10.67/Context 1.2
Am386SX@33 Real*4 104 5,493.164 28,399.658 31,091.309 Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 5,814.700 36,251.900 10,105.000 Borland C++ 5.5.1 + asm, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 5,814.700 36,251.900 25,976.600 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 104 5,870.000 34,500.000 66,240.000 Borland C++ 5.5.1
Am386SX@33 Real*8 105 5,926.000 47,758.100 63,974.500 Borland C++ 5.5.1, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 6,004.028 30,020.142 31,338.501 Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 6,004.028 30,020.142 31,338.501 Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 105 6,080.933 48,565.063 73,092.041 Borland C++ 3.1 + asm/16 bit, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 105 6,080.933 48,565.063 127,974.243 Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 104 6,125.000 46,199.000 144,805.000 Borland C++ 5.5.1, correct rounding?
Am386SX@33 Real*4 105 6,355.000 34,246.000 6,113.000 gcc 4.8.1 + asm -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*4 105 6,355.000 34,246.000 7,640.000 gcc 4.8.1 -std=c11 -O2, REAL4, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 104 6,430.000 46,410.000 149,180.000 Borland C++ 5.5.1
PCem/Olivetti M24 SP/8086@9.54 Real*8 103 3,295.898 18,676.758 377,929.688 8087/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/Olivetti M24 SP/8086@9.54 Real*8 103 4,394.531 26,916.504 470,764.160 8087/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
IBM 5160/V20@4.77 Real*4 104 7,525.635 24,554.443 550,140.381 8087/Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
IBM 5160/V20@4.77 Real*8 104 7,635.498 40,649.414 1,077,099.609 8087/Borland C++ 3.1/16 bit + asm, Soft-all/NOFPU, correct rounding?
IBM 5160/V20@4.77 Real*8 104 7,635.498 40,649.414 2,493,127.441 8087/Borland C++ 3.1/16 bit, Soft-all/NOFPU, correct rounding?
PCem/IBM 5160/8088@4.77 Real*8 104 7,635.498 42,846.680 n/a 8087/Turbo C 2.0
PCem/IBM 5160/8088@4.77 Real*4 103 7,690.430 24,719.238 431,213.279 8087/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
PCem/IBM 5160/8088@4.77 Real*8 103 7,690.430 39,550.781 945,373.535 8087/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/IBM 5160/8088@4.77 Real*4 104 9,558.105 38,616.943 581,945.801 8087/Borland C++ 3.1, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/IBM 5160/8088@4.77 Real*8 104 9,832.764 60,809.326 1,169,219.971 8087/Borland C++ 3.1 + asm, set 87=Y, Soft-all/NOFPU, correct rounding?
86Box/IBM 5160/8088@4.77 Real*8 104 9,832.764 60,809.326 2,565,307.617 8087/Borland C++ 3.1, set 87=Y, Soft-all/NOFPU, correct rounding?
PCem/IBM 5160/8088@4.77 Real*8 104 9,942.627 49,163.818 n/a 8087/Context 1.2
Am386SX@33 Real*8 105 11,348.000 48,236.000 23,382.000 gcc 4.8.1 + asm -std=c11 -O2, Soft-all/NOFPU, correct rounding?
Am386SX@33 Real*8 105 11,348.000 48,236.000 30,895.000 gcc 4.8.1 -std=c11 -O2, Soft-all/NOFPU, correct rounding?
ATmega328P-PU@16 Real*8 104 n/a n/a 107,790.000  
Am286@8 Real*4 104 19,006.348 91,186.523 107,995.605 P80C287@10.67/Borland C++ 3.1, set 87=N, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 19,171.143 145,843.506 217,474.365 P80C287@10.67/Borland C++ 3.1 + asm, set 87=N, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 19,171.143 145,843.506 472,137.451 P80C287@10.67/Borland C++ 3.1, Soft-all/NOFPU, set 87=N, correct rounding?
Am286@8 Real*8 104 19,226.074 143,865.967 212,420.654 Borland C++ 3.1 + asm, set 87=N
Am386SX@33 Real*4 104 19,650.000 95,350.000 n/a GW-Basic 3.22
Am286@8 Real*8 104 21,258.545 163,586.426 530,200.195 Turbo C 2.0, set 87=N
Am386SX@33 Real*8 104 21,750.000 166,600.000 n/a GW-Basic 3.22
Am286@8 Real*4 104 21,862.730 123,046.875 108,984.375 Turbo C 2.0, set 87=N
Pocket 8086/V30@4.77 Real*6 103 39,001.465 136,230.469 n/a Borland Pascal 7.0
Pocket 8086/V30@4.77 Real*4 103 56,030.273 270,263.672 299,377.441 Borland C++ 3.1
Pocket 8086/V30@4.77 Real*4 103 56,030.273 270,263.672 327,392.578 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Pocket 8086/V30@4.77 Real*8 103 56,579.590 433,410.645 638,854.981 Borland C++ 3.1 + asm
Pocket 8086/V30@4.77 Real*8 103 56,579.590 433,410.645 652,587.891 Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Pocket 8086/V30@4.77 Real*8 103 56,579.590 433,410.645 1,463,928.223 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*4 103 61,000.000 280,000.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
Pocket 8086/V30@4.77 Real*8 103 62,622.070 491,088.867 1,645,202.637 Turbo C 2.0
Pocket 8086/V30@4.77 Real*4 103 64,819.336 365,844.727 337,280.274 Turbo C 2.0
Am286@8 Real*8 103 67,100.000 491,130.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
Pocket 8086/V30@4.77 Real*6 103 83,496.094 199,401.856 n/a Turbo Pascal 5.0
Pocket 8086/V30@4.77 Real*6 103 95,581.055 274,108.887 n/a Turbo Pascal 3.02A
PCem/IBM 5160/8088@4.77 Real*4 103 97,229.004 441,101.074 431,213.279 8087/Borland C++ 3.1, set 87=N, Soft-all/NOFPU, correct rounding?
PCem/IBM 5160/8088@4.77 Real*8 103 97,778.320 704,772.949 945,373.535 8087/Borland C++ 3.1 + asm, set 87=N, Soft-all/NOFPU, correct rounding?
PCem/IBM 5160/8088@4.77 Real*8 103 97,783.320 698,181.152 932,739.258 Borland C++ 3.1 + asm
Pocket 8086/P8088-1@4.77 Real*4 103 108,215.332 465,270.996 555,358.887 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Pocket 8086/P8088-1@4.77 Real*8 103 108,764.648 743,774.414 1,097,534.180 Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Pocket 8086/P8088-1@4.77 Real*8 103 108,764.648 743,774.414 2,451,599.121 Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
PCem/IBM 5160/8088@4.77 Real*8 103 108,764.648 802,551.270 2,159,362.793 Turbo C 2.0
PCem/IBM 5160/8088@4.77 Real*4 103 111,511.231 600,952.145 463,073.305 Turbo C 2.0
86Box/IBM 5160/8088@4.77 Real*8 103 114,807.129 763,549.805 1,167,846.680 8087/Borland C++ 3.1 + asm, set 87=N, Soft-all/NOFPU, correct rounding?
Pocket 8086/V30@4.77 Real*4 103 168,500.000 740,600.000 n/a COMPAQ Personal Computer Basic Version 3.31, float (!) and integer (%) variables used
Pocket 8086/V30@4.77 Real*4 103 168,500.000 743,400.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
Pocket 8086/V30@4.77 Real*4 103 184,100.000 845,900.000 n/a IBM Basic Version A3.40, float (!) and integer (%) variables used
Pocket 8086/V30@4.77 Real*8 103 186,200.000 1,320,300.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
Pocket 8086/V30@4.77 Real*8 103 186,500.000 1,315,700.000 n/a COMPAQ Personal Computer Basic Version 3.31, double (#) and integer (%) variables used
PCjs/IBM 5150/8088@4.77 Real*4 102 203,000.000 1,034,000.000 n/a IBM PC Basic C1.00
86Box/IBM 5150/8088@4.77 Real*4 102 241,699.219 1,135,000.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used, PC timer used
Pocket 8086/P8088-1@4.77 Real*4 102 247,192.383 1,159,057.617 n/a GW-Basic 3.22, float (!) and integer (%) variables used, PC timer used
PCem/IBM 5150/8088@4.77 Real*4 102 247,192.383 1,197,509.766 n/a GW-Basic 3.22, float (!) and integer (%) variables used, PC timer used
Pocket 8086/P8088-1@4.77 Real*4 103 252,500.000 1,132,500.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
PCem/IBM 5150/8088@4.77 Real*4 103 254,700.000 1,182,100.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
PCem/IBM 5160/8088@4.77 Real*4 103 255,000.000 1,184,400.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
86Box/IBM 5150/8088@4.77 Real*4 102 263,671.875 1,351,318.359 n/a IBM PC Basic C1.10, PC timer used
Pocket 8086/P8088-1@4.77 Real*4 102 269,165.039 1,389,770.508 n/a IBM PC Basic C1.10, PC timer used
86Box/IBM 5150/8088@4.77 Real*8 102 269,165.039 1,988,525.391 n/a GW-Basic 3.22, double (#) and integer (%) variables used, PC timer used
86Box/IBM 5150/8088@4.77 Real*4 102 272,000.000 1,135,000.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*4 102 272,000.000 1,181,000.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*8 102 274,658.203 2,076,416.016 n/a GW-Basic 3.22, double (#) and integer (%) variables used, PC timer used
PCem/IBM 5150/8088@4.77 Real*8 102 274,658.203 2,114,868.164 n/a GW-Basic 3.22, double (#) and integer (%) variables used, PC timer used
Pocket 8086/P8088-1@4.77 Real*4 103 275,300.000 1,280,400.000 n/a IBM Basic Version A3.40, float (!) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*8 103 280,600.000 2,039,300.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
PCem/IBM 5150/8088@4.77 Real*8 103 282,200.000 2,103,000.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
PCem/IBM 5160/8088@4.77 Real*8 103 283,100.000 2,103,000.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
PCem/IBM 5150/8088@4.77 Real*4 102 284,000.000 1,240,000.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
MartyPC Web Edition 0.40/IBM 5160/8088@4.77 Real*4 102 285,644.531 1,483,154.297 n/a IBM PC Basic C1.10, PC timer used
86Box/IBM 5160/8088@4.77 Real*4 102 297,000.000 1,300,000.000 n/a IBM Basic Version A3.40, float (!) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*4 102 297,000.000 1,413,000.000 n/a IBM PC Basic C1.10
Pocket 8086/V30@4.77 Real*8 103 298,400.000 2,554,400.000 n/a IBM Basic Version A3.40, double (#) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*4 102 300,000.000 1,307,000.000 n/a IBM Basic Version A3.40, float (!) and integer (%) variables used
86Box/IBM 5150/8088@4.77 Real*4 102 300,000.000 1,397,000.000 n/a IBM PC Basic C1.10
86Box/IBM 5150/8088@4.77 Real*8 102 303,000.000 2,028,000.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*8 102 303,000.000 2,100,000.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
PCjs/IBM 5150/8088@4.77 Real*8 102 309,000.000 2,115,000.000 n/a GW-Basic 3.22
PCem/IBM 5160/8088@4.77 Real*4 102 310,000.000 1,412,000.000 n/a IBM Basic Version A3.40, float (!) and integer (%) variables used
PCem/IBM 5150/8088@4.77 Real*8 102 310,000.000 2,169,000.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
PCem/IBM 5150/8088@4.77 Real*4 102 313,000.000 1,475,000.000 n/a IBM PC Basic C1.10
IBM 5150/8088@4.77 Real*4 102 322,000.000 1,491,000.000 n/a IBM PC Basic C1.10
MartyPC Web Edition 0.40/IBM 5160/8088@4.77 Real*4 102 325,000.000 1,525,000.000 n/a IBM PC Basic C1.10
Pocket 8086/V30@4.77 Real*6 103 327,941.895 873,962.402 n/a Turbo Pascal 1.00A
PCjs/IBM 5150/8088@4.77 Real*8 102 356,000.000 3,172,000.000 n/a IBM PC Basic C1.00, double (#) and integer (%) variables used
Apple//e/65C02@1 Real*5 102 409,000.000 3,322,000.000 n/a Applesoft BASIC
AppleWin/Apple//e/65C02@1 Real*5 102 413,000.000 3,334,000.000 n/a Applesoft BASIC
86Box/IBM 5150/8088@4.77 Real*8 102 433,959.961 3,872,680.664 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used, PC timer used
Pocket 8086/P8088-1@4.77 Real*8 102 439,453.000 3,894,653.320 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used, PC timer used
Pocket 8086/P8088-1@4.77 Real*8 103 454,700.000 3,964,300.000 n/a IBM Basic Version A3.40, double (#) and integer (%) variables used
Commodore PET/MOS 6502@1 Real*5 102 462,000.000 3,750,000.000 n/a Commodore BASIC
PCem/IBM 5160/8088@4.77 Real*8 102 472,000.000 3,922,000.000 n/a IBM Basic Version A3.40, double (#) and integer (%) variables used
MartyPC Web Edition 0.40/IBM 5160/8088@4.77 Real*8 102 472,412.109 4,163,818.359 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used, PC timer used
Pocket 8086/P8088-1@4.77 Real*8 102 475,000.000 3,925,000.000 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used
Pocket 8086/P8088-1@4.77 Real*8 102 475,000.000 3,969,000.000 n/a IBM Basic Version A3.40, double (#) and integer (%) variables used
PCem/IBM 5150/8088@4.77 Real*8 102 478,000.000 3,806,000.000 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used
86Box/IBM 5160/8088@4.77 Real*8 102 479,000.000 3,956,000.000 n/a IBM Basic Version A3.40, double (#) and integer (%) variables used
86Box/IBM 5150/8088@4.77 Real*8 102 482,000.000 3,919,000.000 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used
IBM 5150/8088@4.77 Real*8 102 503,000.000 4,153,000.000 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used
MartyPC Web Edition 0.40/IBM 5160/8088@4.77 Real*8 102 506,000.000 4,200,000.000 n/a IBM PC Basic C1.10, double (#) and integer (%) variables used
Sinclair ZX81/Z80@3.25 Real*5 102 593,000.000 2,359,000.000 n/a Sinclair BASIC/Fast mode
Eighty One/Sinclair ZX81/Z80@3.25 Real*5 102 603,000.000 2,394,000.000 n/a Sinclair BASIC/Fast mode
BK-0010-01/K1801ВМ1@3 Real*8 102 997,000.000 2,325,000.000 n/a Vilnius BASIC
Citizen SRP-325G   102 1,982,000.000 26,872,000.000 n/a  
Uniel US-54   102 2,300,000.000 4,091,000.000 n/a Casio FX-3950P clone?
Sinclair ZX81/Z80@3.25 Real*5 102 2,328,000.000 9,428,000.000 n/a Sinclair BASIC/Slow mode
Eighty One/Sinclair ZX81/Z80@3.25 Real*5 102 2,369,000.000 9,569,000.000 n/a Sinclair BASIC/Slow mode
Citizen SRP-265   102 4,253,000.000 n/a n/a Manual restart - no loops/condition jumps
MK-85/KA1013VM1   102 5,654,000.000 16,050,000.000 n/a Turbo mode
Calculators3000/MK-61/K745IK1302-2   101 15,440,000.000 135,380,000.000 n/a  
mk61emuweb/MK-61/K745IK1302-2   101 18,750,000.000 172,590,000.000 n/a  
MK-85/KA1013VM1   102 28,231,000.000 79,916,000.000 n/a  
MK-61/K745IK1302-2   101 64,160,000.000 606,090,000.000 n/a  
B3-21   101 65,880,000.000 417,720,000.000 n/a  

Top.Mail.Ru
Сайт создан в системе uCoz