617 lines
30 KiB
HTML
617 lines
30 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.17"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>CocoaTweet: nlohmann::detail::dtoa_impl Namespace Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">CocoaTweet
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.17 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="namespacenlohmann.html">nlohmann</a></li><li class="navelem"><a class="el" href="namespacenlohmann_1_1detail.html">detail</a></li><li class="navelem"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html">dtoa_impl</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="#func-members">Functions</a> |
|
|
<a href="#var-members">Variables</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">nlohmann::detail::dtoa_impl Namespace Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>implements the Grisu2 algorithm for binary to decimal floating-point conversion.
|
|
<a href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
Classes</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1boundaries.html">boundaries</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1cached__power.html">cached_power</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a1c5d30eb51e5e994a3f48bde104d2ce8"><td class="memTemplParams" colspan="2">template<typename Target , typename Source > </td></tr>
|
|
<tr class="memitem:a1c5d30eb51e5e994a3f48bde104d2ce8"><td class="memTemplItemLeft" align="right" valign="top">Target </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a1c5d30eb51e5e994a3f48bde104d2ce8">reinterpret_bits</a> (const Source source)</td></tr>
|
|
<tr class="separator:a1c5d30eb51e5e994a3f48bde104d2ce8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a22b6e37654ac93c6d0d9c06ec1bf5ded"><td class="memTemplParams" colspan="2">template<typename FloatType > </td></tr>
|
|
<tr class="memitem:a22b6e37654ac93c6d0d9c06ec1bf5ded"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1boundaries.html">boundaries</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a22b6e37654ac93c6d0d9c06ec1bf5ded">compute_boundaries</a> (FloatType value)</td></tr>
|
|
<tr class="separator:a22b6e37654ac93c6d0d9c06ec1bf5ded"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adbf329a18c5cf854a3477327afd2200b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1cached__power.html">cached_power</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#adbf329a18c5cf854a3477327afd2200b">get_cached_power_for_binary_exponent</a> (int e)</td></tr>
|
|
<tr class="separator:adbf329a18c5cf854a3477327afd2200b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a36ded358763b5dbcea9867660fbe4e28"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a36ded358763b5dbcea9867660fbe4e28">find_largest_pow10</a> (const std::uint32_t n, std::uint32_t &pow10)</td></tr>
|
|
<tr class="separator:a36ded358763b5dbcea9867660fbe4e28"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5bc841e0bee12fd6489d49cf7bd07bb4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a5bc841e0bee12fd6489d49cf7bd07bb4">grisu2_round</a> (char *buf, int len, std::uint64_t dist, std::uint64_t delta, std::uint64_t rest, std::uint64_t ten_k)</td></tr>
|
|
<tr class="separator:a5bc841e0bee12fd6489d49cf7bd07bb4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9b899c72b0e1e3dd46d75c2b4e6bcdfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a9b899c72b0e1e3dd46d75c2b4e6bcdfb">grisu2_digit_gen</a> (char *buffer, int &length, int &decimal_exponent, <a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> M_minus, <a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> w, <a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> M_plus)</td></tr>
|
|
<tr class="separator:a9b899c72b0e1e3dd46d75c2b4e6bcdfb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a05b681dcb8569b9784c6dccfadb01633"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a05b681dcb8569b9784c6dccfadb01633">grisu2</a> (char *buf, int &len, int &decimal_exponent, <a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> m_minus, <a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> v, <a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> m_plus)</td></tr>
|
|
<tr class="separator:a05b681dcb8569b9784c6dccfadb01633"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aab7a9670a4f4704a5d0347ad7588576b"><td class="memTemplParams" colspan="2">template<typename FloatType > </td></tr>
|
|
<tr class="memitem:aab7a9670a4f4704a5d0347ad7588576b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#aab7a9670a4f4704a5d0347ad7588576b">grisu2</a> (char *buf, int &len, int &decimal_exponent, FloatType value)</td></tr>
|
|
<tr class="separator:aab7a9670a4f4704a5d0347ad7588576b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a78ad745d14b79fc65714c9938981faf6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="third_2nlohmann_2json_8hpp.html#a5f2aaec3b681d0a72f7d6e90b70cdcd1">JSON_HEDLEY_RETURNS_NON_NULL</a> char * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a78ad745d14b79fc65714c9938981faf6">append_exponent</a> (char *buf, int e)</td></tr>
|
|
<tr class="memdesc:a78ad745d14b79fc65714c9938981faf6"><td class="mdescLeft"> </td><td class="mdescRight">appends a decimal representation of e to buf <a href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a78ad745d14b79fc65714c9938981faf6">More...</a><br /></td></tr>
|
|
<tr class="separator:a78ad745d14b79fc65714c9938981faf6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0986c3e015db045df89506436f19e07c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="third_2nlohmann_2json_8hpp.html#a5f2aaec3b681d0a72f7d6e90b70cdcd1">JSON_HEDLEY_RETURNS_NON_NULL</a> char * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a0986c3e015db045df89506436f19e07c">format_buffer</a> (char *buf, int len, int decimal_exponent, int min_exp, int max_exp)</td></tr>
|
|
<tr class="memdesc:a0986c3e015db045df89506436f19e07c"><td class="mdescLeft"> </td><td class="mdescRight">prettify v = buf * 10^decimal_exponent <a href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a0986c3e015db045df89506436f19e07c">More...</a><br /></td></tr>
|
|
<tr class="separator:a0986c3e015db045df89506436f19e07c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
|
Variables</h2></td></tr>
|
|
<tr class="memitem:ac1ea1316de0b4a219f707c76b1db1966"><td class="memItemLeft" align="right" valign="top">constexpr int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#ac1ea1316de0b4a219f707c76b1db1966">kAlpha</a> = -60</td></tr>
|
|
<tr class="separator:ac1ea1316de0b4a219f707c76b1db1966"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4a750fcc38da1ce68b7e25ab3a230e20"><td class="memItemLeft" align="right" valign="top">constexpr int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenlohmann_1_1detail_1_1dtoa__impl.html#a4a750fcc38da1ce68b7e25ab3a230e20">kGamma</a> = -32</td></tr>
|
|
<tr class="separator:a4a750fcc38da1ce68b7e25ab3a230e20"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>implements the Grisu2 algorithm for binary to decimal floating-point conversion. </p>
|
|
<p>This implementation is a slightly modified version of the reference implementation which may be obtained from <a href="http://florian.loitsch.com/publications">http://florian.loitsch.com/publications</a> (bench.tar.gz).</p>
|
|
<p>The code is distributed under the MIT license, Copyright (c) 2009 Florian Loitsch.</p>
|
|
<p>For a detailed description of the algorithm see:</p>
|
|
<p>[1] Loitsch, "Printing Floating-Point Numbers Quickly and Accurately with
|
|
Integers", Proceedings of the ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation, PLDI 2010 [2] Burger, Dybvig, "Printing Floating-Point Numbers Quickly and Accurately", Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation, PLDI 1996 </p>
|
|
</div><h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a78ad745d14b79fc65714c9938981faf6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a78ad745d14b79fc65714c9938981faf6">◆ </a></span>append_exponent()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="third_2nlohmann_2json_8hpp.html#a5f2aaec3b681d0a72f7d6e90b70cdcd1">JSON_HEDLEY_RETURNS_NON_NULL</a> char * nlohmann::detail::dtoa_impl::append_exponent </td>
|
|
<td>(</td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buf</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>e</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>appends a decimal representation of e to buf </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>a pointer to the element following the exponent. </dd></dl>
|
|
<dl class="section pre"><dt>Precondition</dt><dd>-1000 < e < 1000 </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a22b6e37654ac93c6d0d9c06ec1bf5ded"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a22b6e37654ac93c6d0d9c06ec1bf5ded">◆ </a></span>compute_boundaries()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename FloatType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1boundaries.html">boundaries</a> nlohmann::detail::dtoa_impl::compute_boundaries </td>
|
|
<td>(</td>
|
|
<td class="paramtype">FloatType </td>
|
|
<td class="paramname"><em>value</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Compute the (normalized) diyfp representing the input number 'value' and its boundaries.</p>
|
|
<dl class="section pre"><dt>Precondition</dt><dd>value must be finite and positive </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a36ded358763b5dbcea9867660fbe4e28"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a36ded358763b5dbcea9867660fbe4e28">◆ </a></span>find_largest_pow10()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int nlohmann::detail::dtoa_impl::find_largest_pow10 </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const std::uint32_t </td>
|
|
<td class="paramname"><em>n</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::uint32_t & </td>
|
|
<td class="paramname"><em>pow10</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>For n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k. For n == 0, returns 1 and sets pow10 := 1. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0986c3e015db045df89506436f19e07c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0986c3e015db045df89506436f19e07c">◆ </a></span>format_buffer()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="third_2nlohmann_2json_8hpp.html#a5f2aaec3b681d0a72f7d6e90b70cdcd1">JSON_HEDLEY_RETURNS_NON_NULL</a> char * nlohmann::detail::dtoa_impl::format_buffer </td>
|
|
<td>(</td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buf</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>decimal_exponent</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>min_exp</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>max_exp</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>prettify v = buf * 10^decimal_exponent </p>
|
|
<p>If v is in the range [10^min_exp, 10^max_exp) it will be printed in fixed-point notation. Otherwise it will be printed in exponential notation.</p>
|
|
<dl class="section pre"><dt>Precondition</dt><dd>min_exp < 0 </dd>
|
|
<dd>
|
|
max_exp > 0 </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adbf329a18c5cf854a3477327afd2200b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adbf329a18c5cf854a3477327afd2200b">◆ </a></span>get_cached_power_for_binary_exponent()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1cached__power.html">cached_power</a> nlohmann::detail::dtoa_impl::get_cached_power_for_binary_exponent </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>e</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>For a normalized diyfp w = f * 2^e, this function returns a (normalized) cached power-of-ten c = f_c * 2^e_c, such that the exponent of the product w * c satisfies (Definition 3.2 from [1]) </p><pre class="fragment"> alpha <= e_c + e + q <= gamma.
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="a05b681dcb8569b9784c6dccfadb01633"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a05b681dcb8569b9784c6dccfadb01633">◆ </a></span>grisu2() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> nlohmann::detail::dtoa_impl::grisu2 </td>
|
|
<td>(</td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buf</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>decimal_exponent</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> </td>
|
|
<td class="paramname"><em>m_minus</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> </td>
|
|
<td class="paramname"><em>v</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> </td>
|
|
<td class="paramname"><em>m_plus</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>v = buf * 10^decimal_exponent len is the length of the buffer (number of decimal digits) The buffer must be large enough, i.e. >= max_digits10. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aab7a9670a4f4704a5d0347ad7588576b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aab7a9670a4f4704a5d0347ad7588576b">◆ </a></span>grisu2() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename FloatType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> nlohmann::detail::dtoa_impl::grisu2 </td>
|
|
<td>(</td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buf</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>decimal_exponent</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">FloatType </td>
|
|
<td class="paramname"><em>value</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>v = buf * 10^decimal_exponent len is the length of the buffer (number of decimal digits) The buffer must be large enough, i.e. >= max_digits10. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9b899c72b0e1e3dd46d75c2b4e6bcdfb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9b899c72b0e1e3dd46d75c2b4e6bcdfb">◆ </a></span>grisu2_digit_gen()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> nlohmann::detail::dtoa_impl::grisu2_digit_gen </td>
|
|
<td>(</td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buffer</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>length</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int & </td>
|
|
<td class="paramname"><em>decimal_exponent</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> </td>
|
|
<td class="paramname"><em>M_minus</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> </td>
|
|
<td class="paramname"><em>w</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structnlohmann_1_1detail_1_1dtoa__impl_1_1diyfp.html">diyfp</a> </td>
|
|
<td class="paramname"><em>M_plus</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Generates V = buffer * 10^decimal_exponent, such that M- <= V <= M+. M- and M+ must be normalized and share the same exponent -60 <= e <= -32. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5bc841e0bee12fd6489d49cf7bd07bb4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5bc841e0bee12fd6489d49cf7bd07bb4">◆ </a></span>grisu2_round()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacenlohmann_1_1detail.html#a59fca69799f6b9e366710cb9043aa77d">void</a> nlohmann::detail::dtoa_impl::grisu2_round </td>
|
|
<td>(</td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>buf</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::uint64_t </td>
|
|
<td class="paramname"><em>dist</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::uint64_t </td>
|
|
<td class="paramname"><em>delta</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::uint64_t </td>
|
|
<td class="paramname"><em>rest</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::uint64_t </td>
|
|
<td class="paramname"><em>ten_k</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1c5d30eb51e5e994a3f48bde104d2ce8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1c5d30eb51e5e994a3f48bde104d2ce8">◆ </a></span>reinterpret_bits()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Target , typename Source > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Target nlohmann::detail::dtoa_impl::reinterpret_bits </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const Source </td>
|
|
<td class="paramname"><em>source</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Variable Documentation</h2>
|
|
<a id="ac1ea1316de0b4a219f707c76b1db1966"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac1ea1316de0b4a219f707c76b1db1966">◆ </a></span>kAlpha</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">constexpr int nlohmann::detail::dtoa_impl::kAlpha = -60</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4a750fcc38da1ce68b7e25ab3a230e20"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4a750fcc38da1ce68b7e25ab3a230e20">◆ </a></span>kGamma</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">constexpr int nlohmann::detail::dtoa_impl::kGamma = -32</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.17
|
|
</small></address>
|
|
</body>
|
|
</html>
|