Skip to content

Comparisons — Roots and Exponents

Speed of decimal-scaled against the peer decimal crates on the root and exponential functions. See the Comparisons overview for the time units, the per-library precision model, and how to read the timings.

cbrt

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 9.16 µs · · ·
D38 8.96 µs 11.3 µs 11.3 µs ·
D57 1.04 µs 1.33 µs 1.67 µs ·
D76 1.34 µs 1.59 µs 2 µs ·
D115 3.08 µs 4.61 µs 5.38 µs ·
D153 3.59 µs 4.98 µs 5.96 µs 14.6 µs
D230 5.54 µs 7.58 µs 8.34 µs 22.2 µs
D307 7.25 µs 9.05 µs 10.6 µs 28.8 µs
D462 12 µs 14.2 µs 16.6 µs 42.1 µs
D616 18.2 µs 19.3 µs 22.9 µs 52.1 µs
D924 34.4 µs 33.8 µs 40.9 µs 77.1 µs
D1232 51.8 µs 52.8 µs 63.3 µs 109 µs

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 3.53 ms 2.4e+02× @152
10 ns100 ns1 µs10 µs100 µs1 ms10 ms100 ms1 s183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnum
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

exp

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 8.31 µs · · ·
D38 8.37 µs 10.1 µs 11.4 µs ·
D57 4.97 µs 6.02 µs 7 µs ·
D76 6.13 µs 7.19 µs 8.14 µs ·
D115 24 µs 18.7 µs 19.5 µs ·
D153 25.3 µs 27.1 µs 20.7 µs 82.8 µs
D230 35.6 µs 39.6 µs 23.7 µs 92 µs
D307 54.3 µs 60.9 µs 26 µs 104 µs
D462 55.5 µs 64.6 µs 33.4 µs 113 µs
D616 87.3 µs 98.4 µs 45.2 µs 178 µs
D924 130 µs 145 µs 64.3 µs 251 µs
D1232 220 µs 231 µs 98.9 µs 387 µs

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 593 µs 7.2× @152
decimal-rs 38 11.5 µs 1× @37
g_math 38 297 µs 26× @37
rust_decimal 28 5.61 µs 0.56× @28
10 ns100 ns1 µs10 µs100 µs1 ms10 ms100 ms183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnumdecimal-rsg_mathrust_decimal
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

exp2

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 8.33 µs · · ·
D38 8.36 µs 10.2 µs 11.3 µs ·
D57 11.8 µs 14.1 µs 15.8 µs ·
D76 11.3 µs 13.1 µs 15 µs ·
D115 38.8 µs 48 µs 49.8 µs ·
D153 39.7 µs 51 µs 53.3 µs 122 µs
D230 59.5 µs 74.8 µs 86.5 µs 189 µs
D307 85.6 µs 110 µs 120 µs 270 µs
D462 87.6 µs 114 µs 128 µs 280 µs
D616 206 µs 251 µs 315 µs 738 µs
D924 238 µs 289 µs 360 µs 804 µs
D1232 714 µs 1.12 ms 1.39 ms 3.16 ms

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 2.24 ms 18× @152
100 ns1 µs10 µs100 µs1 ms10 ms100 ms183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnum
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

hypot

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 291 ns · · ·
D38 451 ns 571 ns 591 ns ·
D57 606 ns 852 ns 1.03 µs ·
D76 806 ns 1.01 µs 1.26 µs ·
D115 1.92 µs 2.79 µs 3.05 µs ·
D153 2.91 µs 3.9 µs 4.28 µs 6.59 µs
D230 5.82 µs 7.32 µs 7.62 µs 11.6 µs
D307 8.42 µs 9.85 µs 10.6 µs 16.1 µs
D462 16.8 µs 17 µs 20.8 µs 30.3 µs
D616 25.3 µs 26.5 µs 30.5 µs 44.9 µs
D924 46.8 µs 45.2 µs 59.2 µs 81.1 µs
D1232 81.4 µs 77 µs 97.3 µs 132 µs
100 ns1 µs10 µs100 µs1 ms10 ms100 ms183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 prec
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

ln

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 8.09 µs · · ·
D38 8.3 µs 10.3 µs 11.7 µs ·
D57 2.33 µs 2.92 µs 3.5 µs ·
D76 2.31 µs 2.85 µs 3.46 µs ·
D115 4.41 µs 5.3 µs 6.44 µs ·
D153 4.79 µs 6.07 µs 7.23 µs 39.1 µs
D230 6.05 µs 8.4 µs 9.39 µs 41.1 µs
D307 7.94 µs 10.4 µs 12 µs 39.7 µs
D462 15.3 µs 19.1 µs 22.2 µs 52.3 µs
D616 18.5 µs 23.5 µs 26.9 µs 60 µs
D924 31.5 µs 37.4 µs 46 µs 90.3 µs
D1232 48.9 µs 58 µs 67 µs 129 µs

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 10.5 ms 2.7e+02× @152
decimal-rs 38 6.81 µs 0.58× @37
g_math 38 369 µs 32× @37
rust_decimal 28 11.7 µs 1.1× @28
100 ns1 µs10 µs100 µs1 ms10 ms100 ms1 s183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnumdecimal-rsg_mathrust_decimal
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

