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 | 76.6 µs | · | · | · |
| D38 | 76.6 µs | 90.1 µs | 109 µs | · |
| D57 | 8.82 µs | 11.5 µs | 14.5 µs | · |
| D76 | 10.4 µs | 14.1 µs | 17.6 µs | · |
| D115 | 18 µs | 23.3 µs | 29.3 µs | · |
| D153 | 18.4 µs | 24.3 µs | 30.3 µs | 117 µs |
| D230 | 17 µs | 22 µs | 27.8 µs | 90.9 µs |
| D307 | 21.2 µs | 28.1 µs | 34.6 µs | 119 µs |
| D462 | 24.3 µs | 32.2 µs | 39.9 µs | 126 µs |
| D616 | 27.2 µs | 35.5 µs | 44.4 µs | 133 µs |
| D924 | 34.9 µs | 44.7 µs | 58.1 µs | 157 µs |
| D1232 | 48.5 µs | 56.8 µs | 77.2 µs | 180 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 950 µs | 8.7× @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 | 35 µs | · | · | · |
| D38 | 54.9 µs | 62.8 µs | 54.8 µs | · |
| D57 | 35.5 µs | 45.2 µs | 49.1 µs | · |
| D76 | 42.7 µs | 55.2 µs | 60.3 µs | · |
| D115 | 72.3 µs | 126 µs | 152 µs | · |
| D153 | 73.1 µs | 127 µs | 153 µs | 313 µs |
| D230 | 66.7 µs | 98.2 µs | 121 µs | 589 µs |
| D307 | 76.2 µs | 131 µs | 157 µs | 788 µs |
| D462 | 77.8 µs | 135 µs | 162 µs | 789 µs |
| D616 | 80.1 µs | 139 µs | 157 µs | 747 µs |
| D924 | 88.2 µs | 143 µs | 178 µs | 867 µs |
| D1232 | 101 µs | 161 µs | 196 µs | 835 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 532 µs | 9.7× @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 | 76.5 µs | · | · | · |
| D38 | 76.5 µs | 91.1 µs | 109 µs | · |
| D57 | 8.72 µs | 11.4 µs | 14.3 µs | · |
| D76 | 10.4 µs | 14 µs | 17.4 µs | · |
| D115 | 17.8 µs | 23.1 µs | 28.9 µs | · |
| D153 | 18.3 µs | 24.2 µs | 30 µs | 117 µs |
| D230 | 17.2 µs | 22.6 µs | 27 µs | 91.3 µs |
| D307 | 21.4 µs | 28.1 µs | 34.2 µs | 119 µs |
| D462 | 24.2 µs | 32.2 µs | 39.4 µs | 125 µs |
| D616 | 27.5 µs | 35.7 µs | 44.4 µs | 132 µs |
| D924 | 35.1 µs | 44.4 µs | 59.4 µs | 157 µs |
| D1232 | 48.5 µs | 59 µs | 78.3 µs | 179 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 943 µs | 8.6× @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 | 42.5 µs | · | · | · |
| D38 | 47.4 µs | 54.3 µs | 62 µs | · |
| D57 | 7.74 µs | 11.2 µs | 9.78 µs | · |
| D76 | 8.9 µs | 13.3 µs | 13.2 µs | · |
| D115 | 24.7 µs | 25.3 µs | 28.6 µs | · |
| D153 | 26.4 µs | 26.9 µs | 30.1 µs | 85.8 µs |
| D230 | 30.5 µs | 23.8 µs | 26.5 µs | 105 µs |
| D307 | 53.9 µs | 31.8 µs | 35.6 µs | 144 µs |
| D462 | 61.5 µs | 36.6 µs | 40.8 µs | 156 µs |
| D616 | 99.2 µs | 40.4 µs | 45.7 µs | 166 µs |
| D924 | 157 µs | 56.4 µs | 63.9 µs | 199 µs |
| D1232 | 218 µs | 198 µs | 83.4 µs | 220 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 651 µs | 10× @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.43 µs | · | · | · |
| D38 | 4.95 µs | 49.2 µs | 14.7 µs | · |
| D57 | 7.03 µs | 9.78 µs | 12.3 µs | · |
| D76 | 8.32 µs | 11.8 µs | 14.3 µs | · |
| D115 | 21.9 µs | 21.3 µs | 26 µs | · |
| D153 | 23.7 µs | 22.3 µs | 27.3 µs | 105 µs |
| D230 | 24.3 µs | 24.4 µs | 24.3 µs | 75.3 µs |
| D307 | 49.3 µs | 26.6 µs | 31.7 µs | 103 µs |
| D462 | 45 µs | 27.6 µs | 30.5 µs | 112 µs |
| D616 | 75.7 µs | 35.4 µs | 42.8 µs | 125 µs |
| D924 | 109 µs | 49 µs | 58.8 µs | 159 µs |
| D1232 | 147 µs | 63.9 µs | 80.2 µs | 181 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 482 µs | 33× @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 | 25.1 µs | · | · | · |
| D38 | 77.3 µs | 89.3 µs | 109 µs | · |
| D57 | 8.12 µs | 10.5 µs | 13.1 µs | · |
| D76 | 9.96 µs | 13.1 µs | 16.1 µs | · |
| D115 | 16.9 µs | 21.7 µs | 27.1 µs | · |
| D153 | 17.7 µs | 23.5 µs | 28.7 µs | 116 µs |
| D230 | 19.3 µs | 22.9 µs | 27 µs | 89.8 µs |
| D307 | 22.3 µs | 30.3 µs | 36.5 µs | 118 µs |
| D462 | 27.9 µs | 38.3 µs | 45.8 µs | 130 µs |
| D616 | 34.5 µs | 45 µs | 52.4 µs | 136 µs |
| D924 | 49.9 µs | 63.4 µs | 77.6 µs | 181 µs |
| D1232 | 72 µs | 90.4 µs | 111 µs | 227 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 837 µs | 7.7× @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 | 12.7 µs | · | · | · |
| D38 | 12.7 µs | 15.7 µs | 18 µs | · |
| D57 | 30.6 µs | 40.9 µs | 45.3 µs | · |
| D76 | 36.9 µs | 49.2 µs | 55.3 µs | · |
| D115 | 62.5 µs | 113 µs | 136 µs | · |
| D153 | 63.8 µs | 114 µs | 139 µs | 434 µs |
| D230 | 54.1 µs | 90.8 µs | 108 µs | 566 µs |
| D307 | 67.8 µs | 119 µs | 143 µs | 739 µs |
| D462 | 68.8 µs | 122 µs | 147 µs | 739 µs |
| D616 | 71.5 µs | 123 µs | 146 µs | 723 µs |
| D924 | 79.8 µs | 135 µs | 164 µs | 815 µs |
| D1232 | 92.5 µs | 148 µs | 183 µs | 786 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 429 µs | 24× @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.71 µs | · | · | · |
| D38 | 7.72 µs | 9.58 µs | 10.8 µs | · |
| D57 | 4.11 µs | 5.39 µs | 6.05 µs | · |
| D76 | 5.02 µs | 6.66 µs | 7.42 µs | · |
| D115 | 8.57 µs | 11.3 µs | 12.7 µs | · |
| D153 | 9.02 µs | 12.1 µs | 13.6 µs | 66.1 µs |
| D230 | 9.41 µs | 12.8 µs | 13.5 µs | 52.4 µs |
| D307 | 11.3 µs | 15.7 µs | 17.6 µs | 59.1 µs |
| D462 | 12.5 µs | 17.2 µs | 20.4 µs | 67.7 µs |
| D616 | 18.6 µs | 24 µs | 28.1 µs | 82.4 µs |
| D924 | 27.5 µs | 34.1 µs | 42.3 µs | 106 µs |
| D1232 | 40 µs | 48.8 µs | 61.1 µs | 129 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 1.32 ms | 20× @152 |
| g_math | 38 | 418 µs | 39× @37 |
| rust_decimal | 28 | 4.42 µs | 0.46× @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 | 12.3 µs | · | · | · |
| D38 | 12.4 µs | 15.1 µs | 17.1 µs | · |
| D57 | 6.93 µs | 7.97 µs | 9.26 µs | · |
| D76 | 8.56 µs | 9.92 µs | 11.6 µs | · |
| D115 | 29.5 µs | 31.2 µs | 35.3 µs | · |
| D153 | 25.7 µs | 19.3 µs | 22.3 µs | 81.6 µs |
| D230 | 28.1 µs | 17.4 µs | 19.1 µs | 66.2 µs |
| D307 | 50.2 µs | 24.6 µs | 27.3 µs | 143 µs |
| D462 | 56.1 µs | 30.6 µs | 33.1 µs | 103 µs |
| D616 | 93.1 µs | 46.1 µs | 39 µs | 111 µs |
| D924 | 146 µs | 137 µs | 58 µs | 147 µs |
| D1232 | 195 µs | 186 µs | 84.9 µs | 170 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 577 µs | 34× @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.76 µs | · | · | · |
| D38 | 7.77 µs | 9.57 µs | 10.8 µs | · |
| D57 | 4.12 µs | 5.34 µs | 5.98 µs | · |
| D76 | 5.32 µs | 6.55 µs | 7.37 µs | · |
| D115 | 8.72 µs | 11.2 µs | 12.6 µs | · |
| D153 | 9.17 µs | 12 µs | 13.5 µs | 65.6 µs |
| D230 | 8.67 µs | 11.7 µs | 13.2 µs | 55.5 µs |
| D307 | 11.8 µs | 15.5 µs | 17.6 µs | 59 µs |
| D462 | 12.8 µs | 17.2 µs | 20.2 µs | 67.4 µs |
| D616 | 18.6 µs | 23.7 µs | 28 µs | 81.8 µs |
| D924 | 27.1 µs | 34 µs | 42.9 µs | 104 µs |
| D1232 | 39.8 µs | 47.8 µs | 59.7 µs | 129 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 544 µs | 8.3× @152 |
| g_math | 38 | 412 µs | 38× @37 |
| rust_decimal | 28 | 4.34 µs | 0.45× @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 | 12.3 µs | · | · | · |
| D38 | 12.4 µs | 15.1 µs | 17 µs | · |
| D57 | 6.83 µs | 7.89 µs | 9.27 µs | · |
| D76 | 8.37 µs | 9.9 µs | 11.6 µs | · |
| D115 | 28.9 µs | 31.3 µs | 36 µs | · |
| D153 | 25.5 µs | 20.6 µs | 22.5 µs | 80.6 µs |
| D230 | 29.9 µs | 26.4 µs | 22.1 µs | 67.2 µs |
| D307 | 46.7 µs | 51.6 µs | 28.2 µs | 151 µs |
| D462 | 52.5 µs | 59 µs | 33.8 µs | 105 µs |
| D616 | 87.7 µs | 95.4 µs | 40.9 µs | 113 µs |
| D924 | 144 µs | 150 µs | 62.8 µs | 152 µs |
| D1232 | 193 µs | 199 µs | 91.1 µs | 177 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 577 µs | 34× @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 | 14.3 µs | · | · | · |
| D38 | 14.3 µs | 17.5 µs | 19.9 µs | · |
| D57 | 5.17 µs | 6.85 µs | 7.65 µs | · |
| D76 | 6.36 µs | 8.21 µs | 9.38 µs | · |
| D115 | 10.7 µs | 13.8 µs | 15.7 µs | · |
| D153 | 11.2 µs | 14.8 µs | 16.8 µs | 75.7 µs |
| D230 | 11 µs | 16.1 µs | 15.8 µs | 59.8 µs |
| D307 | 13.7 µs | 18.3 µs | 20.7 µs | 69.1 µs |
| D462 | 14.2 µs | 19.5 µs | 22.8 µs | 76.6 µs |
| D616 | 20.6 µs | 26.9 µs | 31.3 µs | 89 µs |
| D924 | 29.4 µs | 37.9 µs | 46.7 µs | 115 µs |
| D1232 | 41.9 µs | 51.2 µs | 62.8 µs | 139 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 4.39 ms | 58× @152 |
| g_math | 38 | 450 µs | 23× @37 |
| rust_decimal | 28 | 4.38 µs | 0.25× @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 | 12.4 µs | · | · | · |
| D38 | 12.4 µs | 15.1 µs | 17.1 µs | · |
| D57 | 6.79 µs | 8.1 µs | 9.55 µs | · |
| D76 | 8.06 µs | 10 µs | 11.8 µs | · |
| D115 | 26.4 µs | 30.7 µs | 34 µs | · |
| D153 | 15 µs | 19 µs | 22.1 µs | 88.4 µs |
| D230 | 15.7 µs | 17.2 µs | 19.9 µs | 66.3 µs |
| D307 | 18.1 µs | 23.3 µs | 26.8 µs | 99.4 µs |
| D462 | 21.5 µs | 27.4 µs | 32.3 µs | 97.3 µs |
| D616 | 25.4 µs | 31.6 µs | 37.7 µs | 103 µs |
| D924 | 35.3 µs | 44.8 µs | 55.5 µs | 134 µs |
| D1232 | 51.7 µs | 59.9 µs | 73.7 µs | 156 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 344 µs | 20× @37 |