Comparisons — Trigonometry¶
Speed of decimal-scaled against the peer decimal crates on the trigonometric and
hyperbolic functions. See the Comparisons overview for the time
units, the per-library precision model, and how to read the timings.
acos¶
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 | 72.2 µs | · | · | · |
| D38 | 72.5 µs | 85.5 µs | 104 µs | · |
| D57 | 9.83 µs | 13 µs | 16.5 µs | · |
| D76 | 9.79 µs | 13.2 µs | 16.7 µs | · |
| D115 | 17 µs | 22.4 µs | 27.8 µs | · |
| D153 | 14.8 µs | 22.6 µs | 23.5 µs | 89.8 µs |
| D230 | 19.3 µs | 25.3 µs | 31 µs | 113 µs |
| D307 | 20 µs | 26.5 µs | 32.8 µs | 116 µs |
| D462 | 21.8 µs | 30.8 µs | 35.5 µs | 115 µs |
| D616 | 26.5 µs | 35 µs | 43.3 µs | 131 µs |
| D924 | 33.7 µs | 42 µs | 52.4 µs | 141 µs |
| D1232 | 51.7 µs | 60.9 µs | 79.7 µs | 187 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 557 µs | 5.4× @37 |
acosh¶
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 | 32.8 µs | · | · | · |
| D38 | 51.5 µs | 59 µs | 51.7 µs | · |
| D57 | 41.1 µs | 53 µs | 58.1 µs | · |
| D76 | 41 µs | 53.2 µs | 58 µs | · |
| D115 | 69.4 µs | 123 µs | 148 µs | · |
| D153 | 56.7 µs | 95.5 µs | 113 µs | 209 µs |
| D230 | 72 µs | 126 µs | 151 µs | 769 µs |
| D307 | 73.8 µs | 128 µs | 153 µs | 777 µs |
| D462 | 70.2 µs | 126 µs | 146 µs | 747 µs |
| D616 | 79.7 µs | 135 µs | 163 µs | 789 µs |
| D924 | 83.9 µs | 132 µs | 159 µs | 717 µs |
| D1232 | 108 µs | 169 µs | 203 µs | 892 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 313 µs | 6.1× @37 |
asin¶
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 | 72 µs | · | · | · |
| D38 | 72.2 µs | 85.6 µs | 104 µs | · |
| D57 | 9.84 µs | 12.9 µs | 16.3 µs | · |
| D76 | 9.8 µs | 13.1 µs | 16.4 µs | · |
| D115 | 17.3 µs | 22.3 µs | 27.4 µs | · |
| D153 | 14.8 µs | 22.6 µs | 23.6 µs | 84.3 µs |
| D230 | 19.4 µs | 25.2 µs | 30.9 µs | 113 µs |
| D307 | 19.9 µs | 26.4 µs | 32.3 µs | 115 µs |
| D462 | 21.1 µs | 30.5 µs | 34.9 µs | 120 µs |
| D616 | 26.5 µs | 34.4 µs | 42.9 µs | 130 µs |
| D924 | 33.5 µs | 42.3 µs | 52.3 µs | 139 µs |
| D1232 | 51.3 µs | 60.9 µs | 79.1 µs | 187 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 554 µs | 5.3× @37 |
asinh¶
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 | 39.6 µs | · | · | · |
| D38 | 44.2 µs | 51 µs | 58.4 µs | · |
| D57 | 8.77 µs | 13 µs | 11.6 µs | · |
| D76 | 8.44 µs | 12.8 µs | 12.4 µs | · |
| D115 | 24 µs | 25 µs | 27.9 µs | · |
| D153 | 20.6 µs | 21.6 µs | 23.3 µs | 63.4 µs |
| D230 | 35.4 µs | 28.5 µs | 31.8 µs | 135 µs |
| D307 | 52.9 µs | 30.3 µs | 34.2 µs | 142 µs |
| D462 | 60.1 µs | 33.9 µs | 37.3 µs | 143 µs |
| D616 | 99.7 µs | 40.5 µs | 46.1 µs | 165 µs |
| D924 | 132 µs | 55.4 µs | 55.2 µs | 171 µs |
| D1232 | 221 µs | 74.2 µs | 82.3 µs | 225 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 382 µs | 6.5× @37 |
atan¶
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 | 4.67 µs | 46.3 µs | 20.6 µs | · |
| D57 | 7.65 µs | 11 µs | 13.9 µs | · |
| D76 | 7.64 µs | 11 µs | 13.5 µs | · |
| D115 | 21.5 µs | 20.4 µs | 24.5 µs | · |
| D153 | 17.6 µs | 20.5 µs | 21 µs | 80.9 µs |
| D230 | 31.3 µs | 23.2 µs | 28.2 µs | 92.7 µs |
| D307 | 46.3 µs | 24.9 µs | 30 µs | 99.1 µs |
| D462 | 40.5 µs | 24.9 µs | 27 µs | 102 µs |
| D616 | 72.3 µs | 33.9 µs | 41.2 µs | 127 µs |
| D924 | 87.1 µs | 43 µs | 51.4 µs | 139 µs |
| D1232 | 147 µs | 62 µs | 78.2 µs | 185 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 274 µs | 13× @37 |
atan2¶
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 | 23.5 µs | · | · | · |
| D38 | 73.3 µs | 84.7 µs | 104 µs | · |
| D57 | 9.14 µs | 12 µs | 14.9 µs | · |
| D76 | 9.32 µs | 12.1 µs | 15.1 µs | · |
| D115 | 16.3 µs | 21 µs | 25.9 µs | · |
| D153 | 14.5 µs | 19.9 µs | 26.6 µs | 85.5 µs |
| D230 | 19.3 µs | 26.1 µs | 31.3 µs | 110 µs |
| D307 | 20.8 µs | 28.5 µs | 34.4 µs | 115 µs |
| D462 | 26.9 µs | 36.8 µs | 41.4 µs | 118 µs |
| D616 | 33.3 µs | 44.1 µs | 52.6 µs | 139 µs |
| D924 | 46.9 µs | 56.6 µs | 68.9 µs | 159 µs |
| D1232 | 76.3 µs | 91.6 µs | 112 µs | 231 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 463 µs | 4.5× @37 |
atanh¶
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 | 11.8 µs | · | · | · |
| D38 | 11.9 µs | 14.7 µs | 16.9 µs | · |
| D57 | 35.8 µs | 47.4 µs | 53.8 µs | · |
| D76 | 35.4 µs | 47.5 µs | 53.5 µs | · |
| D115 | 61.1 µs | 111 µs | 132 µs | · |
| D153 | 50.2 µs | 86.3 µs | 103 µs | 303 µs |
| D230 | 63.6 µs | 113 µs | 137 µs | 721 µs |
| D307 | 66.6 µs | 116 µs | 138 µs | 726 µs |
| D462 | 64 µs | 120 µs | 141 µs | 687 µs |
| D616 | 71.9 µs | 123 µs | 149 µs | 733 µs |
| D924 | 74.6 µs | 122 µs | 149 µs | 668 µs |
| D1232 | 97.6 µs | 155 µs | 190 µs | 844 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 272 µs | 16× @37 |
cos¶
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 | 7.17 µs | · | · | · |
| D38 | 7.21 µs | 8.9 µs | 10 µs | · |
| D57 | 4.76 µs | 6.09 µs | 6.94 µs | · |
| D76 | 4.81 µs | 6.31 µs | 7.06 µs | · |
| D115 | 8.61 µs | 11 µs | 12.2 µs | · |
| D153 | 7.51 µs | 10.1 µs | 11 µs | 48.9 µs |
| D230 | 10.4 µs | 13.4 µs | 14.9 µs | 63.5 µs |
| D307 | 11.2 µs | 14.9 µs | 16.8 µs | 58.4 µs |
| D462 | 11.6 µs | 16 µs | 18.7 µs | 62.5 µs |
| D616 | 18.4 µs | 23.6 µs | 27.6 µs | 82.9 µs |
| D924 | 25.5 µs | 31.4 µs | 38.2 µs | 93 µs |
| D1232 | 42.4 µs | 49.8 µs | 62.6 µs | 133 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 1.3 ms | 27× @152 |
| g_math | 38 | 273 µs | 27× @37 |
| rust_decimal | 28 | 4.43 µs | 0.5× @28 |
cosh¶
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 | 11.4 µs | · | · | · |
| D38 | 11.5 µs | 14 µs | 15.8 µs | · |
| D57 | 7.79 µs | 9.25 µs | 10.9 µs | · |
| D76 | 8.12 µs | 9.48 µs | 11.1 µs | · |
| D115 | 28.2 µs | 29.6 µs | 33.1 µs | · |
| D153 | 18.9 µs | 15.5 µs | 20.2 µs | 54.7 µs |
| D230 | 35.9 µs | 20.8 µs | 23.4 µs | 85.9 µs |
| D307 | 49.8 µs | 23.7 µs | 26.3 µs | 141 µs |
| D462 | 50.5 µs | 30 µs | 32 µs | 98.4 µs |
| D616 | 91.5 µs | 45.2 µs | 38.5 µs | 113 µs |
| D924 | 118 µs | 51.6 µs | 49.2 µs | 118 µs |
| D1232 | 199 µs | 142 µs | 76.3 µs | 168 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 338 µs | 21× @37 |
sin¶
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 | 7.19 µs | · | · | · |
| D38 | 7.21 µs | 8.86 µs | 10 µs | · |
| D57 | 4.8 µs | 6.01 µs | 6.84 µs | · |
| D76 | 4.82 µs | 6.16 µs | 6.98 µs | · |
| D115 | 8.63 µs | 10.8 µs | 12.1 µs | · |
| D153 | 7.61 µs | 10.6 µs | 10.9 µs | 48.6 µs |
| D230 | 10.5 µs | 13.2 µs | 14.7 µs | 63.1 µs |
| D307 | 11.4 µs | 14.7 µs | 16.8 µs | 57.8 µs |
| D462 | 11.1 µs | 15.4 µs | 19.5 µs | 61 µs |
| D616 | 18.5 µs | 23.4 µs | 27.5 µs | 82.6 µs |
| D924 | 25.3 µs | 31.2 µs | 38 µs | 93.1 µs |
| D1232 | 42.3 µs | 49.8 µs | 62.6 µs | 133 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 546 µs | 11× @152 |
| g_math | 38 | 268 µs | 27× @37 |
| rust_decimal | 28 | 4.33 µs | 0.49× @28 |
sinh¶
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 | 11.4 µs | · | · | · |
| D38 | 11.5 µs | 14 µs | 15.8 µs | · |
| D57 | 7.72 µs | 9.2 µs | 10.8 µs | · |
| D76 | 7.99 µs | 9.54 µs | 11.2 µs | · |
| D115 | 27.7 µs | 29.9 µs | 33.5 µs | · |
| D153 | 18.3 µs | 17.5 µs | 20.3 µs | 53.9 µs |
| D230 | 34 µs | 35.9 µs | 23.8 µs | 86.3 µs |
| D307 | 47.2 µs | 49 µs | 27 µs | 148 µs |
| D462 | 47.8 µs | 56 µs | 33 µs | 97.7 µs |
| D616 | 86.2 µs | 93.2 µs | 47.4 µs | 113 µs |
| D924 | 118 µs | 124 µs | 55.3 µs | 127 µs |
| D1232 | 199 µs | 207 µs | 82.8 µs | 405 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 337 µs | 21× @37 |
tan¶
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.2 µs | · | · | · |
| D38 | 13.2 µs | 16.2 µs | 18.3 µs | · |
| D57 | 5.96 µs | 7.59 µs | 8.77 µs | · |
| D76 | 5.98 µs | 7.76 µs | 8.85 µs | · |
| D115 | 10.6 µs | 13.3 µs | 15.1 µs | · |
| D153 | 9.29 µs | 13.4 µs | 13.4 µs | 56.1 µs |
| D230 | 12.6 µs | 15.8 µs | 17.8 µs | 73.5 µs |
| D307 | 13.4 µs | 17.3 µs | 19.8 µs | 67.9 µs |
| D462 | 12.4 µs | 17.9 µs | 20.7 µs | 71.7 µs |
| D616 | 20.5 µs | 25.9 µs | 30.7 µs | 91.7 µs |
| D924 | 27.4 µs | 34 µs | 41 µs | 102 µs |
| D1232 | 44.9 µs | 52.3 µs | 65.5 µs | 144 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 4.26 ms | 76× @152 |
| g_math | 38 | 290 µs | 16× @37 |
| rust_decimal | 28 | 4.36 µs | 0.27× @28 |
tanh¶
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 | 11.4 µs | · | · | · |
| D38 | 11.5 µs | 14 µs | 15.8 µs | · |
| D57 | 7.55 µs | 9.33 µs | 11.1 µs | · |
| D76 | 7.59 µs | 9.62 µs | 11.3 µs | · |
| D115 | 26.6 µs | 29.2 µs | 32.6 µs | · |
| D153 | 12.6 µs | 15.2 µs | 16.7 µs | 61.9 µs |
| D230 | 16.1 µs | 19.9 µs | 23.3 µs | 84.9 µs |
| D307 | 17.6 µs | 22 µs | 25.6 µs | 98.6 µs |
| D462 | 21.4 µs | 25.9 µs | 28.8 µs | 87.8 µs |
| D616 | 26 µs | 31 µs | 37.2 µs | 103 µs |
| D924 | 33.2 µs | 39.2 µs | 46.6 µs | 113 µs |
| D1232 | 50.9 µs | 58.9 µs | 73.9 µs | 159 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 203 µs | 13× @37 |