diff --git a/generic_2ondemand_2document_8h_source.html b/generic_2ondemand_2document_8h_source.html
index aa7cf22be..f83ad78a9 100644
--- a/generic_2ondemand_2document_8h_source.html
+++ b/generic_2ondemand_2document_8h_source.html
@@ -494,7 +494,7 @@ $(document).ready(function(){initNavTree('generic_2ondemand_2document_8h_source.
A type representing a JSON number.
-
+
diff --git a/json__type_8h_source.html b/json__type_8h_source.html
index d1039bcd8..0c2e16bd6 100644
--- a/json__type_8h_source.html
+++ b/json__type_8h_source.html
@@ -136,47 +136,45 @@ $(document).ready(function(){initNavTree('json__type_8h_source.html',''); initRe
- 95 friend error_code numberparsing::slow_float_parsing(simdjson_unused
const uint8_t * src, W writer);
+ 95 friend error_code numberparsing::write_float(
const uint8_t *
const src,
bool negative, uint64_t i,
const uint8_t * start_digits,
size_t digit_count, int64_t exponent, W &writer);
- 97 friend error_code numberparsing::write_float(
const uint8_t *
const src,
bool negative, uint64_t i,
const uint8_t * start_digits,
size_t digit_count, int64_t exponent, W &writer);
-
- 99 friend error_code numberparsing::parse_number(
const uint8_t *
const src, W &writer);
-
-
-
-
-
- 117 double floating_point_number;
- 118 int64_t signed_integer;
- 119 uint64_t unsigned_integer;
-
- 121 number_type type{number_type::signed_integer};
-
-
-
-
- 132 #if SIMDJSON_EXCEPTIONS
- 142 inline std::ostream&
operator<<(std::ostream& out, simdjson_result<json_type> &type) noexcept(
false);
-
-
-
-
-
+ 97 friend error_code numberparsing::parse_number(
const uint8_t *
const src, W &writer);
+
+
+
+
+
+ 115 double floating_point_number;
+ 116 int64_t signed_integer;
+ 117 uint64_t unsigned_integer;
+
+ 119 number_type type{number_type::signed_integer};
+
+
+
+
+ 130 #if SIMDJSON_EXCEPTIONS
+ 140 inline std::ostream&
operator<<(std::ostream& out, simdjson_result<json_type> &type) noexcept(
false);
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
A forward-only JSON array.
An ephemeral JSON value returned during iteration.
simdjson::SIMDJSON_IMPLEMENTATION::number_type number_type
diff --git a/namespacesimdjson.js b/namespacesimdjson.js
index d1ab8e766..81e114fcc 100644
--- a/namespacesimdjson.js
+++ b/namespacesimdjson.js
@@ -9,7 +9,6 @@ var namespacesimdjson =
[ "SIMDJSON_IMPLEMENTATION", null, [
[ "numberparsing", null, [
[ "parse_number", "numberparsing_8h.html#abfab4a11a66cf3429d4b584165a0d47e", null ],
- [ "slow_float_parsing", "numberparsing_8h.html#a8a19d7f5fc0e7495a136073daee8df78", null ],
[ "write_float", "numberparsing_8h.html#a4c645a86ea19178e55e6ceaa96ad29ae", null ]
] ],
[ "ondemand", "namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html", "namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand" ],
diff --git a/navtreedata.js b/navtreedata.js
index f47a98c99..0e3b336bc 100644
--- a/navtreedata.js
+++ b/navtreedata.js
@@ -189,12 +189,12 @@ var NAVTREE =
var NAVTREEINDEX =
[
-"",
-"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a7c20332b4481f29ace969e40cfce5f5f",
-"classsimdjson_1_1dom_1_1object.html#acc66a2f2eb74fbe359d4064531764f50",
-"jsoncharutils_8h_source.html",
-"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#aa3354f8230db6df962b47633591fa232",
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a84d35046d2328c1b52052b60abdfff5f"
+"amalgamated_8h_source.html",
+"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#ab6b2e9769ce75fc625aa91504f26d82b",
+"classsimdjson_1_1dom_1_1object_1_1iterator.html",
+"jsonparser_8h_source.html",
+"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ac915f0c06e5ab0363e09593bba651330",
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a9e474f04cbd9cf41a1e698ba6bfbf701"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex0.js b/navtreeindex0.js
index 4fda0fee9..2f82b8c8f 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -1,9 +1,5 @@
var NAVTREEINDEX0 =
{
-"":[10,0,0,6],
-"":[10,0,0,6,0],
-"":[10,0,1],
-"":[10,0,0,6,1,0],
"amalgamated_8h_source.html":[12,0,0,0,4,1],
"annotated.html":[11,0],
"arm64_2base_8h_source.html":[12,0,0,0,0,0],
@@ -249,5 +245,9 @@ var NAVTREEINDEX0 =
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a60ad1270b86c6a0c27c03b685aec9666":[11,0,0,1,0,7,13],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a62b96abab9d1338d5f5e513f90f8d7d0":[11,0,0,1,0,7,20],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a6724eb440d3fb40018a9a47c715352ed":[11,0,0,1,0,7,1],
-"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a71600033791f9c6bbc9f40fb2f82fdc8":[11,0,0,1,0,7,15]
+"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a71600033791f9c6bbc9f40fb2f82fdc8":[11,0,0,1,0,7,15],
+"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a7c20332b4481f29ace969e40cfce5f5f":[11,0,0,1,0,7,17],
+"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a9f1cd920980a8bc0330d2c7f1f0be74b":[11,0,0,1,0,7,14],
+"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#aa14649f261616070b04829c9ba6b28da":[11,0,0,1,0,7,18],
+"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#aa25020165cc5a191026a243a10da6558":[11,0,0,1,0,7,8]
};
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 5e0700f7d..1ee13adee 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,9 +1,5 @@
var NAVTREEINDEX1 =
{
-"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a7c20332b4481f29ace969e40cfce5f5f":[11,0,0,1,0,7,17],
-"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a9f1cd920980a8bc0330d2c7f1f0be74b":[11,0,0,1,0,7,14],
-"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#aa14649f261616070b04829c9ba6b28da":[11,0,0,1,0,7,18],
-"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#aa25020165cc5a191026a243a10da6558":[11,0,0,1,0,7,8],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#ab6b2e9769ce75fc625aa91504f26d82b":[11,0,0,1,0,7,7],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#ad210f9115679a625ada433add55eff51":[11,0,0,1,0,7,12],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#ad742392a9223e096f1be16b7bbf20ca8":[11,0,0,1,0,7,6],
@@ -249,5 +245,9 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1object.html#a5db654c4e603254bd308a7c068d79c43":[11,0,0,0,4,11],
"classsimdjson_1_1dom_1_1object.html#a79cf291477bcaa1bf2328411b411587d":[11,0,0,0,4,6],
"classsimdjson_1_1dom_1_1object.html#a93ec5c36aae913f266f533b2e02bc873":[11,0,0,0,4,9],
-"classsimdjson_1_1dom_1_1object.html#ab075da9eb7678f6321cecf4cbd196039":[11,0,0,0,4,3]
+"classsimdjson_1_1dom_1_1object.html#ab075da9eb7678f6321cecf4cbd196039":[11,0,0,0,4,3],
+"classsimdjson_1_1dom_1_1object.html#acc66a2f2eb74fbe359d4064531764f50":[11,0,0,0,4,8],
+"classsimdjson_1_1dom_1_1object.html#ace84581be0fee46d5128c49710522aba":[11,0,0,0,4,4],
+"classsimdjson_1_1dom_1_1object.html#ae2e1a8cbaab9d352495d1dc993407be3":[11,0,0,0,4,1],
+"classsimdjson_1_1dom_1_1object.html#afe127a7e9ec8dab9ec76160525a68a83":[11,0,0,0,4,5]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index fe2e59648..1a348bfc0 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,9 +1,5 @@
var NAVTREEINDEX2 =
{
-"classsimdjson_1_1dom_1_1object.html#acc66a2f2eb74fbe359d4064531764f50":[11,0,0,0,4,8],
-"classsimdjson_1_1dom_1_1object.html#ace84581be0fee46d5128c49710522aba":[11,0,0,0,4,4],
-"classsimdjson_1_1dom_1_1object.html#ae2e1a8cbaab9d352495d1dc993407be3":[11,0,0,0,4,1],
-"classsimdjson_1_1dom_1_1object.html#afe127a7e9ec8dab9ec76160525a68a83":[11,0,0,0,4,5],
"classsimdjson_1_1dom_1_1object_1_1iterator.html":[11,0,0,0,4,0],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a05f201b94ff4852a1f41bca76595280d":[11,0,0,0,4,0,17],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a1da5ce328cc2609432be961736c6e810":[11,0,0,0,4,0,9],
@@ -249,5 +245,9 @@ var NAVTREEINDEX2 =
"json__iterator-inl_8h_source.html":[12,0,0,0,4,0,13],
"json__iterator_8h_source.html":[12,0,0,0,4,0,14],
"json__type-inl_8h_source.html":[12,0,0,0,4,0,15],
-"json__type_8h_source.html":[12,0,0,0,4,0,16]
+"json__type_8h_source.html":[12,0,0,0,4,0,16],
+"jsoncharutils_8h_source.html":[12,0,0,0,4,8],
+"jsoncharutils__tables_8h_source.html":[12,0,0,0,7,3],
+"jsonformatutils_8h_source.html":[12,0,0,0,7,4],
+"jsonioutil_8h_source.html":[12,0,0,0,24]
};
diff --git a/navtreeindex3.js b/navtreeindex3.js
index 460591764..6b03b85ca 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -1,9 +1,5 @@
var NAVTREEINDEX3 =
{
-"jsoncharutils_8h_source.html":[12,0,0,0,4,8],
-"jsoncharutils__tables_8h_source.html":[12,0,0,0,7,3],
-"jsonformatutils_8h_source.html":[12,0,0,0,7,4],
-"jsonioutil_8h_source.html":[12,0,0,0,24],
"jsonparser_8h_source.html":[12,0,0,0,2,9],
"logger-inl_8h.html#a0176c136680aa97eb8bd8f57033f41be":[10,0,0,6,1,0,9],
"logger-inl_8h.html#a12f4fdff59099b28730ba4288877437f":[10,0,0,6,1,0,16],
@@ -249,5 +245,9 @@ var NAVTREEINDEX3 =
"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#a6f753d5e1bc479321c51b54392a96a65":[10,0,0,6,1,22],
"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#a7cd33d336f2ede5302be79ada9e7bffe":[10,0,0,6,1,30],
"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#a8dcb00bbb408a0f4ed45601b6de755a6":[10,0,0,6,1,17],
-"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#a997747305f387c28e46394c0955d2937":[10,0,0,6,1,28]
+"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#a997747305f387c28e46394c0955d2937":[10,0,0,6,1,28],
+"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#aa3354f8230db6df962b47633591fa232":[10,0,0,6,1,23],
+"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#aab771b17058b0c93bdd0a8679c2c4d84":[10,0,0,6,1,32],
+"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ab10943c6107de5337f376a6939f817af":[10,0,0,6,1,20],
+"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ac3a4f6af474f2b5f6d749f7452bb5477":[10,0,0,6,1,25]
};
diff --git a/navtreeindex4.js b/navtreeindex4.js
index 82d9e0ba0..e08ae3ee2 100644
--- a/navtreeindex4.js
+++ b/navtreeindex4.js
@@ -1,9 +1,5 @@
var NAVTREEINDEX4 =
{
-"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#aa3354f8230db6df962b47633591fa232":[10,0,0,6,1,23],
-"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#aab771b17058b0c93bdd0a8679c2c4d84":[10,0,0,6,1,32],
-"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ab10943c6107de5337f376a6939f817af":[10,0,0,6,1,20],
-"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ac3a4f6af474f2b5f6d749f7452bb5477":[10,0,0,6,1,25],
"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ac915f0c06e5ab0363e09593bba651330":[10,0,0,6,1,16],
"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ac915f0c06e5ab0363e09593bba651330a37a6259cc0c1dae299a7866489dff0bd":[10,0,0,6,1,16,5],
"namespacesimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand.html#ac915f0c06e5ab0363e09593bba651330a84e2c64f38f78ba3ea5c905ab5a2da27":[10,0,0,6,1,16,4],
@@ -38,8 +34,7 @@ var NAVTREEINDEX4 =
"namespacesimdjson_1_1icelake.html":[10,0,0,4],
"namespacesimdjson_1_1ppc64.html":[10,0,0,5],
"namespacesimdjson_1_1westmere.html":[10,0,0,7],
-"numberparsing_8h.html#a4c645a86ea19178e55e6ceaa96ad29ae":[10,0,0,6,0,2],
-"numberparsing_8h.html#a8a19d7f5fc0e7495a136073daee8df78":[10,0,0,6,0,1],
+"numberparsing_8h.html#a4c645a86ea19178e55e6ceaa96ad29ae":[10,0,0,6,0,1],
"numberparsing_8h.html#abfab4a11a66cf3429d4b584165a0d47e":[10,0,0,6,0,0],
"numberparsing_8h.html#ade2dc27fe18a87c9fb48782885fc76a3":[10,0,0,6,6],
"numberparsing_8h_source.html":[12,0,0,0,4,9],
@@ -95,26 +90,25 @@ var NAVTREEINDEX4 =
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base.html#af8a436d40886a295f618311d3849d7e5":[11,0,0,1,3,2],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base.html#affadf1e1f762248d60950e333b739820":[11,0,0,1,3,7],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html":[11,0,0,1,0,6],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a0902647d571633bcaf937831430df3ba":[11,0,0,1,0,6,19],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a2b56b11b68e621bbd8ce2051ed10ab60":[11,0,0,1,0,6,18],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a0902647d571633bcaf937831430df3ba":[11,0,0,1,0,6,18],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a2b56b11b68e621bbd8ce2051ed10ab60":[11,0,0,1,0,6,17],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a31e829fc9dac6ebac9dca7af20898b53":[11,0,0,1,0,6,15],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a38d6b4b4e91f30c8def71997d23454c2":[11,0,0,1,0,6,9],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a41dc1bfd660e0b9c86cb5a5171fd7c02":[11,0,0,1,0,6,3],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a48f9e54ebd40e1c060be0a4b1d4ff823":[11,0,0,1,0,6,8],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a4963fde41cc9ccb03339a4594c005e04":[11,0,0,1,0,6,17],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a5053e80f5724f8e1ce7dc513b2c93463":[11,0,0,1,0,6,16],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a4963fde41cc9ccb03339a4594c005e04":[11,0,0,1,0,6,16],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a5d3e0d03bfe425c824dff96329c2f168":[11,0,0,1,0,6,12],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a73da034f579d79dc2803063e7178a899":[11,0,0,1,0,6,22],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a73da034f579d79dc2803063e7178a899":[11,0,0,1,0,6,21],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a8c8d29d831635c958e87de0cc2dab8b4":[11,0,0,1,0,6,6],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a92b12b32ee177c2a818618d0595d2584":[11,0,0,1,0,6,5],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#aa17e81138859bcef934d9502a9852049":[11,0,0,1,0,6,20],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#aa17e81138859bcef934d9502a9852049":[11,0,0,1,0,6,19],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#aa3481ec0d0726a732688b7fc64372049":[11,0,0,1,0,6,2],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#aad531f215d835148bc5bcd49c5cae844":[11,0,0,1,0,6,11],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#ab261642a30f5e26b0769ce701cd5b9f8":[11,0,0,1,0,6,4],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#abb713c2347a676fe6514e2eae97c4f5d":[11,0,0,1,0,6,13],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#ac6b75b1d1af73c9ef8958e573c367e1c":[11,0,0,1,0,6,14],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#ad4f5dee3c5d0c1f3b545d894ec331309":[11,0,0,1,0,6,23],
-"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#adb07d931b15145b11886aede86da4295":[11,0,0,1,0,6,21],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#ad4f5dee3c5d0c1f3b545d894ec331309":[11,0,0,1,0,6,22],
+"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#adb07d931b15145b11886aede86da4295":[11,0,0,1,0,6,20],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#adb931b17ba9d4d41dd8111ad9288256c":[11,0,0,1,0,6,1],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#ae5b327f855878cba9b026059a1fc8a1b":[11,0,0,1,0,6,0],
"structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#af0e89976b80a7a7dedaf8c1a7cfd64a2":[11,0,0,1,0,6,10],
@@ -219,8 +213,8 @@ var NAVTREEINDEX4 =
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ac994a43ba5e7fbde29d82c8d437c5fb7":[11,0,0,10,53],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ad2c7498f364cf7803f83408a8629a5ac":[11,0,0,10,47],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ad93b76ab3636d40ce75059e0f8653c6f":[11,0,0,10,8],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ada47799dcb5e64e43851d78d346b1d47":[11,0,0,10,25],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ada47799dcb5e64e43851d78d346b1d47":[11,0,0,10,24],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ada47799dcb5e64e43851d78d346b1d47":[11,0,0,10,25],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#adb70072b98e8c3c650ce695f3e928e66":[11,0,0,10,16],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#adb70072b98e8c3c650ce695f3e928e66":[11,0,0,10,14],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ae69c9218f418dab3b1aafeb2b6504fab":[11,0,0,10,56],
@@ -249,5 +243,11 @@ var NAVTREEINDEX4 =
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a68051e56ba7cbc7951bdc49d02bb62fa":[11,0,0,11,1],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a6aae812b1929c086b593c0b3bad9d333":[11,0,0,11,33],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a6c9dc17807098fba9f964e792c7daf2e":[11,0,0,11,25],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a6cdc33399794644363a720d6f271dd8d":[11,0,0,11,22]
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a6cdc33399794644363a720d6f271dd8d":[11,0,0,11,22],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a84d35046d2328c1b52052b60abdfff5f":[11,0,0,11,5],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a858f380c29315521e43dd6025785e7a4":[11,0,0,11,40],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a90ecb32d9f0c497568d4de9b9affcb04":[11,0,0,11,23],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a940c313d530e0254342235d441e334b0":[11,0,0,11,6],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a956a0b0a4f8f910c45be61370ae96586":[11,0,0,11,32],
+"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a9d15caa939a40325a3dabbe3224ddbbf":[11,0,0,11,41]
};
diff --git a/navtreeindex5.js b/navtreeindex5.js
index c8ff6ca9f..0e7a54c2a 100644
--- a/navtreeindex5.js
+++ b/navtreeindex5.js
@@ -1,11 +1,5 @@
var NAVTREEINDEX5 =
{
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a84d35046d2328c1b52052b60abdfff5f":[11,0,0,11,5],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a858f380c29315521e43dd6025785e7a4":[11,0,0,11,40],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a90ecb32d9f0c497568d4de9b9affcb04":[11,0,0,11,23],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a940c313d530e0254342235d441e334b0":[11,0,0,11,6],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a956a0b0a4f8f910c45be61370ae96586":[11,0,0,11,32],
-"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a9d15caa939a40325a3dabbe3224ddbbf":[11,0,0,11,41],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#a9e474f04cbd9cf41a1e698ba6bfbf701":[11,0,0,11,46],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#aa2873ff8fc330dd1138bba61e7487287":[11,0,0,11,43],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html#aa53af9357f3c3aa144ccda80ed709d4c":[11,0,0,11,0],
@@ -200,5 +194,9 @@ var NAVTREEINDEX5 =
"westmere_2ondemand_8h_source.html":[12,0,0,0,10,8],
"westmere_2simd_8h_source.html":[12,0,0,0,10,9],
"westmere_2stringparsing__defs_8h_source.html":[12,0,0,0,10,10],
-"westmere_8h_source.html":[12,0,0,0,35]
+"westmere_8h_source.html":[12,0,0,0,35],
+"":[10,0,0,6],
+"":[10,0,0,6,0],
+"":[10,0,1],
+"":[10,0,0,6,1,0]
};
diff --git a/numberparsing_8h_source.html b/numberparsing_8h_source.html
index c1057d35d..4651481a1 100644
--- a/numberparsing_8h_source.html
+++ b/numberparsing_8h_source.html
@@ -535,222 +535,222 @@ $(document).ready(function(){initNavTree('numberparsing_8h_source.html',''); ini
-
- 450 error_code slow_float_parsing(simdjson_unused
const uint8_t * src, W writer) {
-
- 452 if (parse_float_fallback(src, &d)) {
- 453 writer.append_double(d);
-
-
- 456 return INVALID_NUMBER(src);
-
-
-
- 461 simdjson_inline
error_code write_float(
const uint8_t *
const src,
bool negative, uint64_t i,
const uint8_t * start_digits,
size_t digit_count, int64_t exponent, W &writer) {
-
-
-
-
-
-
-
- 469 if (simdjson_unlikely(digit_count > 19 && significant_digits(start_digits, digit_count) > 19)) {
-
-
-
-
-
-
-
-
-
-
-
-
- 482 error_code error = slow_float_parsing(src, writer);
- 483 writer.skip_double();
-
-
-
-
-
- 489 if (simdjson_unlikely(exponent < simdjson::internal::smallest_power) || (exponent > simdjson::internal::largest_power)) {
-
-
-
-
- 494 static_assert(simdjson::internal::smallest_power <= -342,
"smallest_power is not small enough");
-
- 496 if((exponent < simdjson::internal::smallest_power) || (i == 0)) {
-
- 498 WRITE_DOUBLE(negative ? -0.0 : 0.0, src, writer);
-
-
-
- 502 return INVALID_NUMBER(src);
-
-
-
- 506 if (!compute_float_64(exponent, i, negative, d)) {
-
- 508 if (!parse_float_fallback(src, &d)) {
return INVALID_NUMBER(src); }
-
- 510 WRITE_DOUBLE(d, src, writer);
-
-
+ 449 static error_code slow_float_parsing(simdjson_unused
const uint8_t * src,
double* answer) {
+ 450 if (parse_float_fallback(src, answer)) {
+
+
+ 453 return INVALID_NUMBER(src);
+
+
+
+ 458 simdjson_inline
error_code write_float(
const uint8_t *
const src,
bool negative, uint64_t i,
const uint8_t * start_digits,
size_t digit_count, int64_t exponent, W &writer) {
+
+
+
+
+
+
+
+ 466 if (simdjson_unlikely(digit_count > 19 && significant_digits(start_digits, digit_count) > 19)) {
+
+
+
+
+
+
+
+
+
+
+
+
+ 479 error_code error = slow_float_parsing(src, &d);
+ 480 writer.append_double(d);
+
+
+
+
+
+ 486 if (simdjson_unlikely(exponent < simdjson::internal::smallest_power) || (exponent > simdjson::internal::largest_power)) {
+
+
+
+
+ 491 static_assert(simdjson::internal::smallest_power <= -342,
"smallest_power is not small enough");
+
+ 493 if((exponent < simdjson::internal::smallest_power) || (i == 0)) {
+
+ 495 WRITE_DOUBLE(negative ? -0.0 : 0.0, src, writer);
+
+
+
+ 499 return INVALID_NUMBER(src);
+
+
+
+ 503 if (!compute_float_64(exponent, i, negative, d)) {
+
+ 505 if (!parse_float_fallback(src, &d)) {
return INVALID_NUMBER(src); }
+
+ 507 WRITE_DOUBLE(d, src, writer);
+
+
+
+
+ 512 #ifdef SIMDJSON_SKIPNUMBERPARSING
-
- 515 #ifdef SIMDJSON_SKIPNUMBERPARSING
-
-
- 518 simdjson_inline
error_code parse_number(
const uint8_t *
const, W &writer) {
- 519 writer.append_s64(0);
-
-
-
- 523 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned(
const uint8_t *
const src) noexcept {
return 0; }
- 524 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer(
const uint8_t *
const src) noexcept {
return 0; }
- 525 simdjson_unused simdjson_inline simdjson_result<double> parse_double(
const uint8_t *
const src) noexcept {
return 0; }
- 526 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned_in_string(
const uint8_t *
const src) noexcept {
return 0; }
- 527 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer_in_string(
const uint8_t *
const src) noexcept {
return 0; }
- 528 simdjson_unused simdjson_inline simdjson_result<double> parse_double_in_string(
const uint8_t *
const src) noexcept {
return 0; }
- 529 simdjson_unused simdjson_inline
bool is_negative(
const uint8_t * src) noexcept {
return false; }
- 530 simdjson_unused simdjson_inline simdjson_result<bool> is_integer(
const uint8_t * src) noexcept {
return false; }
- 531 simdjson_unused simdjson_inline simdjson_result<number_type> get_number_type(
const uint8_t * src) noexcept {
return number_type::signed_integer; }
-
-
-
-
-
-
-
-
-
-
-
-
- 544 simdjson_inline
error_code parse_number(
const uint8_t *
const src, W &writer) {
-
-
-
-
- 549 bool negative = (*src ==
'-');
- 550 const uint8_t *p = src + uint8_t(negative);
-
-
-
-
-
- 556 const uint8_t *
const start_digits = p;
-
- 558 while (parse_digit(*p, i)) { p++; }
-
-
-
- 562 size_t digit_count = size_t(p - start_digits);
- 563 if (digit_count == 0 || (
'0' == *start_digits && digit_count > 1)) {
return INVALID_NUMBER(src); }
-
-
-
-
- 568 int64_t exponent = 0;
- 569 bool is_float =
false;
-
-
-
- 573 SIMDJSON_TRY( parse_decimal_after_separator(src, p, i, exponent) );
- 574 digit_count = int(p - start_digits);
-
- 576 if ((
'e' == *p) || (
'E' == *p)) {
-
-
- 579 SIMDJSON_TRY( parse_exponent(src, p, exponent) );
-
-
- 582 const bool dirty_end = jsoncharutils::is_not_structural_or_whitespace(*p);
- 583 SIMDJSON_TRY( write_float(src, negative, i, start_digits, digit_count, exponent, writer) );
- 584 if (dirty_end) {
return INVALID_NUMBER(src); }
-
-
-
-
-
-
- 591 size_t longest_digit_count = negative ? 19 : 20;
- 592 if (digit_count > longest_digit_count) {
return INVALID_NUMBER(src); }
- 593 if (digit_count == longest_digit_count) {
-
-
- 596 if (i > uint64_t(INT64_MAX)+1) {
return INVALID_NUMBER(src); }
- 597 WRITE_INTEGER(~i+1, src, writer);
- 598 if (jsoncharutils::is_not_structural_or_whitespace(*p)) {
return INVALID_NUMBER(src); }
-
-
-
-
-
-
-
-
-
-
-
-
-
- 612 }
else if (src[0] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INVALID_NUMBER(src); }
-
-
-
- 616 if (i > uint64_t(INT64_MAX)) {
- 617 WRITE_UNSIGNED(i, src, writer);
-
- 619 WRITE_INTEGER(negative ? (~i+1) : i, src, writer);
-
- 621 if (jsoncharutils::is_not_structural_or_whitespace(*p)) {
return INVALID_NUMBER(src); }
-
-
+
+ 515 simdjson_inline
error_code parse_number(
const uint8_t *
const, W &writer) {
+ 516 writer.append_s64(0);
+
+
+
+ 520 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned(
const uint8_t *
const src) noexcept {
return 0; }
+ 521 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer(
const uint8_t *
const src) noexcept {
return 0; }
+ 522 simdjson_unused simdjson_inline simdjson_result<double> parse_double(
const uint8_t *
const src) noexcept {
return 0; }
+ 523 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned_in_string(
const uint8_t *
const src) noexcept {
return 0; }
+ 524 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer_in_string(
const uint8_t *
const src) noexcept {
return 0; }
+ 525 simdjson_unused simdjson_inline simdjson_result<double> parse_double_in_string(
const uint8_t *
const src) noexcept {
return 0; }
+ 526 simdjson_unused simdjson_inline
bool is_negative(
const uint8_t * src) noexcept {
return false; }
+ 527 simdjson_unused simdjson_inline simdjson_result<bool> is_integer(
const uint8_t * src) noexcept {
return false; }
+ 528 simdjson_unused simdjson_inline simdjson_result<number_type> get_number_type(
const uint8_t * src) noexcept {
return number_type::signed_integer; }
+
+
+
+
+
+
+
+
+
+
+
+
+ 541 simdjson_inline
error_code parse_number(
const uint8_t *
const src, W &writer) {
+
+
+
+
+ 546 bool negative = (*src ==
'-');
+ 547 const uint8_t *p = src + uint8_t(negative);
+
+
+
+
+
+ 553 const uint8_t *
const start_digits = p;
+
+ 555 while (parse_digit(*p, i)) { p++; }
+
+
+
+ 559 size_t digit_count = size_t(p - start_digits);
+ 560 if (digit_count == 0 || (
'0' == *start_digits && digit_count > 1)) {
return INVALID_NUMBER(src); }
+
+
+
+
+ 565 int64_t exponent = 0;
+ 566 bool is_float =
false;
+
+
+
+ 570 SIMDJSON_TRY( parse_decimal_after_separator(src, p, i, exponent) );
+ 571 digit_count = int(p - start_digits);
+
+ 573 if ((
'e' == *p) || (
'E' == *p)) {
+
+
+ 576 SIMDJSON_TRY( parse_exponent(src, p, exponent) );
+
+
+ 579 const bool dirty_end = jsoncharutils::is_not_structural_or_whitespace(*p);
+ 580 SIMDJSON_TRY( write_float(src, negative, i, start_digits, digit_count, exponent, writer) );
+ 581 if (dirty_end) {
return INVALID_NUMBER(src); }
+
+
+
+
+
+
+ 588 size_t longest_digit_count = negative ? 19 : 20;
+ 589 if (digit_count > longest_digit_count) {
return INVALID_NUMBER(src); }
+ 590 if (digit_count == longest_digit_count) {
+
+
+ 593 if (i > uint64_t(INT64_MAX)+1) {
return INVALID_NUMBER(src); }
+ 594 WRITE_INTEGER(~i+1, src, writer);
+ 595 if (jsoncharutils::is_not_structural_or_whitespace(*p)) {
return INVALID_NUMBER(src); }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 609 }
else if (src[0] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INVALID_NUMBER(src); }
+
+
+
+ 613 if (i > uint64_t(INT64_MAX)) {
+ 614 WRITE_UNSIGNED(i, src, writer);
+
+ 616 WRITE_INTEGER(negative ? (~i+1) : i, src, writer);
+
+ 618 if (jsoncharutils::is_not_structural_or_whitespace(*p)) {
return INVALID_NUMBER(src); }
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 639 const uint8_t integer_string_finisher[256] = {
+
+
+
+
+
+
+
+
+
+
+
+ 636 const uint8_t integer_string_finisher[256] = {
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
@@ -773,583 +773,580 @@ $(document).ready(function(){initNavTree('numberparsing_8h_source.html',''); ini
-
-
-
-
-
-
- 694 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned(
const uint8_t *
const src) noexcept {
- 695 const uint8_t *p = src;
-
-
-
-
- 700 const uint8_t *
const start_digits = p;
-
- 702 while (parse_digit(*p, i)) { p++; }
-
-
-
- 706 size_t digit_count = size_t(p - start_digits);
-
-
-
-
-
- 712 if ((digit_count == 0) || (digit_count > 20)) {
return INCORRECT_TYPE; }
-
- 714 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
-
-
-
-
-
- 720 if (integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
-
- 722 if (digit_count == 20) {
-
-
-
-
-
-
-
-
-
-
-
-
- 735 if (src[0] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INCORRECT_TYPE; }
-
+
+
+
+ 691 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned(
const uint8_t *
const src) noexcept {
+ 692 const uint8_t *p = src;
+
+
+
+
+ 697 const uint8_t *
const start_digits = p;
+
+ 699 while (parse_digit(*p, i)) { p++; }
+
+
+
+ 703 size_t digit_count = size_t(p - start_digits);
+
+
+
+
+
+ 709 if ((digit_count == 0) || (digit_count > 20)) {
return INCORRECT_TYPE; }
+
+ 711 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
+
+
+
+
+
+ 717 if (integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
+
+ 719 if (digit_count == 20) {
+
+
+
+
+
+
+
+
+
+
+
+
+ 732 if (src[0] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INCORRECT_TYPE; }
+
+
+
+
-
-
-
-
-
-
- 744 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned(
const uint8_t *
const src,
const uint8_t *
const src_end) noexcept {
- 745 const uint8_t *p = src;
-
-
-
-
- 750 const uint8_t *
const start_digits = p;
-
- 752 while ((p != src_end) && parse_digit(*p, i)) { p++; }
-
-
-
- 756 size_t digit_count = size_t(p - start_digits);
-
-
-
-
-
- 762 if ((digit_count == 0) || (digit_count > 20)) {
return INCORRECT_TYPE; }
-
- 764 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
-
-
-
-
-
- 770 if ((p != src_end) && integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
-
- 772 if (digit_count == 20) {
-
-
-
-
-
-
-
-
-
-
-
-
- 785 if (src[0] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INCORRECT_TYPE; }
-
+
+
+
+ 741 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned(
const uint8_t *
const src,
const uint8_t *
const src_end) noexcept {
+ 742 const uint8_t *p = src;
+
+
+
+
+ 747 const uint8_t *
const start_digits = p;
+
+ 749 while ((p != src_end) && parse_digit(*p, i)) { p++; }
+
+
+
+ 753 size_t digit_count = size_t(p - start_digits);
+
+
+
+
+
+ 759 if ((digit_count == 0) || (digit_count > 20)) {
return INCORRECT_TYPE; }
+
+ 761 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
+
+
+
+
+
+ 767 if ((p != src_end) && integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
+
+ 769 if (digit_count == 20) {
+
+
+
+
+
+
+
+
+
+
+
+
+ 782 if (src[0] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INCORRECT_TYPE; }
+
+
+
+
-
-
-
-
- 792 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned_in_string(
const uint8_t *
const src) noexcept {
- 793 const uint8_t *p = src + 1;
-
-
-
-
- 798 const uint8_t *
const start_digits = p;
-
- 800 while (parse_digit(*p, i)) { p++; }
-
-
-
- 804 size_t digit_count = size_t(p - start_digits);
-
-
-
-
-
- 810 if ((digit_count == 0) || (digit_count > 20)) {
return INCORRECT_TYPE; }
-
- 812 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
-
-
-
-
-
-
-
- 820 if (digit_count == 20) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 835 if (src[1] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INCORRECT_TYPE; }
-
+
+ 789 simdjson_unused simdjson_inline simdjson_result<uint64_t> parse_unsigned_in_string(
const uint8_t *
const src) noexcept {
+ 790 const uint8_t *p = src + 1;
+
+
+
+
+ 795 const uint8_t *
const start_digits = p;
+
+ 797 while (parse_digit(*p, i)) { p++; }
+
+
+
+ 801 size_t digit_count = size_t(p - start_digits);
+
+
+
+
+
+ 807 if ((digit_count == 0) || (digit_count > 20)) {
return INCORRECT_TYPE; }
+
+ 809 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
+
+
+
+
+
+
+
+ 817 if (digit_count == 20) {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 832 if (src[1] != uint8_t(
'1') || i <= uint64_t(INT64_MAX)) {
return INCORRECT_TYPE; }
+
+
+
+
-
-
-
-
- 842 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer(
const uint8_t *src) noexcept {
-
-
-
- 846 bool negative = (*src ==
'-');
- 847 const uint8_t *p = src + uint8_t(negative);
-
-
-
-
-
- 853 const uint8_t *
const start_digits = p;
-
- 855 while (parse_digit(*p, i)) { p++; }
-
-
-
- 859 size_t digit_count = size_t(p - start_digits);
-
-
-
- 863 size_t longest_digit_count = 19;
-
-
-
- 867 if ((digit_count == 0) || (digit_count > longest_digit_count)) {
return INCORRECT_TYPE; }
-
- 869 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
-
-
-
-
-
- 875 if(integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
-
-
-
- 879 if(i > uint64_t(INT64_MAX) + uint64_t(negative)) {
return INCORRECT_TYPE; }
- 880 return negative ? (~i+1) : i;
-
-
-
-
- 885 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer(
const uint8_t *
const src,
const uint8_t *
const src_end) noexcept {
-
-
-
-
- 890 bool negative = (*src ==
'-');
- 891 const uint8_t *p = src + uint8_t(negative);
-
-
-
-
-
- 897 const uint8_t *
const start_digits = p;
-
- 899 while ((p != src_end) && parse_digit(*p, i)) { p++; }
-
-
-
- 903 size_t digit_count = size_t(p - start_digits);
-
-
-
- 907 size_t longest_digit_count = 19;
-
-
-
- 911 if ((digit_count == 0) || (digit_count > longest_digit_count)) {
return INCORRECT_TYPE; }
-
- 913 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
-
-
-
-
-
- 919 if((p != src_end) && integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
-
-
-
- 923 if(i > uint64_t(INT64_MAX) + uint64_t(negative)) {
return INCORRECT_TYPE; }
- 924 return negative ? (~i+1) : i;
-
-
-
- 928 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer_in_string(
const uint8_t *src) noexcept {
-
-
-
- 932 bool negative = (*(src + 1) ==
'-');
- 933 src += uint8_t(negative) + 1;
-
-
-
-
-
- 939 const uint8_t *
const start_digits = src;
-
- 941 while (parse_digit(*src, i)) { src++; }
-
-
-
- 945 size_t digit_count = size_t(src - start_digits);
-
-
-
- 949 size_t longest_digit_count = 19;
-
-
-
- 953 if ((digit_count == 0) || (digit_count > longest_digit_count)) {
return INCORRECT_TYPE; }
-
- 955 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
-
-
-
-
-
-
-
-
-
- 965 if(i > uint64_t(INT64_MAX) + uint64_t(negative)) {
return INCORRECT_TYPE; }
- 966 return negative ? (~i+1) : i;
-
-
- 969 simdjson_unused simdjson_inline simdjson_result<double> parse_double(
const uint8_t * src) noexcept {
-
-
-
- 973 bool negative = (*src ==
'-');
- 974 src += uint8_t(negative);
-
-
-
-
-
- 980 const uint8_t *p = src;
- 981 p += parse_digit(*p, i);
- 982 bool leading_zero = (i == 0);
- 983 while (parse_digit(*p, i)) { p++; }
-
-
- 986 if ( (leading_zero && p != src+1)) {
return NUMBER_ERROR; }
-
-
-
-
- 991 int64_t exponent = 0;
-
- 993 if (simdjson_likely(*p ==
'.')) {
+
+ 839 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer(
const uint8_t *src) noexcept {
+
+
+
+ 843 bool negative = (*src ==
'-');
+ 844 const uint8_t *p = src + uint8_t(negative);
+
+
+
+
+
+ 850 const uint8_t *
const start_digits = p;
+
+ 852 while (parse_digit(*p, i)) { p++; }
+
+
+
+ 856 size_t digit_count = size_t(p - start_digits);
+
+
+
+ 860 size_t longest_digit_count = 19;
+
+
+
+ 864 if ((digit_count == 0) || (digit_count > longest_digit_count)) {
return INCORRECT_TYPE; }
+
+ 866 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
+
+
+
+
+
+ 872 if(integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
+
+
+
+ 876 if(i > uint64_t(INT64_MAX) + uint64_t(negative)) {
return INCORRECT_TYPE; }
+ 877 return negative ? (~i+1) : i;
+
+
+
+
+ 882 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer(
const uint8_t *
const src,
const uint8_t *
const src_end) noexcept {
+
+
+
+
+ 887 bool negative = (*src ==
'-');
+ 888 const uint8_t *p = src + uint8_t(negative);
+
+
+
+
+
+ 894 const uint8_t *
const start_digits = p;
+
+ 896 while ((p != src_end) && parse_digit(*p, i)) { p++; }
+
+
+
+ 900 size_t digit_count = size_t(p - start_digits);
+
+
+
+ 904 size_t longest_digit_count = 19;
+
+
+
+ 908 if ((digit_count == 0) || (digit_count > longest_digit_count)) {
return INCORRECT_TYPE; }
+
+ 910 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
+
+
+
+
+
+ 916 if((p != src_end) && integer_string_finisher[*p] !=
SUCCESS) {
return error_code(integer_string_finisher[*p]); }
+
+
+
+ 920 if(i > uint64_t(INT64_MAX) + uint64_t(negative)) {
return INCORRECT_TYPE; }
+ 921 return negative ? (~i+1) : i;
+
+
+
+ 925 simdjson_unused simdjson_inline simdjson_result<int64_t> parse_integer_in_string(
const uint8_t *src) noexcept {
+
+
+
+ 929 bool negative = (*(src + 1) ==
'-');
+ 930 src += uint8_t(negative) + 1;
+
+
+
+
+
+ 936 const uint8_t *
const start_digits = src;
+
+ 938 while (parse_digit(*src, i)) { src++; }
+
+
+
+ 942 size_t digit_count = size_t(src - start_digits);
+
+
+
+ 946 size_t longest_digit_count = 19;
+
+
+
+ 950 if ((digit_count == 0) || (digit_count > longest_digit_count)) {
return INCORRECT_TYPE; }
+
+ 952 if ((
'0' == *start_digits) && (digit_count > 1)) {
return NUMBER_ERROR; }
+
+
+
+
+
+
+
+
+
+ 962 if(i > uint64_t(INT64_MAX) + uint64_t(negative)) {
return INCORRECT_TYPE; }
+ 963 return negative ? (~i+1) : i;
+
+
+ 966 simdjson_unused simdjson_inline simdjson_result<double> parse_double(
const uint8_t * src) noexcept {
+
+
+
+ 970 bool negative = (*src ==
'-');
+ 971 src += uint8_t(negative);
+
+
+
+
+
+ 977 const uint8_t *p = src;
+ 978 p += parse_digit(*p, i);
+ 979 bool leading_zero = (i == 0);
+ 980 while (parse_digit(*p, i)) { p++; }
+
+
+ 983 if ( (leading_zero && p != src+1)) {
return NUMBER_ERROR; }
+
+
+
+
+ 988 int64_t exponent = 0;
+
+ 990 if (simdjson_likely(*p ==
'.')) {
+
+ 992 const uint8_t *start_decimal_digits = p;
+
- 995 const uint8_t *start_decimal_digits = p;
-
-
- 998 while (parse_digit(*p, i)) { p++; }
- 999 exponent = -(p - start_decimal_digits);
-
-
- 1002 overflow = p-src-1 > 19;
- 1003 if (simdjson_unlikely(overflow && leading_zero)) {
-
- 1005 const uint8_t *start_digits = src + 2;
- 1006 while (*start_digits ==
'0') { start_digits++; }
- 1007 overflow = p-start_digits > 19;
-
-
- 1010 overflow = p-src > 19;
-
-
-
-
-
- 1016 if (*p ==
'e' || *p ==
'E') {
-
- 1018 bool exp_neg = *p ==
'-';
- 1019 p += exp_neg || *p ==
'+';
-
-
- 1022 const uint8_t *start_exp_digits = p;
- 1023 while (parse_digit(*p, exp)) { p++; }
-
- 1025 if (p-start_exp_digits == 0 || p-start_exp_digits > 19) {
return NUMBER_ERROR; }
+ 995 while (parse_digit(*p, i)) { p++; }
+ 996 exponent = -(p - start_decimal_digits);
+
+
+ 999 overflow = p-src-1 > 19;
+ 1000 if (simdjson_unlikely(overflow && leading_zero)) {
+
+ 1002 const uint8_t *start_digits = src + 2;
+ 1003 while (*start_digits ==
'0') { start_digits++; }
+ 1004 overflow = p-start_digits > 19;
+
+
+ 1007 overflow = p-src > 19;
+
+
+
+
+
+ 1013 if (*p ==
'e' || *p ==
'E') {
+
+ 1015 bool exp_neg = *p ==
'-';
+ 1016 p += exp_neg || *p ==
'+';
+
+
+ 1019 const uint8_t *start_exp_digits = p;
+ 1020 while (parse_digit(*p, exp)) { p++; }
+
+ 1022 if (p-start_exp_digits == 0 || p-start_exp_digits > 19) {
return NUMBER_ERROR; }
+
+ 1024 exponent += exp_neg ? 0-exp : exp;
+
- 1027 exponent += exp_neg ? 0-exp : exp;
-
-
- 1030 if (jsoncharutils::is_not_structural_or_whitespace(*p)) {
return NUMBER_ERROR; }
-
- 1032 overflow = overflow || exponent < simdjson::internal::smallest_power || exponent > simdjson::internal::largest_power;
-
-
-
-
-
- 1038 if (simdjson_likely(!overflow)) {
- 1039 if (compute_float_64(exponent, i, negative, d)) {
return d; }
+ 1027 if (jsoncharutils::is_not_structural_or_whitespace(*p)) {
return NUMBER_ERROR; }
+
+ 1029 overflow = overflow || exponent < simdjson::internal::smallest_power || exponent > simdjson::internal::largest_power;
+
+
+
+
+
+ 1035 if (simdjson_likely(!overflow)) {
+ 1036 if (compute_float_64(exponent, i, negative, d)) {
return d; }
+
+ 1038 if (!parse_float_fallback(src - uint8_t(negative), &d)) {
+
- 1041 if (!parse_float_fallback(src - uint8_t(negative), &d)) {
-
-
-
-
-
- 1047 simdjson_unused simdjson_inline
bool is_negative(
const uint8_t * src) noexcept {
- 1048 return (*src ==
'-');
-
-
- 1051 simdjson_unused simdjson_inline simdjson_result<bool> is_integer(
const uint8_t * src) noexcept {
- 1052 bool negative = (*src ==
'-');
- 1053 src += uint8_t(negative);
- 1054 const uint8_t *p = src;
- 1055 while(
static_cast<uint8_t
>(*p -
'0') <= 9) { p++; }
-
- 1057 if (jsoncharutils::is_structural_or_whitespace(*p)) {
return true; }
-
-
-
- 1061 simdjson_unused simdjson_inline simdjson_result<number_type> get_number_type(
const uint8_t * src) noexcept {
- 1062 bool negative = (*src ==
'-');
- 1063 src += uint8_t(negative);
- 1064 const uint8_t *p = src;
- 1065 while(
static_cast<uint8_t
>(*p -
'0') <= 9) { p++; }
-
- 1067 if (jsoncharutils::is_structural_or_whitespace(*p)) {
-
-
- 1070 if(negative) {
return number_type::signed_integer; }
-
-
- 1073 int digit_count = int(p - src);
- 1074 if(digit_count >= 19) {
- 1075 const uint8_t * smaller_big_integer =
reinterpret_cast<const uint8_t *
>(
"9223372036854775808");
- 1076 if((digit_count >= 20) || (memcmp(src, smaller_big_integer, 19) >= 0)) {
- 1077 return number_type::unsigned_integer;
-
-
- 1080 return number_type::signed_integer;
-
-
- 1083 return number_type::floating_point_number;
-
-
-
- 1087 simdjson_unused simdjson_inline simdjson_result<double> parse_double(
const uint8_t * src,
const uint8_t *
const src_end) noexcept {
-
-
-
-
- 1092 bool negative = (*src ==
'-');
- 1093 src += uint8_t(negative);
-
-
-
-
-
- 1099 const uint8_t *p = src;
-
- 1101 p += parse_digit(*p, i);
- 1102 bool leading_zero = (i == 0);
- 1103 while ((p != src_end) && parse_digit(*p, i)) { p++; }
-
-
- 1106 if ( (leading_zero && p != src+1)) {
return NUMBER_ERROR; }
-
-
-
-
- 1111 int64_t exponent = 0;
-
- 1113 if (simdjson_likely((p != src_end) && (*p ==
'.'))) {
+
+
+
+ 1044 simdjson_unused simdjson_inline
bool is_negative(
const uint8_t * src) noexcept {
+ 1045 return (*src ==
'-');
+
+
+ 1048 simdjson_unused simdjson_inline simdjson_result<bool> is_integer(
const uint8_t * src) noexcept {
+ 1049 bool negative = (*src ==
'-');
+ 1050 src += uint8_t(negative);
+ 1051 const uint8_t *p = src;
+ 1052 while(
static_cast<uint8_t
>(*p -
'0') <= 9) { p++; }
+
+ 1054 if (jsoncharutils::is_structural_or_whitespace(*p)) {
return true; }
+
+
+
+ 1058 simdjson_unused simdjson_inline simdjson_result<number_type> get_number_type(
const uint8_t * src) noexcept {
+ 1059 bool negative = (*src ==
'-');
+ 1060 src += uint8_t(negative);
+ 1061 const uint8_t *p = src;
+ 1062 while(
static_cast<uint8_t
>(*p -
'0') <= 9) { p++; }
+
+ 1064 if (jsoncharutils::is_structural_or_whitespace(*p)) {
+
+
+ 1067 if(negative) {
return number_type::signed_integer; }
+
+
+ 1070 int digit_count = int(p - src);
+ 1071 if(digit_count >= 19) {
+ 1072 const uint8_t * smaller_big_integer =
reinterpret_cast<const uint8_t *
>(
"9223372036854775808");
+ 1073 if((digit_count >= 20) || (memcmp(src, smaller_big_integer, 19) >= 0)) {
+ 1074 return number_type::unsigned_integer;
+
+
+ 1077 return number_type::signed_integer;
+
+
+ 1080 return number_type::floating_point_number;
+
+
+
+ 1084 simdjson_unused simdjson_inline simdjson_result<double> parse_double(
const uint8_t * src,
const uint8_t *
const src_end) noexcept {
+
+
+
+
+ 1089 bool negative = (*src ==
'-');
+ 1090 src += uint8_t(negative);
+
+
+
+
+
+ 1096 const uint8_t *p = src;
+
+ 1098 p += parse_digit(*p, i);
+ 1099 bool leading_zero = (i == 0);
+ 1100 while ((p != src_end) && parse_digit(*p, i)) { p++; }
+
+
+ 1103 if ( (leading_zero && p != src+1)) {
return NUMBER_ERROR; }
+
+
+
+
+ 1108 int64_t exponent = 0;
+
+ 1110 if (simdjson_likely((p != src_end) && (*p ==
'.'))) {
+
+ 1112 const uint8_t *start_decimal_digits = p;
+ 1113 if ((p == src_end) || !parse_digit(*p, i)) {
return NUMBER_ERROR; }
- 1115 const uint8_t *start_decimal_digits = p;
- 1116 if ((p == src_end) || !parse_digit(*p, i)) {
return NUMBER_ERROR; }
-
- 1118 while ((p != src_end) && parse_digit(*p, i)) { p++; }
- 1119 exponent = -(p - start_decimal_digits);
-
-
- 1122 overflow = p-src-1 > 19;
- 1123 if (simdjson_unlikely(overflow && leading_zero)) {
-
- 1125 const uint8_t *start_digits = src + 2;
- 1126 while (*start_digits ==
'0') { start_digits++; }
- 1127 overflow = start_digits-src > 19;
-
-
- 1130 overflow = p-src > 19;
-
-
-
-
-
- 1136 if ((p != src_end) && (*p ==
'e' || *p ==
'E')) {
-
-
- 1139 bool exp_neg = *p ==
'-';
- 1140 p += exp_neg || *p ==
'+';
-
-
- 1143 const uint8_t *start_exp_digits = p;
- 1144 while ((p != src_end) && parse_digit(*p, exp)) { p++; }
-
- 1146 if (p-start_exp_digits == 0 || p-start_exp_digits > 19) {
return NUMBER_ERROR; }
+ 1115 while ((p != src_end) && parse_digit(*p, i)) { p++; }
+ 1116 exponent = -(p - start_decimal_digits);
+
+
+ 1119 overflow = p-src-1 > 19;
+ 1120 if (simdjson_unlikely(overflow && leading_zero)) {
+
+ 1122 const uint8_t *start_digits = src + 2;
+ 1123 while (*start_digits ==
'0') { start_digits++; }
+ 1124 overflow = start_digits-src > 19;
+
+
+ 1127 overflow = p-src > 19;
+
+
+
+
+
+ 1133 if ((p != src_end) && (*p ==
'e' || *p ==
'E')) {
+
+
+ 1136 bool exp_neg = *p ==
'-';
+ 1137 p += exp_neg || *p ==
'+';
+
+
+ 1140 const uint8_t *start_exp_digits = p;
+ 1141 while ((p != src_end) && parse_digit(*p, exp)) { p++; }
+
+ 1143 if (p-start_exp_digits == 0 || p-start_exp_digits > 19) {
return NUMBER_ERROR; }
+
+ 1145 exponent += exp_neg ? 0-exp : exp;
+
- 1148 exponent += exp_neg ? 0-exp : exp;
-
-
- 1151 if ((p != src_end) && jsoncharutils::is_not_structural_or_whitespace(*p)) {
return NUMBER_ERROR; }
-
- 1153 overflow = overflow || exponent < simdjson::internal::smallest_power || exponent > simdjson::internal::largest_power;
-
-
-
-
-
- 1159 if (simdjson_likely(!overflow)) {
- 1160 if (compute_float_64(exponent, i, negative, d)) {
return d; }
+ 1148 if ((p != src_end) && jsoncharutils::is_not_structural_or_whitespace(*p)) {
return NUMBER_ERROR; }
+
+ 1150 overflow = overflow || exponent < simdjson::internal::smallest_power || exponent > simdjson::internal::largest_power;
+
+
+
+
+
+ 1156 if (simdjson_likely(!overflow)) {
+ 1157 if (compute_float_64(exponent, i, negative, d)) {
return d; }
+
+ 1159 if (!parse_float_fallback(src - uint8_t(negative), src_end, &d)) {
+
- 1162 if (!parse_float_fallback(src - uint8_t(negative), src_end, &d)) {
-
-
-
-
-
- 1168 simdjson_unused simdjson_inline simdjson_result<double> parse_double_in_string(
const uint8_t * src) noexcept {
-
-
-
- 1172 bool negative = (*(src + 1) ==
'-');
- 1173 src += uint8_t(negative) + 1;
-
-
-
-
-
- 1179 const uint8_t *p = src;
- 1180 p += parse_digit(*p, i);
- 1181 bool leading_zero = (i == 0);
- 1182 while (parse_digit(*p, i)) { p++; }
-
-
- 1185 if ( (leading_zero && p != src+1)) {
return NUMBER_ERROR; }
-
-
-
-
- 1190 int64_t exponent = 0;
-
- 1192 if (simdjson_likely(*p ==
'.')) {
+
+
+
+ 1165 simdjson_unused simdjson_inline simdjson_result<double> parse_double_in_string(
const uint8_t * src) noexcept {
+
+
+
+ 1169 bool negative = (*(src + 1) ==
'-');
+ 1170 src += uint8_t(negative) + 1;
+
+
+
+
+
+ 1176 const uint8_t *p = src;
+ 1177 p += parse_digit(*p, i);
+ 1178 bool leading_zero = (i == 0);
+ 1179 while (parse_digit(*p, i)) { p++; }
+
+
+ 1182 if ( (leading_zero && p != src+1)) {
return NUMBER_ERROR; }
+
+
+
+
+ 1187 int64_t exponent = 0;
+
+ 1189 if (simdjson_likely(*p ==
'.')) {
+
+ 1191 const uint8_t *start_decimal_digits = p;
+
- 1194 const uint8_t *start_decimal_digits = p;
-
-
- 1197 while (parse_digit(*p, i)) { p++; }
- 1198 exponent = -(p - start_decimal_digits);
-
-
- 1201 overflow = p-src-1 > 19;
- 1202 if (simdjson_unlikely(overflow && leading_zero)) {
-
- 1204 const uint8_t *start_digits = src + 2;
- 1205 while (*start_digits ==
'0') { start_digits++; }
- 1206 overflow = p-start_digits > 19;
-
-
- 1209 overflow = p-src > 19;
-
-
-
-
-
- 1215 if (*p ==
'e' || *p ==
'E') {
-
- 1217 bool exp_neg = *p ==
'-';
- 1218 p += exp_neg || *p ==
'+';
-
-
- 1221 const uint8_t *start_exp_digits = p;
- 1222 while (parse_digit(*p, exp)) { p++; }
-
- 1224 if (p-start_exp_digits == 0 || p-start_exp_digits > 19) {
return NUMBER_ERROR; }
+ 1194 while (parse_digit(*p, i)) { p++; }
+ 1195 exponent = -(p - start_decimal_digits);
+
+
+ 1198 overflow = p-src-1 > 19;
+ 1199 if (simdjson_unlikely(overflow && leading_zero)) {
+
+ 1201 const uint8_t *start_digits = src + 2;
+ 1202 while (*start_digits ==
'0') { start_digits++; }
+ 1203 overflow = p-start_digits > 19;
+
+
+ 1206 overflow = p-src > 19;
+
+
+
+
+
+ 1212 if (*p ==
'e' || *p ==
'E') {
+
+ 1214 bool exp_neg = *p ==
'-';
+ 1215 p += exp_neg || *p ==
'+';
+
+
+ 1218 const uint8_t *start_exp_digits = p;
+ 1219 while (parse_digit(*p, exp)) { p++; }
+
+ 1221 if (p-start_exp_digits == 0 || p-start_exp_digits > 19) {
return NUMBER_ERROR; }
+
+ 1223 exponent += exp_neg ? 0-exp : exp;
+
- 1226 exponent += exp_neg ? 0-exp : exp;
-
-
-
-
- 1231 overflow = overflow || exponent < simdjson::internal::smallest_power || exponent > simdjson::internal::largest_power;
-
-
-
-
-
- 1237 if (simdjson_likely(!overflow)) {
- 1238 if (compute_float_64(exponent, i, negative, d)) {
return d; }
+
+
+ 1228 overflow = overflow || exponent < simdjson::internal::smallest_power || exponent > simdjson::internal::largest_power;
+
+
+
+
+
+ 1234 if (simdjson_likely(!overflow)) {
+ 1235 if (compute_float_64(exponent, i, negative, d)) {
return d; }
+
+ 1237 if (!parse_float_fallback(src - uint8_t(negative), &d)) {
+
- 1240 if (!parse_float_fallback(src - uint8_t(negative), &d)) {
-
-
-
-
+
+
+
+
+
-
-
-
-
-
- 1251 inline std::ostream&
operator<<(std::ostream& out, number_type type) noexcept {
-
- 1253 case number_type::signed_integer: out <<
"integer in [-9223372036854775808,9223372036854775808)";
break;
- 1254 case number_type::unsigned_integer: out <<
"unsigned integer in [9223372036854775808,18446744073709551616)";
break;
- 1255 case number_type::floating_point_number: out <<
"floating-point number (binary64)";
break;
- 1256 default: SIMDJSON_UNREACHABLE();
-
-
-
+
+
+ 1248 inline std::ostream&
operator<<(std::ostream& out, number_type type) noexcept {
+
+ 1250 case number_type::signed_integer: out <<
"integer in [-9223372036854775808,9223372036854775808)";
break;
+ 1251 case number_type::unsigned_integer: out <<
"unsigned integer in [9223372036854775808,18446744073709551616)";
break;
+ 1252 case number_type::floating_point_number: out <<
"floating-point number (binary64)";
break;
+ 1253 default: SIMDJSON_UNREACHABLE();
+
+
+
+
+
+
-
-
-
-
+
The top level simdjson namespace, containing everything the library provides.
std::ostream & operator<<(std::ostream &out, error_code error) noexcept
Write the error message to the output stream.
error_code
All possible errors returned by simdjson.
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number-members.html b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number-members.html
index 575287eef..4a1b4a4ef 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number-members.html
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number-members.html
@@ -107,16 +107,15 @@ $(document).ready(function(){initNavTree('structsimdjson_1_1_s_i_m_d_j_s_o_n___i
| is_int64() const noexcept | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
| is_uint64() const noexcept | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
| numberparsing::parse_number (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | friend |
- | numberparsing::slow_float_parsing (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | friend |
- | numberparsing::write_float (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | friend |
- | operator double() const noexcept (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
- | operator int64_t() const noexcept (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
- | operator uint64_t() const noexcept (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
- | payload | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | protected |
- | signed_integer (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
- | skip_double() noexcept | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | protected |
- | type (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | protected |
- | unsigned_integer (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
+ | numberparsing::write_float (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | friend |
+ | operator double() const noexcept (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
+ | operator int64_t() const noexcept (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
+ | operator uint64_t() const noexcept (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
+ | payload | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | protected |
+ | signed_integer (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
+ | skip_double() noexcept | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | protected |
+ | type (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | protected |
+ | unsigned_integer (defined in simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number) | simdjson::SIMDJSON_IMPLEMENTATION::ondemand::number | |
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.js b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.js
index 136fddf6f..5e8913989 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.js
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.js
@@ -16,7 +16,6 @@ var structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand
[ "operator uint64_t", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#abb713c2347a676fe6514e2eae97c4f5d", null ],
[ "skip_double", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#ac6b75b1d1af73c9ef8958e573c367e1c", null ],
[ "numberparsing::parse_number", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a31e829fc9dac6ebac9dca7af20898b53", null ],
- [ "numberparsing::slow_float_parsing", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a5053e80f5724f8e1ce7dc513b2c93463", null ],
[ "numberparsing::write_float", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a4963fde41cc9ccb03339a4594c005e04", null ],
[ "value_iterator", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a2b56b11b68e621bbd8ce2051ed10ab60", null ],
[ "floating_point_number", "structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html#a0902647d571633bcaf937831430df3ba", null ],
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html
index e74c44fb8..80d19c681 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html
@@ -165,7 +165,7 @@ simdjson_inline
-
Definition at line 152 of file json_type.h.
+
Definition at line 150 of file json_type.h.
The documentation for this struct was generated from the following files:
- include/simdjson/generic/ondemand/json_type.h
- include/simdjson/generic/ondemand/json_type-inl.h
diff --git a/value-inl_8h_source.html b/value-inl_8h_source.html
index 79dab3af4..ec3b40dae 100644
--- a/value-inl_8h_source.html
+++ b/value-inl_8h_source.html
@@ -613,7 +613,7 @@ $(document).ready(function(){initNavTree('value-inl_8h_source.html',''); initRes
error_code
All possible errors returned by simdjson.
@ INVALID_JSON_POINTER
Invalid JSON pointer reference.
-
+
The result of a simdjson operation that could fail.
simdjson_inline error_code error() const noexcept
The error.
diff --git a/value_8h_source.html b/value_8h_source.html
index 6836478b7..040f01107 100644
--- a/value_8h_source.html
+++ b/value_8h_source.html
@@ -342,7 +342,7 @@ $(document).ready(function(){initNavTree('value_8h_source.html',''); initResizab
A type representing a JSON number.
-
+