==================================================================================================== SUMMARY (best-of-N seconds; speedup = numpy_quicksort_sec / spcmp_reported_sec) ==================================================================================================== type n spcmp cpp np_quick np_merge speedup ---------------------------------------------------------------------------------------------- uniform_random 1,000 130.0us 22.3us 3.5us 24.9us 0.03x normal 1,000 136.0us 12.8us 2.9us 25.1us 0.02x sorted_ascending 1,000 1.0us 4.3us 4.5us 1.6us 4.54x sorted_descending 1,000 1.0us 3.1us 3.1us 0.9us 3.09x nearly_sorted 1,000 37.0us 6.3us 3.2us 6.4us 0.09x nearly_reverse_sorted 1,000 270.0us 6.3us 3.3us 11.0us 0.01x few_unique 1,000 127.0us 10.2us 2.3us 20.2us 0.02x all_same 1,000 0.0us 3.5us 1.1us 1.3us n/a sawtooth 1,000 0.0us 6.4us 4.2us 1.9us n/a zigzag 1,000 182.0us 8.5us 3.4us 16.7us 0.02x exponential 1,000 155.0us 42.8us 2.6us 24.2us 0.02x clustered 1,000 140.0us 21.2us 3.3us 25.2us 0.02x block_shuffled 1,000 152.0us 41.5us 2.9us 28.0us 0.02x outliers 1,000 133.0us 17.0us 3.3us 29.4us 0.03x mixed_sign 1,000 181.0us 43.9us 2.9us 27.2us 0.02x pipe_organ 1,000 153.0us 23.1us 3.5us 3.4us 0.02x valley 1,000 133.0us 14.6us 2.7us 2.8us 0.02x duplicate_heavy_tail 1,000 0.0us 6.2us 2.8us 1.2us n/a subnormals 1,000 151.0us 44.3us 3.1us 23.0us 0.02x with_nans 1,000 163.0us n/a 3.0us 29.0us 0.02x uniform_random 10,000 258.0us 433.9us 32.2us 456.5us 0.12x normal 10,000 256.0us 428.3us 41.1us 509.1us 0.16x sorted_ascending 10,000 4.0us 57.8us 31.2us 8.3us 7.79x sorted_descending 10,000 6.0us 69.3us 28.7us 5.5us 4.79x nearly_sorted 10,000 112.0us 89.3us 46.4us 83.8us 0.41x nearly_reverse_sorted 10,000 151.0us 171.3us 34.2us 93.4us 0.23x few_unique 10,000 198.0us 166.6us 11.2us 236.6us 0.06x all_same 10,000 4.0us 48.7us 6.7us 10.0us 1.67x sawtooth 10,000 131.0us 237.6us 33.2us 35.4us 0.25x zigzag 10,000 99.0us 229.4us 28.0us 82.7us 0.28x exponential 10,000 74.68ms 430.7us 29.4us 517.9us 0.00x clustered 10,000 8.14ms 433.6us 28.5us 484.0us 0.00x block_shuffled 10,000 236.0us 483.3us 38.2us 325.7us 0.16x outliers 10,000 212.0us 463.6us 35.5us 524.0us 0.17x mixed_sign 10,000 210.0us 486.8us 73.7us 532.8us 0.35x pipe_organ 10,000 327.0us 449.1us 35.8us 18.7us 0.11x valley 10,000 5.11ms 457.8us 76.0us 27.2us 0.01x duplicate_heavy_tail 10,000 4.0us 63.3us 32.7us 11.7us 8.18x subnormals 10,000 1.03ms 518.2us 38.0us 527.3us 0.04x with_nans 10,000 154.0us n/a 27.5us 511.6us 0.18x uniform_random 100,000 695.0us 6.14ms 422.2us 7.60ms 0.61x normal 100,000 427.0us 6.34ms 416.3us 6.89ms 0.97x sorted_ascending 100,000 42.0us 740.7us 444.7us 70.8us 10.59x sorted_descending 100,000 72.0us 546.0us 350.7us 292.0us 4.87x nearly_sorted 100,000 21.64ms 2.13ms 431.5us 1.11ms 0.02x nearly_reverse_sorted 100,000 7.99ms 1.95ms 390.5us 1.57ms 0.05x few_unique 100,000 303.0us 1.76ms 134.5us 2.66ms 0.44x all_same 100,000 41.0us 726.8us 45.1us 66.8us 1.10x sawtooth 100,000 1.35ms 2.36ms 425.7us 725.4us 0.32x zigzag 100,000 179.0us 2.32ms 420.8us 1.16ms 2.35x exponential 100,000 30.43ms 5.98ms 409.6us 7.03ms 0.01x clustered 100,000 420.0us 6.15ms 412.4us 6.65ms 0.98x block_shuffled 100,000 686.0us 4.14ms 381.0us 3.48ms 0.56x outliers 100,000 31.86ms 6.41ms 418.1us 7.44ms 0.01x mixed_sign 100,000 3.76ms 6.34ms 440.3us 6.77ms 0.12x pipe_organ 100,000 486.0us 6.52ms 553.2us 255.9us 1.14x valley 100,000 905.0us 6.41ms 433.4us 262.7us 0.48x duplicate_heavy_tail 100,000 45.0us 870.9us 548.9us 76.1us 12.20x subnormals 100,000 4.94ms 6.18ms 394.7us 6.55ms 0.08x with_nans 100,000 562.0us n/a 556.8us 7.63ms 0.99x uniform_random 1,000,000 1.33ms 79.14ms 5.37ms 87.71ms 4.03x normal 1,000,000 1.49ms 75.31ms 5.12ms 93.30ms 3.43x sorted_ascending 1,000,000 520.0us 10.85ms 5.88ms 885.4us 11.31x sorted_descending 1,000,000 857.0us 8.43ms 6.50ms 12.11ms 7.58x nearly_sorted 1,000,000 8.50ms 20.53ms 5.24ms 15.82ms 0.62x nearly_reverse_sorted 1,000,000 2.22ms 23.67ms 5.10ms 27.71ms 2.29x few_unique 1,000,000 938.0us 20.43ms 1.47ms 32.36ms 1.57x all_same 1,000,000 509.0us 7.80ms 674.0us 754.9us 1.32x sawtooth 1,000,000 1.94ms 26.31ms 4.00ms 12.76ms 2.07x zigzag 1,000,000 7.12ms 29.28ms 5.30ms 17.18ms 0.74x exponential 1,000,000 39.67ms 68.13ms 5.09ms 82.87ms 0.13x clustered 1,000,000 51.37ms 70.27ms 5.13ms 89.50ms 0.10x block_shuffled 1,000,000 6.97ms 45.52ms 6.59ms 44.46ms 0.95x outliers 1,000,000 46.87ms 86.81ms 6.85ms 103.92ms 0.15x mixed_sign 1,000,000 3.61ms 85.19ms 6.65ms 99.80ms 1.84x pipe_organ 1,000,000 1.66ms 76.92ms 5.68ms 6.94ms 3.43x valley 1,000,000 8.09ms 72.76ms 4.89ms 6.36ms 0.60x duplicate_heavy_tail 1,000,000 442.0us 10.43ms 7.57ms 818.8us 17.12x subnormals 1,000,000 43.37ms 70.22ms 5.18ms 80.71ms 0.12x with_nans 1,000,000 2.02ms n/a 4.69ms 82.76ms 2.32x uniform_random 10,000,000 19.28ms 938.42ms 67.56ms 1.086s 3.50x normal 10,000,000 15.54ms 818.73ms 66.38ms 1.048s 4.27x sorted_ascending 10,000,000 5.02ms 136.08ms 67.77ms 8.19ms 13.50x sorted_descending 10,000,000 9.05ms 104.62ms 68.24ms 198.66ms 7.54x nearly_sorted 10,000,000 27.54ms 225.19ms 65.87ms 208.40ms 2.39x nearly_reverse_sorted 10,000,000 27.31ms 289.62ms 63.84ms 314.41ms 2.34x few_unique 10,000,000 17.15ms 222.45ms 18.87ms 383.58ms 1.10x all_same 10,000,000 4.48ms 101.61ms 7.50ms 6.92ms 1.67x sawtooth 10,000,000 113.49ms 280.51ms 52.24ms 147.41ms 0.46x zigzag 10,000,000 15.03ms 289.64ms 66.14ms 132.63ms 4.40x exponential 10,000,000 25.95ms 818.64ms 62.05ms 1.021s 2.39x clustered 10,000,000 27.65ms 609.03ms 52.63ms 821.05ms 1.90x block_shuffled 10,000,000 15.07ms 414.43ms 70.73ms 391.52ms 4.69x outliers 10,000,000 31.39ms 855.88ms 61.50ms 1.038s 1.96x mixed_sign 10,000,000 19.81ms 851.50ms 89.84ms 1.136s 4.53x pipe_organ 10,000,000 22.34ms 833.95ms 69.97ms 112.98ms 3.13x valley 10,000,000 22.92ms 853.21ms 70.27ms 112.76ms 3.07x duplicate_heavy_tail 10,000,000 4.80ms 129.27ms 107.63ms 6.98ms 22.43x subnormals 10,000,000 437.75ms 729.58ms 65.51ms 923.82ms 0.15x with_nans 10,000,000 22.20ms n/a 68.34ms 1.051s 3.08x uniform_random 100,000,000 169.92ms 8.220s 810.68ms 12.658s 4.77x normal 100,000,000 183.45ms 8.671s 789.91ms 12.666s 4.31x sorted_ascending 100,000,000 45.43ms 1.730s 822.85ms 73.53ms 18.11x sorted_descending 100,000,000 94.07ms 1.554s 776.82ms 3.227s 8.26x nearly_sorted 100,000,000 276.80ms 3.037s 846.18ms 2.581s 3.06x nearly_reverse_sorted 100,000,000 190.12ms 2.856s 837.05ms 4.401s 4.40x few_unique 100,000,000 101.57ms 2.156s 152.00ms 3.557s 1.50x all_same 100,000,000 43.61ms 1.007s 66.96ms 71.66ms 1.54x sawtooth 100,000,000 679.34ms 2.459s 522.25ms 1.796s 0.77x zigzag 100,000,000 120.77ms 3.033s 690.03ms 1.454s 5.71x exponential 100,000,000 178.61ms 8.160s 819.26ms 13.207s 4.59x clustered 100,000,000 197.65ms 5.074s 422.91ms 8.658s 2.14x block_shuffled 100,000,000 186.05ms 4.432s 826.73ms 4.023s 4.44x outliers 100,000,000 218.38ms 8.212s 826.88ms 12.830s 3.79x mixed_sign 100,000,000 197.60ms 9.440s 738.05ms 11.870s 3.74x pipe_organ 100,000,000 179.88ms 8.356s 949.66ms 1.861s 5.28x valley 100,000,000 181.89ms 7.961s 856.95ms 1.844s 4.71x duplicate_heavy_tail 100,000,000 47.83ms 1.519s 1.221s 73.88ms 25.52x subnormals 100,000,000 1.727s 6.403s 644.49ms 10.594s 0.37x with_nans 100,000,000 268.74ms n/a 927.36ms 13.492s 3.45x Full results written to results.csv (.venv) swapnopam@Prime:/mnt/c/Users/Swapnopam/Desktop/Prog/spcmp_update/test$