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>
|
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
|
|
|
Core i5-4690S@3200 (+) |
Real*8 |
107
|
0.494
|
2.582
|
213.135
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
0.494
|
3.076
|
224.890
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
0.494
|
3.076
|
411.877
|
|
|
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
|
|
|
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
|
|
|
Core i5-4690S@3200/FreeDOS (+) |
Real*8 |
107
|
0.604
|
3.021
|
250.488
|
|
| Core i5-4690S@3200/FreeDOS | Real*8 |
107
|
0.604
|
3.021
|
359.308
|
|
|
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
|
|
|
Athlon 64-3200+@2000 (+) |
Real*8 |
107
|
0.989
|
6.921
|
246.368
|
|
| Athlon 64-3200+@2000 | Real*8 |
107
|
0.989
|
6.921
|
459.064
|
|
| 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
|
|
| Pentium 4@1600 | Real*8 |
107
|
2.637
|
17.084
|
1,206.024
|
|
| 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
|
|
|
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
|
|
|
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
|
|
| K6@200 | Real*4 |
107
|
8.190
|
102.660
|
521.960
|
|
| 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
|
|
|
K6@200 (+) |
Real*4 |
106
|
8.789
|
65.369
|
797.607
|
|
| 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
|
|
|
K6@200 (+) |
Real*8 |
106
|
9.338
|
97.778
|
2,854.248
|
|
| K6@200 | Real*8 |
106
|
9.338
|
97.778
|
4,535.706
|
|
| K6@200 | Real*8 |
106
|
9.338
|
76.355
|
4,689.514
|
|
|
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
|
|
| 86Box/Pentium MMX@166 | Real*8 |
106
|
11.536
|
97.229
|
3,030.029
|
|
|
Pentium MMX@166 (+) |
Real*8 |
106
|
11.536
|
97.778
|
2,742.188
|
|
| Pentium MMX@166 | Real*8 |
106
|
11.536
|
97.778
|
4,742.249
|
|
| 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
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
16.315
|
217.365
|
306.903
|
|
| Core i5-4690S@3200 | Real*4 |
107
|
16.864
|
144.031
|
58.502
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
16.974
|
229.614
|
224.890
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
16.974
|
229.614
|
411.877
|
|
| Core i5-4690S@3200 | Real*4 |
107
|
18.622
|
158.313
|
67.731
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
18.842
|
249.939
|
249.225
|
|
| Core i5-4690S@3200 | Real*8 |
107
|
18.842
|
249.939
|
359.692
|
|
| Athlon 64-3200+@2000 | Real*8 |
107
|
21.808
|
255.267
|
246.368
|
|
| Athlon 64-3200+@2000 | Real*8 |
107
|
21.808
|
265.267
|
459.064
|
|
| Athlon 64-3200+@2000 | Real*4 |
107
|
21.863
|
165.015
|
89.484
|
|
| K6@200 | Real*8 |
107
|
23.283
|
54.688
|
697.823
|
|
| K6@200 | Real*8 |
107
|
23.283
|
54.688
|
955.934
|
|
| 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
|
|
| K6@200 | Real*8 |
107
|
23.303
|
54.688
|
759.752
|
|
| 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
|
|
| Am486DX2@66 | Real*4 |
106
|
74.200
|
169.100
|
836.000
|
|
| Am486DX2@66 | Real*4 |
106
|
74.200
|
169.200
|
797.000
|
|
| Am486DX2@66 | Real*4 |
106
|
74.200
|
169.200
|
969.400
|
|
| Am486DX2@66 | Real*4 |
106
|
74.700
|
219.200
|
800.800
|
|
| Am486DX2@66 | Real*4 |
106
|
74.700
|
219.200
|
973.800
|
|
|
Am486DX2@66 (+) |
Real*4 |
106
|
75.380
|
228.260
|
1,212.520
|
|
| Am486DX2@66 | Real*4 |
106
|
75.380
|
228.260
|
5,247.270
|
|
|
Am486DX2@66 (+) |
Real*8 |
106
|
76.400
|
334.500
|
6,373.600
|
|
| Am486DX2@66 | Real*8 |
106
|
76.400
|
334.500
|
9,042.400
|
|
| Am486DX2@66 | Real*4 |
106
|
76.900
|
218.600
|
678.900
|
|
| Am486DX2@66 | Real*4 |
106
|
76.900
|
218.600
|
835.400
|
|
|
Am486DX2@66 (+) |
Real*4 |
106
|
76.904
|
288.940
|
4,347.839
|
|
| Am486DX2@66 | Real*4 |
106
|
76.904
|
296.631
|
4,049.561
|
|
| Am486DX2@66 | Real*4 |
106
|
77.400
|
237.300
|
1,625.200
|
|
| Am486DX2@66 | Real*8 |
106
|
77.454
|
463.074
|
12,410.706
|
|
|
Am486DX2@66 (+) |
Real*8 |
106
|
78.003
|
449.890
|
12,245.361
|
|
| Am486DX2@66 | Real*8 |
106
|
78.003
|
449.890
|
20,310.425
|
|
| 86Box/Am486DX2@66 | Real*8 |
106
|
81.848
|
570.190
|
14,408.569
|
|
| Pentium 4@1600 | Real*4 |
107
|
90.033
|
719.714
|
248.785
|
|
| Pentium 4@1600 | Real*8 |
107
|
90.527
|
1,129.724
|
888.904
|
|
| Pentium 4@1600 | Real*8 |
107
|
90.527
|
1,129.724
|
1,206.024
|
|
| Am486DX2@66 | Real*8 |
106
|
128.600
|
248.800
|
3,494.400
|
|
| Am486DX2@66 | Real*8 |
106
|
128.600
|
248.800
|
3,581.100
|
|
| Am486DX2@66 | Real*8 |
106
|
130.700
|
249.300
|
3,268.000
|
|
| Am486DX2@66 | Real*8 |
106
|
130.700
|
249.300
|
4,736.200
|
|
| 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
|
|
| Am486DX2@66 | Real*8 |
106
|
133.500
|
307.000
|
3,661.800
|
|
| Am486DX2@66 | Real*8 |
106
|
134.000
|
306.400
|
3,262.600
|
|
| Am486DX2@66 | Real*8 |
106
|
134.000
|
306.400
|
4,782.900
|
|
| 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
|
|
|
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
|
|
| K6@200 | Real*8 |
106
|
261.475
|
2,206.055
|
4,689.514
|
|
| K6@200 | Real*4 |
106
|
262.024
|
1,723.206
|
797.607
|
|
| K6@200 | Real*8 |
106
|
266.418
|
2,826.233
|
4,489.014
|
|
| 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
|
|
| Pentium MMX@166 | Real*8 |
106
|
325.745
|
3,077.271
|
2,749.328
|
|
| 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
|
|
| Am486DX2@66 | Real*4 |
106
|
1,155.212
|
5,551.392
|
4,049.561
|
|
| Am486DX2@66 | Real*8 |
106
|
1,173.889
|
9,213.135
|
12,245.361
|
|
| Am486DX2@66 | Real*8 |
106
|
1,173.889
|
9,213.135
|
20,310.425
|
|
| Am486DX2@66 | Real*8 |
106
|
1,187.073
|
9,105.469
|
12,410.706
|
|
| Am486DX2@66 | Real*8 |
106
|
1,187.073
|
9,105.469
|
21,437.073
|
|
| PCem/IBM 5170/80286@8 | Real*4 |
103
|
1,318.359
|
11,975.098
|
125,628.662
|
80287/1ws/ |
| PCem/IBM 5170/80286@8 | Real*8 |
103
|
1,428.227
|
19,665.527
|
282,458.496
|
80287/1ws/ |
| 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/ |
|
Am286@16 (+) |
Real*8 |
104
|
2,856.445
|
18,072.510
|
109,643.555
|
P80C287@10.67/ |
| Am286@16 | Real*8 |
104
|
2,856.445
|
18,072.510
|
236,865.234
|
P80C287@10.67/ |
| Am286@16 | Real*4 |
104
|
2,911.377
|
10,437.012
|
71,136.475
|
P80C287@10.67/1ws/ |
| Am286@16 | Real*8 |
104
|
2,966.309
|
18,127.441
|
139,965.820
|
P80C287@10.67/1ws/ |
| Am286@16 | Real*8 |
104
|
2,966.309
|
18,127.441
|
313,714.600
|
P80C287@10.67/1ws/ |
|
Am286@8 (+) |
Real*4 |
104
|
3,295.898
|
12,414.551
|
107,995.605
|
P80C287@10.67/ |
| Am286@8 | Real*8 |
104
|
3,350.830
|
20,434.570
|
212,420.654
|
P80C287@10.67/ |
|
Am286@8 (+) |
Real*8 |
104
|
3,350.830
|
20,654.297
|
217,474.365
|
P80C287@10.67/ |
| Am286@8 | Real*8 |
104
|
3,350.830
|
20,654.296
|
472,137.451
|
P80C287@10.67/ |
| 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/ |
| 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/ |
| Am286@8 | Real*8 |
104
|
3,515.625
|
21,643.066
|
278,283.691
|
P80C287@10.67/1ws/ |
| Am286@8 | Real*8 |
104
|
3,515.625
|
21,643.066
|
626,330.566
|
P80C287@10.67/1ws/ |
| 86Box/IBM 5170/80286@8 | Real*8 |
104
|
3,570.557
|
19,445.801
|
282,403.565
|
80287/1ws/ |
| 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
|
|
| 86Box/Olivetti M24 SP/8086@9.54 | Real*8 |
103
|
4,394.531
|
26,916.504
|
470,764.160
|
|
|
IBM 5160/V20@4.77 (+) |
Real*4 |
104
|
7,525.635
|
24,554.443
|
550,140.381
|
8087/ |
|
IBM 5160/V20@4.77 (+) |
Real*8 |
104
|
7,635.498
|
40,649.414
|
1,077,099.609
|
8087/ |
| IBM 5160/V20@4.77 | Real*8 |
104
|
7,635.498
|
40,649.414
|
2,493,127.441
|
8087/ |
| 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
|
|
| PCem/IBM 5160/8088@4.77 | Real*8 |
103
|
7,690.430
|
39,550.781
|
945,373.535
|
|
| 86Box/IBM 5160/8088@4.77 | Real*4 |
104
|
9,558.105
|
38,616.943
|
581,945.801
|
|
| 86Box/IBM 5160/8088@4.77 | Real*8 |
104
|
9,832.764
|
60,809.326
|
1,169,219.971
|
|
| 86Box/IBM 5160/8088@4.77 | Real*8 |
104
|
9,832.764
|
60,809.326
|
2,565,307.617
|
|
| 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/ |
| Am286@8 | Real*8 |
104
|
19,171.143
|
145,843.506
|
217,474.365
|
P80C287@10.67/ |
| Am286@8 | Real*8 |
104
|
19,171.143
|
145,843.506
|
472,137.451
|
P80C287@10.67/ |
| Am286@8 | Real*8 |
104
|
19,226.074
|
143,865.967
|
212,420.654
|
|
| 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
|
|
| Pocket 8086/V30@4.77 | Real*4 |
103
|
56,030.273
|
270,263.672
|
299,377.441
|
|
| Pocket 8086/V30@4.77 | Real*4 |
103
|
56,030.273
|
270,263.672
|
327,392.578
|
|
| Pocket 8086/V30@4.77 | Real*8 |
103
|
56,579.590
|
433,410.645
|
638,854.981
|
|
| Pocket 8086/V30@4.77 | Real*8 |
103
|
56,579.590
|
433,410.645
|
652,587.891
|
|
| Pocket 8086/V30@4.77 | Real*8 |
103
|
56,579.590
|
433,410.645
|
1,463,928.223
|
|
| 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
|
|
| Pocket 8086/V30@4.77 | Real*6 |
103
|
95,581.055
|
274,108.887
|
n/a
|
|
| PCem/IBM 5160/8088@4.77 | Real*4 |
103
|
97,229.004
|
441,101.074
|
431,213.279
|
|
| PCem/IBM 5160/8088@4.77 | Real*8 |
103
|
97,778.320
|
704,772.949
|
945,373.535
|
|
| PCem/IBM 5160/8088@4.77 | Real*8 |
103
|
97,783.320
|
698,181.152
|
932,739.258
|
|
|
Pocket 8086/P8088-1@4.77 (+) |
Real*4 |
103
|
108,215.332
|
465,270.996
|
555,358.887
|
|
|
Pocket 8086/P8088-1@4.77 (+) |
Real*8 |
103
|
108,764.648
|
743,774.414
|
1,097,534.180
|
|
| Pocket 8086/P8088-1@4.77 | Real*8 |
103
|
108,764.648
|
743,774.414
|
2,451,599.121
|
|
| 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
|
|
| 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
|
|
| 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
|