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.5 µs | · | · | · |
| D38 | 76.6 µs | 90.2 µs | 109 µs | · |
| D57 | 10.4 µs | 14.2 µs | 17.9 µs | · |
| D76 | 9.77 µs | 13.3 µs | 16.7 µs | · |
| D115 | 17.8 µs | 23 µs | 28.6 µs | · |
| D153 | 17.5 µs | 23.2 µs | 28.9 µs | 113 µs |
| D230 | 18.4 µs | 25.2 µs | 30.7 µs | 116 µs |
| D307 | 19.2 µs | 26.7 µs | 32.9 µs | 121 µs |
| D462 | 22.4 µs | 30.7 µs | 37.9 µs | 125 µs |
| D616 | 25.5 µs | 34.6 µs | 44.1 µs | 135 µs |
| D924 | 34.4 µs | 43.7 µs | 59.4 µs | 156 µs |
| D1232 | 50.3 µs | 58.3 µs | 76.1 µs | 186 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 1.08 ms | 9.9× @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 | 55 µs | 62.7 µs | 55 µs | · |
| D57 | 44.9 µs | 57.7 µs | 62.8 µs | · |
| D76 | 41.5 µs | 53.6 µs | 58.5 µs | · |
| D115 | 70.1 µs | 124 µs | 150 µs | · |
| D153 | 71.6 µs | 127 µs | 155 µs | 303 µs |
| D230 | 72.3 µs | 125 µs | 151 µs | 819 µs |
| D307 | 73.5 µs | 130 µs | 157 µs | 830 µs |
| D462 | 74.9 µs | 131 µs | 159 µs | 828 µs |
| D616 | 78.8 µs | 135 µs | 163 µs | 836 µs |
| D924 | 87.8 µs | 148 µs | 176 µs | 862 µs |
| D1232 | 101 µs | 163 µs | 201 µs | 887 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 586 µs | 11× @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 | 90.4 µs | 109 µs | · |
| D57 | 10.4 µs | 14 µs | 17.7 µs | · |
| D76 | 9.79 µs | 13.2 µs | 16.5 µs | · |
| D115 | 17.9 µs | 22.9 µs | 28.2 µs | · |
| D153 | 17.4 µs | 22.9 µs | 28.6 µs | 113 µs |
| D230 | 18.3 µs | 25.1 µs | 30.4 µs | 114 µs |
| D307 | 19.4 µs | 26.5 µs | 32.9 µs | 118 µs |
| D462 | 22.4 µs | 30.6 µs | 37.8 µs | 125 µs |
| D616 | 25.6 µs | 34.6 µs | 43.8 µs | 133 µs |
| D924 | 34.9 µs | 45.7 µs | 57.6 µs | 156 µs |
| D1232 | 50 µs | 60.4 µs | 77.4 µs | 184 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 1.07 ms | 9.8× @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.3 µs | · | · | · |
| D38 | 47.2 µs | 54.3 µs | 62 µs | · |
| D57 | 9.53 µs | 14.1 µs | 12.5 µs | · |
| D76 | 8.54 µs | 12.8 µs | 13 µs | · |
| D115 | 24.7 µs | 25.7 µs | 28.6 µs | · |
| D153 | 26.1 µs | 26.1 µs | 29.3 µs | 87 µs |
| D230 | 34.7 µs | 28.4 µs | 31.6 µs | 138 µs |
| D307 | 51.7 µs | 30.7 µs | 34.3 µs | 148 µs |
| D462 | 58.4 µs | 35.9 µs | 39.6 µs | 159 µs |
| D616 | 98.1 µs | 41.5 µs | 46.3 µs | 174 µs |
| D924 | 160 µs | 55.2 µs | 63 µs | 196 µs |
| D1232 | 220 µs | 77.3 µs | 86.8 µs | 228 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 610 µs | 9.8× @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.72 µs | · | · | · |
| D38 | 4.96 µs | 49.4 µs | 15.9 µs | · |
| D57 | 8.4 µs | 11.8 µs | 15 µs | · |
| D76 | 7.62 µs | 11 µs | 13.8 µs | · |
| D115 | 22.2 µs | 21.1 µs | 25.3 µs | · |
| D153 | 22.9 µs | 21.1 µs | 25.6 µs | 104 µs |
| D230 | 30.7 µs | 23.3 µs | 27.8 µs | 95.1 µs |
| D307 | 46.5 µs | 25.1 µs | 30.3 µs | 102 µs |
| D462 | 42.7 µs | 26.7 µs | 28.7 µs | 110 µs |
| D616 | 75.3 µs | 34.9 µs | 42.5 µs | 132 µs |
| D924 | 107 µs | 48.4 µs | 59.7 µs | 157 µs |
| D1232 | 155 µs | 66.4 µs | 81.9 µs | 190 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 487 µs | 31× @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 µs | · | · | · |
| D38 | 77.4 µs | 89.3 µs | 109 µs | · |
| D57 | 9.58 µs | 12.8 µs | 16 µs | · |
| D76 | 9.15 µs | 12.2 µs | 15.2 µs | · |
| D115 | 16.9 µs | 21.7 µs | 26.5 µs | · |
| D153 | 16.8 µs | 22.1 µs | 27.1 µs | 110 µs |
| D230 | 18.6 µs | 26.2 µs | 30.8 µs | 112 µs |
| D307 | 20.5 µs | 28.7 µs | 34.5 µs | 118 µs |
| D462 | 26.6 µs | 36.4 µs | 43.2 µs | 129 µs |
| D616 | 32.2 µs | 43.4 µs | 52.6 µs | 143 µs |
| D924 | 49.1 µs | 63.7 µs | 77.9 µs | 180 µs |
| D1232 | 70.9 µs | 91.1 µs | 111 µs | 232 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 942 µs | 8.6× @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.6 µs | · | · | · |
| D38 | 12.6 µs | 15.6 µs | 18.1 µs | · |
| D57 | 38.8 µs | 51.5 µs | 57.6 µs | · |
| D76 | 35.9 µs | 47.9 µs | 53.9 µs | · |
| D115 | 60.9 µs | 111 µs | 133 µs | · |
| D153 | 62.3 µs | 114 µs | 137 µs | 430 µs |
| D230 | 63.3 µs | 116 µs | 137 µs | 761 µs |
| D307 | 64.3 µs | 117 µs | 141 µs | 779 µs |
| D462 | 67.4 µs | 120 µs | 146 µs | 774 µs |
| D616 | 70.5 µs | 123 µs | 150 µs | 781 µs |
| D924 | 79.2 µs | 134 µs | 166 µs | 811 µs |
| D1232 | 91.3 µs | 149 µs | 189 µs | 839 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 397 µs | 22× @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.72 µs | · | · | · |
| D38 | 7.76 µs | 9.6 µs | 10.9 µs | · |
| D57 | 4.79 µs | 6.33 µs | 7.17 µs | · |
| D76 | 4.69 µs | 6.27 µs | 7.02 µs | · |
| D115 | 8.7 µs | 10.9 µs | 12.2 µs | · |
| D153 | 8.82 µs | 11.5 µs | 12.9 µs | 64.3 µs |
| D230 | 9.96 µs | 13.6 µs | 15 µs | 66.1 µs |
| D307 | 10.8 µs | 15.1 µs | 16.9 µs | 60.1 µs |
| D462 | 11.5 µs | 15.9 µs | 19.9 µs | 67.5 µs |
| D616 | 17.7 µs | 23.6 µs | 27.8 µs | 83.8 µs |
| D924 | 27.4 µs | 35.1 µs | 42.1 µs | 104 µs |
| D1232 | 40.2 µs | 47.8 µs | 62.3 µs | 133 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 1.45 ms | 23× @152 |
| g_math | 38 | 424 µs | 39× @37 |
| rust_decimal | 28 | 4.64 µs | 0.48× @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.5 µs | 15.1 µs | 17.1 µs | · |
| D57 | 8.36 µs | 9.79 µs | 11.5 µs | · |
| D76 | 8.23 µs | 9.5 µs | 11.2 µs | · |
| D115 | 28.1 µs | 30 µs | 33.2 µs | · |
| D153 | 24.8 µs | 18.5 µs | 21.4 µs | 78.9 µs |
| D230 | 31.8 µs | 21.2 µs | 24 µs | 91.9 µs |
| D307 | 45.5 µs | 24.2 µs | 26.8 µs | 150 µs |
| D462 | 52.2 µs | 37.5 µs | 33.1 µs | 106 µs |
| D616 | 90.6 µs | 42 µs | 40.1 µs | 116 µs |
| D924 | 142 µs | 58 µs | 57.6 µs | 143 µs |
| D1232 | 192 µs | 78.2 µs | 82.1 µs | 178 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 621 µs | 36× @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.74 µs | · | · | · |
| D38 | 7.79 µs | 9.56 µs | 10.8 µs | · |
| D57 | 4.87 µs | 6.53 µs | 7.29 µs | · |
| D76 | 4.8 µs | 6.14 µs | 6.96 µs | · |
| D115 | 8.78 µs | 10.8 µs | 12.1 µs | · |
| D153 | 8.83 µs | 11.3 µs | 12.8 µs | 63.5 µs |
| D230 | 10 µs | 13.4 µs | 14.8 µs | 65.9 µs |
| D307 | 10.9 µs | 14.8 µs | 16.9 µs | 59.3 µs |
| D462 | 11.5 µs | 16.2 µs | 19.5 µs | 67.2 µs |
| D616 | 17.8 µs | 23.2 µs | 27.8 µs | 83.2 µs |
| D924 | 27.4 µs | 34.3 µs | 43.3 µs | 106 µs |
| D1232 | 40.1 µs | 49.4 µs | 61.9 µs | 131 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 600 µs | 9.5× @152 |
| g_math | 38 | 416 µs | 39× @37 |
| rust_decimal | 28 | 4.59 µs | 0.48× @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.5 µs | 15.1 µs | 17.1 µs | · |
| D57 | 8.55 µs | 9.84 µs | 11.6 µs | · |
| D76 | 8.04 µs | 9.51 µs | 11.2 µs | · |
| D115 | 27.5 µs | 30.2 µs | 33.7 µs | · |
| D153 | 24 µs | 19.7 µs | 21.7 µs | 77.8 µs |
| D230 | 32.5 µs | 29.1 µs | 24.1 µs | 93.4 µs |
| D307 | 45.8 µs | 49 µs | 27.3 µs | 157 µs |
| D462 | 48.8 µs | 56.9 µs | 34 µs | 107 µs |
| D616 | 84.6 µs | 94.9 µs | 41.3 µs | 118 µs |
| D924 | 141 µs | 149 µs | 60.6 µs | 153 µs |
| D1232 | 194 µs | 205 µs | 87.6 µs | 407 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 623 µs | 36× @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 | 6.07 µs | 7.93 µs | 9.08 µs | · |
| D76 | 5.93 µs | 7.8 µs | 8.87 µs | · |
| D115 | 10.8 µs | 13.4 µs | 15.3 µs | · |
| D153 | 10.8 µs | 13.9 µs | 15.7 µs | 74 µs |
| D230 | 12 µs | 15.9 µs | 17.7 µs | 75.5 µs |
| D307 | 12.8 µs | 17.6 µs | 19.9 µs | 70.1 µs |
| D462 | 13 µs | 18.2 µs | 22 µs | 75.5 µs |
| D616 | 19.5 µs | 25.7 µs | 30.4 µs | 93.7 µs |
| D924 | 29.1 µs | 36.8 µs | 45.5 µs | 115 µs |
| D1232 | 43.1 µs | 50.6 µs | 67.4 µs | 143 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| fastnum | 154 | 4.58 ms | 62× @152 |
| g_math | 38 | 454 µs | 23× @37 |
| rust_decimal | 28 | 4.66 µ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 | 12.4 µs | · | · | · |
| D38 | 12.5 µs | 15.2 µs | 17.2 µs | · |
| D57 | 8.09 µs | 10 µs | 11.9 µs | · |
| D76 | 7.64 µs | 9.58 µs | 11.3 µs | · |
| D115 | 26.4 µs | 29.4 µs | 32.3 µs | · |
| D153 | 14.3 µs | 18.1 µs | 21.2 µs | 87.4 µs |
| D230 | 15.7 µs | 20.3 µs | 23.3 µs | 91.2 µs |
| D307 | 17.2 µs | 22.3 µs | 25.9 µs | 101 µs |
| D462 | 21.1 µs | 26.6 µs | 31.8 µs | 100 µs |
| D616 | 24.9 µs | 31.6 µs | 37.5 µs | 107 µs |
| D924 | 36.4 µs | 43.4 µs | 54.6 µs | 132 µs |
| D1232 | 53.9 µs | 60 µs | 75.1 µs | 161 µs |
peers (fixed precision; each timed beside the matching decimal-scaled line):
| Peer | Precision | Median | vs decimal-scaled |
|---|---|---|---|
| g_math | 38 | 372 µs | 22× @37 |