log

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 21.9 µs · · ·
D38 21.3 µs 26.6 µs 31.7 µs ·
D57 13.8 µs 16.4 µs 18.3 µs ·
D76 12.6 µs 15.4 µs 17.2 µs ·
D115 38.9 µs 45.3 µs 50.2 µs ·
D153 40.2 µs 46.8 µs 52.4 µs 173 µs
D230 51.2 µs 60.9 µs 67.6 µs 208 µs
D307 81.2 µs 94.7 µs 105 µs 279 µs
D462 83.8 µs 98.5 µs 110 µs 284 µs
D616 136 µs 158 µs 176 µs 415 µs
D924 213 µs 248 µs 275 µs 617 µs
D1232 293 µs 338 µs 382 µs 822 µs
1 µs10 µs100 µs1 ms10 ms100 ms183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 prec
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

log10

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 13.6 µs · · ·
D38 13.5 µs 16.6 µs 18.3 µs ·
D57 8.25 µs 9.41 µs 10.4 µs ·
D76 7.48 µs 8.82 µs 9.76 µs ·
D115 23.5 µs 26.2 µs 28.6 µs ·
D153 23.5 µs 26.8 µs 29.6 µs 90.2 µs
D230 30.1 µs 34.9 µs 38.3 µs 109 µs
D307 48.1 µs 53.9 µs 59.3 µs 149 µs
D462 50 µs 56.6 µs 62.7 µs 151 µs
D616 80.9 µs 91 µs 100 µs 222 µs
D924 128 µs 144 µs 160 µs 329 µs
D1232 177 µs 198 µs 218 µs 441 µs

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 10.4 ms 1.2e+02× @152
rust_decimal 28 12.8 µs 0.77× @28
100 ns1 µs10 µs100 µs1 ms10 ms100 ms1 s183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnumrust_decimal
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

log2

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 14.2 µs · · ·
D38 13.5 µs 16.8 µs 20.2 µs ·
D57 8.4 µs 9.7 µs 10.5 µs ·
D76 7.71 µs 8.97 µs 9.91 µs ·
D115 24.1 µs 26.6 µs 29 µs ·
D153 24 µs 27 µs 29.8 µs 91.8 µs
D230 30.9 µs 35.4 µs 38.6 µs 110 µs
D307 49.1 µs 54.4 µs 59.9 µs 150 µs
D462 51.4 µs 57.5 µs 63.6 µs 153 µs
D616 84.1 µs 92.7 µs 101 µs 224 µs
D924 134 µs 145 µs 161 µs 334 µs
D1232 186 µs 198 µs 223 µs 447 µs

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 10.4 ms 1.1e+02× @152
100 ns1 µs10 µs100 µs1 ms10 ms100 ms1 s183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnum
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

powf

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 14.7 µs · · ·
D38 14.8 µs 19.8 µs 23.1 µs ·
D57 12.5 µs 15.7 µs 17.8 µs ·
D76 11.4 µs 14.5 µs 16.3 µs ·
D115 37.3 µs 46.9 µs 52.2 µs ·
D153 37.1 µs 47.2 µs 53 µs 156 µs
D230 50.4 µs 66.2 µs 73.6 µs 201 µs
D307 74.6 µs 99 µs 110 µs 266 µs
D462 82.5 µs 109 µs 124 µs 288 µs
D616 139 µs 211 µs 235 µs 473 µs
D924 223 µs 368 µs 409 µs 754 µs
D1232 313 µs 558 µs 624 µs 1.33 ms

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 12.7 ms 81× @152
decimal-rs 38 18.4 µs 0.8× @37
g_math 38 738 µs 32× @37
rust_decimal 28 16.5 µs 0.83× @28
10 ns100 ns1 µs10 µs100 µs1 ms10 ms100 ms1 s183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnumdecimal-rsg_mathrust_decimal
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.

sqrt

decimal-scaled — median time per call at each comparison scale (· = the tier cannot hold that precision):

Width @17 prec @28 prec @37 prec @152 prec
D18 280 ns · · ·
D38 1.5 µs 3.06 µs 3.54 µs ·
D57 791 ns 1.12 µs 1.23 µs ·
D76 962 ns 1.25 µs 1.39 µs ·
D115 2.13 µs 3.05 µs 3.31 µs ·
D153 2.48 µs 3.44 µs 4.27 µs 7.38 µs
D230 4.27 µs 5.8 µs 6.27 µs 11.4 µs
D307 5.69 µs 7.07 µs 8.21 µs 15.1 µs
D462 10.3 µs 11.8 µs 14 µs 24.8 µs
D616 15.6 µs 17 µs 20 µs 35.5 µs
D924 29.4 µs 30.1 µs 37.1 µs 59.6 µs
D1232 47.1 µs 48 µs 57.8 µs 88.5 µs

peers (fixed precision; each timed beside the matching decimal-scaled line):

Peer Precision Median vs decimal-scaled
fastnum 154 190 µs 26× @152
decimal-rs 38 6.26 µs 1.8× @37
g_math 38 278 µs 78× @37
rust_decimal 28 2.84 µs 0.93× @28
100 ns1 µs10 µs100 µs1 ms10 ms100 ms1 s183857761151532303074626169241232significant-digit width (log)decimal-scaled @17 precdecimal-scaled @28 precdecimal-scaled @37 precdecimal-scaled @152 precfastnumdecimal-rsg_mathrust_decimal
decimal-scaled timed at each comparison scale its tier can hold (17, 28, 37, 152) across its widths — one line each, with a shaded min–max band; every fixed-precision peer is one diamond at its significant-digit capacity with a min–max whisker. Arithmetic is width-bound, so its scale-lines nearly overlap; transcendentals spread by precision.