mgriebling/doubles
A quad-double number (QDouble) is an unevaluated sum of four IEEE double-precision numbers, capable of representing at least 212 bits or 62 digits of significand.
Timing Double
Operation | Time | MOPs ---------:|-------------:|--------------: add: | 0.000212 μs | 4705.8824 mop/s mul: | 0.000215 μs | 4651.1628 mop/s div: | 0.000748 μs | 1337.7926 mop/s sqrt: | 0.001200 μs | 833.3333 mop/s sin: | 0.018250 μs | 54.7945 mop/s log: | 0.001000 μs | 1000.0000 mop/s dot: | 0.000214 μs | 4678.3626 mop/s exp: | 0.001000 μs | 1000.0000 mop/s cos: | 0.030750 μs | 32.5203 mop/s
Timing DDouble
Operation | Time | MOPs ---------:|-------------:|--------------: add: | 0.012675 μs | 78.8955 mop/s mul: | 0.005585 μs | 179.0510 mop/s div: | 0.009395 μs | 106.4396 mop/s sqrt: | 0.042325 μs | 23.6267 mop/s sin: | 0.454000 μs | 2.2026 mop/s log: | 0.341000 μs | 2.9326 mop/s dot: | 0.004325 μs | 231.2139 mop/s exp: | 0.368000 μs | 2.7174 mop/s cos: | 0.460750 μs | 2.1704 mop/s
Timing QDouble
Operation | Time | MOPs ---------:|-------------:|--------------: add: | 0.053525 μs | 18.6829 mop/s mul: | 0.124817 μs | 8.0117 mop/s div: | 0.527525 μs | 1.8956 mop/s sqrt: | 1.626325 μs | 0.6149 mop/s sin: | 5.922500 μs | 0.1688 mop/s log: |11.939000 μs | 0.0838 mop/s dot: | 0.046288 μs | 21.6041 mop/s exp: | 3.253000 μs | 0.3074 mop/s cos: | 5.614750 μs | 0.1781 mop/s
C++ Benchmarks
Timing double
Operation | Time | MOPs ---------:|-------------:|--------------: add: | 0.000208 us | 4819.2771 mop/s mul: | 0.000210 us | 4761.9048 mop/s div: | 0.000733 us | 1365.1877 mop/s sqrt: | 0.001150 us | 869.5652 mop/s sin: | 0.007250 us | 137.9310 mop/s log: | 0.005000 us | 200.0000 mop/s dot: | 0.000209 us | 4790.4192 mop/s exp: | 0.005000 us | 200.0000 mop/s cos: | 0.007500 us | 133.3333 mop/s
Timing dd_real
Operation | Time | MOPs ---------:|-------------:|--------------: add: | 0.002230 us | 448.4305 mop/s mul: | 0.002975 us | 336.1345 mop/s div: | 0.006390 us | 156.4945 mop/s sqrt: | 0.011300 us | 88.4956 mop/s sin: | 0.236500 us | 4.2283 mop/s log: | 0.287000 us | 3.4843 mop/s dot: | 0.002363 us | 423.2804 mop/s exp: | 0.251000 us | 3.9841 mop/s cos: | 0.254000 us | 3.9370 mop/s
Timing qd_real
Operation | Time | MOPs ---------:|-------------:|--------------: add: | 0.021325 us | 46.8933 mop/s mul: | 0.044258 us | 22.5950 mop/s div: | 0.256070 us | 3.9052 mop/s sqrt: | 0.666375 us | 1.5007 mop/s sin: | 2.489750 us | 0.4016 mop/s log: | 8.771000 us | 0.1140 mop/s dot: | 0.037615 us | 26.5851 mop/s exp: | 2.707000 us | 0.3694 mop/s cos: | 2.527750 us | 0.3956 mop/s
Package Metadata
Repository: mgriebling/doubles
Default branch: main
README: README.md