Skip to content

Commit c860f35

Browse files
authored
Merge pull request #18 from Antares0982/minor-fix
Minor fix
2 parents 16b2239 + 1c91501 commit c860f35

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

src/ftoa.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,10 +1643,11 @@ static inline char* xjb16(uint16_t bits, char* buf) {
16431643
uint32_t first_sig_pos = (FIXED_MIN <= e10 && e10 <= -1) ? 1 - e10 : 0;
16441644
uint32_t dot_pos = (0 <= e10 && e10 <= FIXED_MAX) ? 1 + e10 : 1;
16451645
uint32_t move_pos = dot_pos + ((0 <= e10 || e10 < FIXED_MIN));
1646-
uint32_t exp_pos = (FIXED_MIN <= e10 && e10 <= -1)
1647-
? dec_sig_len
1648-
: (0 <= e10 && e10 <= FIXED_MAX ? (e10 + 3 > dec_sig_len + 1 ? e10 + 3 : dec_sig_len + 1)
1649-
: (dec_sig_len + 1 - (dec_sig_len == 1)));
1646+
uint32_t exp_pos =
1647+
(FIXED_MIN <= e10 && e10 <= -1)
1648+
? dec_sig_len
1649+
: (0 <= e10 && e10 <= FIXED_MAX ? ((uint32_t)(e10 + 3) > dec_sig_len + 1 ? e10 + 3 : dec_sig_len + 1)
1650+
: (dec_sig_len + 1 - (dec_sig_len == 1)));
16501651
char* buf_origin = buf;
16511652
buf += first_sig_pos;
16521653
ascii = D5 ? ascii : (ascii >> 8);
@@ -1674,7 +1675,7 @@ static inline char* xjb16(uint16_t bits, char* buf) {
16741675
if (FIXED_MIN <= e10 && e10 <= FIXED_MAX)
16751676
exp_result = 0;
16761677
uint32_t exp_len = (FIXED_MIN <= e10 && e10 <= FIXED_MAX) ? 0 : 4;
1677-
memcpy(buf, &exp_result, 8);
1678+
memcpy(buf, &exp_result, 4);
16781679
return buf + exp_len;
16791680
}
16801681
static inline char* xjb80(uint16_t v_hi16, uint64_t v_lo64, char* buf) {
@@ -1686,9 +1687,9 @@ static inline char* xjb80(uint16_t v_hi16, uint64_t v_lo64, char* buf) {
16861687
buf += v_hi16 >> 15;
16871688
u64 sig = v_lo64;
16881689
u64 exp = v_hi16 & ((1 << 15) - 1);
1689-
u64 sig_bin_hi64 = 1;//sig_bin has 65 bit;
1690+
u64 sig_bin_hi64 = 1; // sig_bin has 65 bit;
16901691
u64 sig_bin_lo64 = sig;
1691-
//u64 sig_bin = sig | ((u128)1 << 64); // need u128
1692+
// u64 sig_bin = sig | ((u128)1 << 64); // need u128
16921693
i64 exp_bin = (i64)exp - ((1 << 14) - 1) - 64;
16931694
if (exp == 0) [[unlikely]] {
16941695
if (sig == 0)
@@ -1698,12 +1699,10 @@ static inline char* xjb80(uint16_t v_hi16, uint64_t v_lo64, char* buf) {
16981699
}
16991700
if (exp == 32767) [[unlikely]]
17001701
return (char*)memcpy(buf, sig ? "nan" : "inf", 4) + 3;
1701-
1702-
i64 k = 0;// floor(exp_bin*log10(2))
1703-
//get_pow10 : 10**(-k-1)
1704-
//compute m_up and up_down, one;
1705-
17061702

1703+
i64 k = 0; // floor(exp_bin*log10(2))
1704+
// get_pow10 : 10**(-k-1)
1705+
// compute m_up and up_down, one;
17071706

17081707
return buf;
17091708
}
@@ -1712,10 +1711,10 @@ static inline char* xjb128(uint64_t v_hi64, uint64_t v_lo64, char* buf) {
17121711
// v = {v_hi64, v_lo64} ; v_hi64 is the highest 64bits, v_lo64 is the lowest 64bits
17131712

17141713
// 128 bit = 1 + 15 + 112; sign + exp + sig
1715-
1714+
17161715
return buf;
17171716
}
1718-
static inline char* xjb256(uint64_t* v,char* buf){
1717+
static inline char* xjb256(uint64_t* v, char* buf) {
17191718
// todo
17201719
// v = {v[0], v[1], v[2], v[3]} ; v[0] is the highest 64bits, v[3] is the lowest 64bits
17211720

@@ -1746,4 +1745,5 @@ char* xjb_ftoa(uint64_t v_hi64, uint64_t v_lo64, char* buf) {
17461745
}
17471746
char* xjb_ftoa(uint64_t* v, char* buf) {
17481747
return xjb::xjb256(v, buf);
1749-
}
1748+
}
1749+

0 commit comments

Comments
 (0)