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 are very simple and may be performed even on many programmable calculators. They calculates the area under half the period of the sine function by using rectangle method, the simplest method of integration.

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.

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 calculations with single precision (Real*4) N = 107 is too large and the error of the result is significant (2.023 instead of 2.0), but here the time is determined, not the area.

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 vesions 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.

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:

System/CPU Accuracy N FPU/Lib Soft-sin Soft-all Remark
Core i5-4690S@3200 Real*4 107 0.071 0.195 2.211 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 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 REAL4, Soft-all/NOFPU, correct rounding?
Core 2 Duo E6850@3000 Real*8 107 0.384 1.483 10.207  
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*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 Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*4 107 0.604 2.032 67.731 Borland C++ 3.1/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 0.604 3.021 249.225 Borland C++ 3.1 + asm/16 bit, set 87=Y, Soft-all/NOFPU, correct rounding?
Core i5-4690S@3200 Real*8 107 0.604 3.021 359.692 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 REAL4
Athlon 64-3200+@2000 Real*8 107 0.657 1.704 16.317  
Pentium 4@3000 Real*8 107 0.695 2.628 17.786 gcc/64 bit
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?
Pentium 4@1600 Real*4 107 1.166 1.898 14.766 REAL4, No-div
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?
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?
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?
K6@200 Real*4 107 7.441 41.499 887.837 Borland C++ 5.5.1, Soft-all/NOFPU, inefficient div64/32 implementation, correct rounding?
K6@200 Real*8 107 7.441 65.033 1,137.405 Borland C++ 5.5.1, Soft-all/NOFPU, 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 136.496 gcc 4.8.1, REAL4, Soft-all/NOFPU, div64/32, correct rounding?
K6@200 Real*4 107 8.850 42.240 191.640 gcc 4.8.1, REAL4, cmp-sub-shl
K6@200 Real*8 106 9.338 76.355 2,881.714 Borland C++ 3.1 + asm/16bit, set 87=Y
K6@200 Real*8 106 9.338 97.778 2,854.248 Borland C++ 3.1 + asm/16bit, set 87=Y, Soft-all/NOFPU, correct rounding?
K6@200 Real*8 106 9.338 97.778 4,535.706 Borland C++ 3.1/16bit, 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
STM32F411RET6@100 Real*4 105 14.700 74.200 288.100 FPU, REAL4
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.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.290 55.750 961.192 gcc 4.8.1, 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?
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
K6@200 Real*4 106 254.883 1,590.820 782.227 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 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*8 106 266.418 2,826.233 4,489.014 Borland C++ 3.1/16 bit, set 87=N, Soft-all/NOFPU, correct rounding?
STM32F411RET6@100 Real*8 105 284.800 1,250.400 1,623.600  
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
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
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@8 Real*4 104 3,295.898 12,414.551 107,995.605 80287/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,350.830 20,434.570 212,420.654 80287/Borland C++ 3.1 + asm
Am286@8 Real*8 104 3,350.830 20,654.297 217,474.365 80287/Borland C++ 3.1 + asm, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,350.830 20,654.296 472,137.451 80287/Borland C++ 3.1, Soft-all/NOFPU, correct rounding?
Am286@8 Real*8 104 3,350.830 21,148.682 530,200.195 80287/Turbo C 2.0
Am286@8 Real*4 104 3,405.762 14,886.475 108,984.375 80287/Turbo C 2.0
Am286@8 Real*8 104 4,724.121 22,357.178 n/a 80287/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*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/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?
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 80287/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 80287/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 80287/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
V30@4.77 Real*6 103 39,001.465 136,230.469 n/a Borland Pascal 7.0
V30@4.77 Real*4 103 56,030.273 270,263.672 299,377.441 Borland C++ 3.1
V30@4.77 Real*4 103 56,030.273 270,263.672 327,392.578 Borland C++ 3.1, correct rounding?
V30@4.77 Real*8 103 56,579.590 433,410.645 638,854.981 Borland C++ 3.1 + asm
V30@4.77 Real*8 103 56,579.590 433,410.645 652,587.891 Borland C++ 3.1 + asm, correct rounding?
V30@4.77 Real*8 103 56,579.590 433,410.645 1,463,928.223 Borland C++ 3.1, correct rounding?
Am286@8 Real*4 103 61,000.000 280,000.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
V30@4.77 Real*8 103 62,622.070 491,088.867 1,645,202.637 Turbo C 2.0
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
V30@4.77 Real*6 103 83,496.094 199,401.856 n/a Turbo Pascal 5.0
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
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
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
V30@4.77 Real*4 103 168,500.000 743,400.000 n/a GW-Basic 3.22, float (!) and integer (%) variables used
V30@4.77 Real*4 103 184,100.000 845,900.000 n/a IBM Basic Version A3.40, float (!) and integer (%) variables used
V30@4.77 Real*8 103 186,200.000 1,320,300.000 n/a GW-Basic 3.22, double (#) and integer (%) variables used
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
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
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
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
PCjs/IBM 5150/8088@4.77 Real*8 102 309,000.000 2,115,000.000 n/a GW-Basic 3.22
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
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
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
Commodore PET/MOS 6502@1 Real*5 102 462,000.000 3,750,000.000 n/a Commodore BASIC
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
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
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  
B3-21   101 63,350,000.000 445,780,000.000 n/a  
MK-61/K745IK1302-2   101 64,160,000.000 606,090,000.000 n/a  

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