MCPcopy Create free account
hub / github.com/cloudwego/dynamicgo / format_integer

Function format_integer

native/fastfloat.c:123–166  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

121}
122
123static inline char* format_integer(uint64_t sig, char *out, unsigned cnt) {
124 char *p = out + cnt;
125 if ((sig >> 32) != 0) {
126 uint64_t q = sig / 100000000;
127 uint32_t r = ((uint32_t)sig) - 100000000 * ((uint32_t) q);
128 sig = q;
129 uint32_t c = r % 10000;
130 r /= 10000;
131 uint32_t d = r % 10000;
132 uint32_t c0 = (c % 100) << 1;
133 uint32_t c1 = (c / 100) << 1;
134 uint32_t d0 = (d % 100) << 1;
135 uint32_t d1 = (d / 100) << 1;
136 copy_two_digs(p - 2, Digits + c0);
137 copy_two_digs(p - 4, Digits + c1);
138 copy_two_digs(p - 6, Digits + d0);
139 copy_two_digs(p - 8, Digits + d1);
140 p -= 8;
141 }
142
143 uint32_t sig2 = (uint32_t)sig;
144 while (sig2 >= 10000) {
145 uint32_t c = sig2 - 10000 * (sig2 / 10000);
146 sig2 /= 10000;
147 uint32_t c0 = (c % 100) << 1;
148 uint32_t c1 = (c / 100) << 1;
149 copy_two_digs(p - 2, Digits + c0);
150 copy_two_digs(p - 4, Digits + c1);
151 p -= 4;
152 }
153 if (sig2 >= 100) {
154 uint32_t c = (sig2 % 100) << 1;
155 sig2 /= 100;
156 copy_two_digs(p - 2, Digits + c);
157 p -= 2;
158 }
159 if (sig2 >= 10) {
160 uint32_t c = sig2 << 1;
161 copy_two_digs(p - 2, Digits + c);
162 } else {
163 *out = (char) ('0' + sig2);
164 }
165 return out + cnt;
166}
167
168static inline char* format_exponent(f64_dec v, char *out, unsigned cnt) {
169 char* p = out + 1;

Callers 2

write_decFunction · 0.85
f64toaFunction · 0.85

Calls 1

copy_two_digsFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…