@@ -51,8 +51,7 @@ struct pair
51
51
52
52
#define cast_to_pair_ptr (b ) ((struct pair*)(void*)(b))
53
53
54
- static struct pair digits_dd [100 ] =
55
- {
54
+ static struct pair digits_dd [100 ] = {
56
55
{ '0' , '0' }, { '0' , '1' }, { '0' , '2' }, { '0' , '3' }, { '0' , '4' }, { '0' , '5' }, { '0' , '6' }, { '0' , '7' }, { '0' , '8' }, { '0' , '9' },
57
56
{ '1' , '0' }, { '1' , '1' }, { '1' , '2' }, { '1' , '3' }, { '1' , '4' }, { '1' , '5' }, { '1' , '6' }, { '1' , '7' }, { '1' , '8' }, { '1' , '9' },
58
57
{ '2' , '0' }, { '2' , '1' }, { '2' , '2' }, { '2' , '3' }, { '2' , '4' }, { '2' , '5' }, { '2' , '6' }, { '2' , '7' }, { '2' , '8' }, { '2' , '9' },
@@ -67,8 +66,7 @@ static struct pair digits_dd[100] =
67
66
68
67
#define NUL 'x'
69
68
70
- static struct pair digits_fd [100 ] =
71
- {
69
+ static struct pair digits_fd [100 ] = {
72
70
{ '0' , NUL }, { '1' , NUL }, { '2' , NUL }, { '3' , NUL }, { '4' , NUL }, { '5' , NUL }, { '6' , NUL }, { '7' , NUL }, { '8' , NUL }, { '9' , NUL },
73
71
{ '1' , '0' }, { '1' , '1' }, { '1' , '2' }, { '1' , '3' }, { '1' , '4' }, { '1' , '5' }, { '1' , '6' }, { '1' , '7' }, { '1' , '8' }, { '1' , '9' },
74
72
{ '2' , '0' }, { '2' , '1' }, { '2' , '2' }, { '2' , '3' }, { '2' , '4' }, { '2' , '5' }, { '2' , '6' }, { '2' , '7' }, { '2' , '8' }, { '2' , '9' },
@@ -87,17 +85,16 @@ static u64_t mask24 = (u64(1) << 24) - 1;
87
85
static u64_t mask32 = (u64 (1 ) << 32 ) - 1 ;
88
86
static u64_t mask57 = (u64 (1 ) << 57 ) - 1 ;
89
87
90
- static
91
- char * to_text_from_ulong (char * b , u64_t n ) {
92
- if ( n < u32 ( 1e2 ))
93
- {
88
+ static
89
+ char * to_text_from_ulong (char * b , u64_t n )
90
+ {
91
+ if ( n < u32 ( 1e2 )) {
94
92
* cast_to_pair_ptr (b ) = digits_fd [n ];
95
93
return n < 10 ? b + 1 : b + 2 ;
96
94
}
97
- if (n < u32 (1e6 ))
98
- {
99
- if (n < u32 (1e4 ))
100
- {
95
+
96
+ if (n < u32 (1e6 )) {
97
+ if (n < u32 (1e4 )) {
101
98
u32_t f0 = u32 (10 * (1 << 24 ) / 1e3 + 1 ) * n ;
102
99
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 24 ];
103
100
b -= n < u32 (1e3 );
@@ -114,10 +111,9 @@ char* to_text_from_ulong(char* b, u64_t n) {
114
111
* cast_to_pair_ptr (b + 4 ) = digits_dd [f4 >> 32 ];
115
112
return b + 6 ;
116
113
}
117
- if (n < u64 (1ull << 32ull ))
118
- {
119
- if (n < u32 (1e8 ))
120
- {
114
+
115
+ if (n < u64 (1ull << 32ull )) {
116
+ if (n < u32 (1e8 )) {
121
117
u64_t f0 = u64 (10 * (1ull << 48ull ) / 1e7 + 1 ) * n >> 16 ;
122
118
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 32 ];
123
119
b -= n < u32 (1e7 );
@@ -147,25 +143,21 @@ char* to_text_from_ulong(char* b, u64_t n) {
147
143
u32_t z = n % u32 (1e8 );
148
144
u64_t u = n / u32 (1e8 );
149
145
150
- if (u < u32 (1e2 ))
151
- {
146
+ if (u < u32 (1e2 )) {
152
147
// u can't be 1 digit (if u < 10 it would have been handled above as a 9 digit 32bit number)
153
148
* cast_to_pair_ptr (b ) = digits_dd [u ];
154
149
b += 2 ;
155
150
}
156
- else if (u < u32 (1e6 ))
157
- {
158
- if (u < u32 (1e4 ))
159
- {
151
+ else if (u < u32 (1e6 )) {
152
+ if (u < u32 (1e4 )) {
160
153
u32_t f0 = u32 (10 * (1 << 24 ) / 1e3 + 1 ) * u ;
161
154
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 24 ];
162
155
b -= u < u32 (1e3 );
163
156
u32_t f2 = (f0 & mask24 ) * 100 ;
164
157
* cast_to_pair_ptr (b + 2 ) = digits_dd [f2 >> 24 ];
165
158
b += 4 ;
166
159
}
167
- else
168
- {
160
+ else {
169
161
u64_t f0 = u64 (10 * (1ull << 32ull ) / 1e5 + 1 ) * u ;
170
162
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 32 ];
171
163
b -= u < u32 (1e5 );
@@ -176,8 +168,7 @@ char* to_text_from_ulong(char* b, u64_t n) {
176
168
b += 6 ;
177
169
}
178
170
}
179
- else if (u < u32 (1e8 ))
180
- {
171
+ else if (u < u32 (1e8 )) {
181
172
u64_t f0 = u64 (10 * (1ull << 48ull ) / 1e7 + 1 ) * u >> 16 ;
182
173
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 32 ];
183
174
b -= u < u32 (1e7 );
@@ -189,8 +180,7 @@ char* to_text_from_ulong(char* b, u64_t n) {
189
180
* cast_to_pair_ptr (b + 6 ) = digits_dd [f6 >> 32 ];
190
181
b += 8 ;
191
182
}
192
- else if (u < u64 (1ull << 32ull ))
193
- {
183
+ else if (u < u64 (1ull << 32ull )) {
194
184
u64_t f0 = u64 (10 * (1ull << 57ull ) / 1e9 + 1 ) * u ;
195
185
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 57 ];
196
186
b -= u < u32 (1e9 );
@@ -204,19 +194,16 @@ char* to_text_from_ulong(char* b, u64_t n) {
204
194
* cast_to_pair_ptr (b + 8 ) = digits_dd [f8 >> 57 ];
205
195
b += 10 ;
206
196
}
207
- else
208
- {
197
+ else {
209
198
u32_t y = u % u32 (1e8 );
210
199
u /= u32 (1e8 );
211
200
212
201
// u is 2, 3, or 4 digits (if u < 10 it would have been handled above)
213
- if (u < u32 (1e2 ))
214
- {
202
+ if (u < u32 (1e2 )) {
215
203
* cast_to_pair_ptr (b ) = digits_dd [u ];
216
204
b += 2 ;
217
205
}
218
- else
219
- {
206
+ else {
220
207
u32_t f0 = u32 (10 * (1 << 24 ) / 1e3 + 1 ) * u ;
221
208
* cast_to_pair_ptr (b ) = digits_fd [f0 >> 24 ];
222
209
b -= u < u32 (1e3 );
@@ -249,6 +236,7 @@ char* to_text_from_ulong(char* b, u64_t n) {
249
236
250
237
#undef u32
251
238
#undef u64
239
+ #undef cast_to_pair_ptr
252
240
253
241
#pragma clang diagnostic pop
254
242
#pragma GCC diagnostic pop
0 commit comments