| <!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.9.1"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>datasketches-cpp: req/include/req_sketch.hpp Source File</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">datasketches-cpp |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.1 --> |
| <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','.html'); |
| /* @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="dir_0449671fe79755ed26e25ef166543162.html">req</a></li><li class="navelem"><a class="el" href="dir_33f2f37c686242631bbdb651f95cf35d.html">include</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"> |
| <div class="title">req_sketch.hpp</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> |
| <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div> |
| <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div> |
| <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * distributed with this work for additional information</span></div> |
| <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div> |
| <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div> |
| <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * "License"); you may not use this file except in compliance</span></div> |
| <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * with the License. You may obtain a copy of the License at</span></div> |
| <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div> |
| <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div> |
| <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div> |
| <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div> |
| <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * software distributed under the License is distributed on an</span></div> |
| <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div> |
| <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * KIND, either express or implied. See the License for the</span></div> |
| <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * specific language governing permissions and limitations</span></div> |
| <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * under the License.</span></div> |
| <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> */</span></div> |
| <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div> |
| <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef REQ_SKETCH_HPP_</span></div> |
| <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define REQ_SKETCH_HPP_</span></div> |
| <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div> |
| <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <iterator></span></div> |
| <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> |
| <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "req_common.hpp"</span></div> |
| <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "req_compactor.hpp"</span></div> |
| <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "quantiles_sorted_view.hpp"</span></div> |
| <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "optional.hpp"</span></div> |
| <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> |
| <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacedatasketches.html">datasketches</a> {</div> |
| <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span><</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">typename</span> T,</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">typename</span> Comparator = std::less<T>, <span class="comment">// strict weak ordering function (see C++ named requirements: Compare)</span></div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">typename</span> Allocator = std::allocator<T></div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> ></div> |
| <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html"> 79</a></span> <span class="keyword">class </span><a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a> {</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">using</span> value_type = T;</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">using</span> comparator = Comparator;</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">using</span> allocator_type = Allocator;</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">using</span> Compactor = req_compactor<T, Comparator, Allocator>;</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">using</span> AllocCompactor = <span class="keyword">typename</span> std::allocator_traits<Allocator>::template rebind_alloc<Compactor>;</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">using</span> vector_double = <span class="keyword">typename</span> quantiles_sorted_view<T, Comparator, Allocator>::vector_double;</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> |
| <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe"> 92</a></span>  <span class="keyword">using</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe">quantile_return_type</a> = <span class="keyword">typename</span> <a class="code" href="classdatasketches_1_1quantiles__sorted__view.html#a5ab4905c4f3ebeb14de4e7a2f5d92832">quantiles_sorted_view<T, Comparator, Allocator>::quantile_return_type</a>;</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div> |
| <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c"> 103</a></span>  <span class="keyword">explicit</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c">req_sketch</a>(uint16_t k, <span class="keywordtype">bool</span> hra = <span class="keyword">true</span>, <span class="keyword">const</span> Comparator& comparator = Comparator(),</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> Allocator& allocator = Allocator());</div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div> |
| <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>& other);</div> |
| <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> |
| <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>(<a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>&& other) noexcept;</div> |
| <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> |
| <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  ~<a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>();</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div> |
| <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>& <a class="code" href="classdatasketches_1_1req__sketch.html#ab6e85db46b1d76086d5e9b5065b74a46">operator=</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>& other);</div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div> |
| <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>& <a class="code" href="classdatasketches_1_1req__sketch.html#ab6e85db46b1d76086d5e9b5065b74a46">operator=</a>(<a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>&& other);</div> |
| <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">template</span><<span class="keyword">typename</span> TT, <span class="keyword">typename</span> CC, <span class="keyword">typename</span> AA></div> |
| <div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#a1943668612ea073d2f6381ee8c2ddfbd"> 141</a></span>  <span class="keyword">explicit</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a1943668612ea073d2f6381ee8c2ddfbd">req_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch<TT, CC, AA></a>& other, <span class="keyword">const</span> Comparator& comparator = Comparator(),</div> |
| <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> Allocator& allocator = Allocator());</div> |
| <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  uint16_t <a class="code" href="classdatasketches_1_1req__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264">get_k</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> |
| <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1req__sketch.html#af6177b85206272c56ee75747bb885735">is_HRA</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div> |
| <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div> |
| <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  uint64_t <a class="code" href="classdatasketches_1_1req__sketch.html#af857be9469a7565252626f27e1f9d74d">get_n</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div> |
| <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  uint32_t <a class="code" href="classdatasketches_1_1req__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div> |
| <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1req__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">is_estimation_mode</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div> |
| <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">template</span><<span class="keyword">typename</span> FwdT></div> |
| <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a5200c74c52ee0f76d0d34c1ca6aec65c">update</a>(FwdT&& item);</div> |
| <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div> |
| <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">template</span><<span class="keyword">typename</span> FwdSk></div> |
| <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec">merge</a>(FwdSk&& other);</div> |
| <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div> |
| <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">const</span> T& <a class="code" href="classdatasketches_1_1req__sketch.html#af2fa890815acf3a1418ea8eee466075c">get_min_item</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div> |
| <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> T& <a class="code" href="classdatasketches_1_1req__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21">get_max_item</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div> |
| <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  Comparator <a class="code" href="classdatasketches_1_1req__sketch.html#a076f89979daa6471a3868cb97ea99b40">get_comparator</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div> |
| <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  Allocator <a class="code" href="classdatasketches_1_1req__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div> |
| <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordtype">double</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918">get_rank</a>(<span class="keyword">const</span> T& item, <span class="keywordtype">bool</span> inclusive = <span class="keyword">true</span>) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div> |
| <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  vector_double <a class="code" href="classdatasketches_1_1req__sketch.html#a44226b755e73883ea2c128876e35b1d1">get_PMF</a>(<span class="keyword">const</span> T* split_points, uint32_t size, <span class="keywordtype">bool</span> inclusive = <span class="keyword">true</span>) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div> |
| <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  vector_double <a class="code" href="classdatasketches_1_1req__sketch.html#a20a4d992209b2aa58614c998d143705c">get_CDF</a>(<span class="keyword">const</span> T* split_points, uint32_t size, <span class="keywordtype">bool</span> inclusive = <span class="keyword">true</span>) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div> |
| <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe">quantile_return_type</a> <a class="code" href="classdatasketches_1_1req__sketch.html#ac02fcfb6e706148458a2ef89390223a9">get_quantile</a>(<span class="keywordtype">double</span> rank, <span class="keywordtype">bool</span> inclusive = <span class="keyword">true</span>) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div> |
| <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordtype">double</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a978630658d411c9c79fffa5909f5c8d0">get_rank_lower_bound</a>(<span class="keywordtype">double</span> rank, uint8_t num_std_dev) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div> |
| <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordtype">double</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a750349aa79dff6db2d13857ab50248bb">get_rank_upper_bound</a>(<span class="keywordtype">double</span> rank, uint8_t num_std_dev) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  </div> |
| <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a899bef2c5e0ea489ed4b023d2b9900ee">get_RSE</a>(uint16_t k, <span class="keywordtype">double</span> rank, <span class="keywordtype">bool</span> hra, uint64_t n);</div> |
| <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div> |
| <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">template</span><<span class="keyword">typename</span> TT = T, <span class="keyword">typename</span> SerDe = serde<T>, <span class="keyword">typename</span> std::enable_if<std::is_arithmetic<TT>::value, <span class="keywordtype">int</span>>::type = 0></div> |
| <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716">get_serialized_size_bytes</a>(<span class="keyword">const</span> SerDe& sd = SerDe()) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div> |
| <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">template</span><<span class="keyword">typename</span> TT = T, <span class="keyword">typename</span> SerDe = serde<T>, <span class="keyword">typename</span> std::enable_if<!std::is_arithmetic<TT>::value, <span class="keywordtype">int</span>>::type = 0></div> |
| <div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716"> 336</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716">get_serialized_size_bytes</a>(<span class="keyword">const</span> SerDe& sd = SerDe()) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div> |
| <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">template</span><<span class="keyword">typename</span> SerDe = serde<T>></div> |
| <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1req__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a>(std::ostream& os, <span class="keyword">const</span> SerDe& sd = SerDe()) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div> |
| <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="comment">// This is a convenience alias for users</span></div> |
| <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="comment">// The type returned by the following serialize method</span></div> |
| <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keyword">using</span> vector_bytes = std::vector<uint8_t, typename std::allocator_traits<Allocator>::template rebind_alloc<uint8_t>>;</div> |
| <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  </div> |
| <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">template</span><<span class="keyword">typename</span> SerDe = serde<T>></div> |
| <div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97"> 359</a></span>  vector_bytes <a class="code" href="classdatasketches_1_1req__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97">serialize</a>(<span class="keywordtype">unsigned</span> header_size_bytes = 0, <span class="keyword">const</span> SerDe& sd = SerDe()) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div> |
| <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">template</span><<span class="keyword">typename</span> SerDe = serde<T>></div> |
| <div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#a1936c2c39faaf2c19243949a57cec8e0"> 370</a></span>  <span class="keyword">static</span> <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a> <a class="code" href="classdatasketches_1_1req__sketch.html#a1936c2c39faaf2c19243949a57cec8e0">deserialize</a>(std::istream& is, <span class="keyword">const</span> SerDe& sd = SerDe(),</div> |
| <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> Comparator& comparator = Comparator(), <span class="keyword">const</span> Allocator& allocator = Allocator());</div> |
| <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div> |
| <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">template</span><<span class="keyword">typename</span> SerDe = serde<T>></div> |
| <div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classdatasketches_1_1req__sketch.html#ae7e9fdcb69c547de681bb6f10ae5ef3e"> 383</a></span>  <span class="keyword">static</span> <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a> <a class="code" href="classdatasketches_1_1req__sketch.html#ae7e9fdcb69c547de681bb6f10ae5ef3e">deserialize</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* bytes, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> SerDe& sd = SerDe(),</div> |
| <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">const</span> Comparator& comparator = Comparator(), <span class="keyword">const</span> Allocator& allocator = Allocator());</div> |
| <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  </div> |
| <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  string<Allocator> <a class="code" href="classdatasketches_1_1req__sketch.html#a592a7af55659ff803b26a45552a68dda">to_string</a>(<span class="keywordtype">bool</span> print_levels = <span class="keyword">false</span>, <span class="keywordtype">bool</span> print_items = <span class="keyword">false</span>) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  </div> |
| <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keyword">class </span>const_iterator;</div> |
| <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div> |
| <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  const_iterator <a class="code" href="classdatasketches_1_1req__sketch.html#ad5c959a538216a09ab28c5283585956c">begin</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div> |
| <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  const_iterator <a class="code" href="classdatasketches_1_1req__sketch.html#ae11e60e117300685401961e36f196f7a">end</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div> |
| <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="classdatasketches_1_1quantiles__sorted__view.html">quantiles_sorted_view<T, Comparator, Allocator></a> <a class="code" href="classdatasketches_1_1req__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00">get_sorted_view</a>() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div> |
| <div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  Comparator comparator_;</div> |
| <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  Allocator allocator_;</div> |
| <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  uint16_t k_;</div> |
| <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordtype">bool</span> hra_;</div> |
| <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  uint32_t max_nom_size_;</div> |
| <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  uint32_t num_retained_;</div> |
| <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  uint64_t n_;</div> |
| <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  std::vector<Compactor, AllocCompactor> compactors_;</div> |
| <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  optional<T> min_item_;</div> |
| <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  optional<T> max_item_;</div> |
| <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">mutable</span> <a class="code" href="classdatasketches_1_1quantiles__sorted__view.html">quantiles_sorted_view<T, Comparator, Allocator></a>* sorted_view_;</div> |
| <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  </div> |
| <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordtype">void</span> setup_sorted_view() <span class="keyword">const</span>; <span class="comment">// modifies mutable state</span></div> |
| <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordtype">void</span> reset_sorted_view();</div> |
| <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  </div> |
| <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> LAZY_COMPRESSION = <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div> |
| <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SERIAL_VERSION = 1;</div> |
| <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t FAMILY = 17;</div> |
| <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> PREAMBLE_SIZE_BYTES = 8;</div> |
| <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">enum</span> flags { RESERVED1, RESERVED2, IS_EMPTY, IS_HIGH_RANK, RAW_ITEMS, IS_LEVEL_ZERO_SORTED };</div> |
| <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div> |
| <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">double</span> FIXED_RSE_FACTOR = 0.084;</div> |
| <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keyword">static</span> <span class="keywordtype">double</span> relative_rse_factor();</div> |
| <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  </div> |
| <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  uint8_t get_num_levels() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordtype">void</span> grow();</div> |
| <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordtype">void</span> update_max_nom_size();</div> |
| <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordtype">void</span> update_num_retained();</div> |
| <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordtype">void</span> compress();</div> |
| <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  </div> |
| <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">static</span> <span class="keywordtype">double</span> get_rank_lb(uint16_t k, uint8_t num_levels, <span class="keywordtype">double</span> rank, uint8_t num_std_dev, uint64_t n, <span class="keywordtype">bool</span> hra);</div> |
| <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">static</span> <span class="keywordtype">double</span> get_rank_ub(uint16_t k, uint8_t num_levels, <span class="keywordtype">double</span> rank, uint8_t num_std_dev, uint64_t n, <span class="keywordtype">bool</span> hra);</div> |
| <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> is_exact_rank(uint16_t k, uint8_t num_levels, <span class="keywordtype">double</span> rank, uint64_t n, <span class="keywordtype">bool</span> hra);</div> |
| <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div> |
| <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="comment">// for deserialization</span></div> |
| <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classdatasketches_1_1req__sketch.html">req_sketch</a>(uint16_t k, <span class="keywordtype">bool</span> hra, uint64_t n,</div> |
| <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  optional<T>&& min_item, optional<T>&& max_item,</div> |
| <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  std::vector<Compactor, AllocCompactor>&& compactors, <span class="keyword">const</span> Comparator& comparator);</div> |
| <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  </div> |
| <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> check_preamble_ints(uint8_t preamble_ints, uint8_t num_levels);</div> |
| <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> check_serial_version(uint8_t serial_version);</div> |
| <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> check_family_id(uint8_t family_id);</div> |
| <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  </div> |
| <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  template<typename TT = T, typename std::enable_if<std::is_floating_point<TT>::value, <span class="keywordtype">int</span>>::type = 0></div> |
| <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> check_update_item(<span class="keyword">const</span> TT& item) {</div> |
| <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">return</span> !std::isnan(item);</div> |
| <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div> |
| <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div> |
| <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  template<typename TT = T, typename std::enable_if<!std::is_floating_point<TT>::value, <span class="keywordtype">int</span>>::type = 0></div> |
| <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> check_update_item(<span class="keyword">const</span> TT&) {</div> |
| <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  }</div> |
| <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  </div> |
| <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="comment">// for type converting constructor</span></div> |
| <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">template</span><<span class="keyword">typename</span> TT, <span class="keyword">typename</span> CC, <span class="keyword">typename</span> AA> <span class="keyword">friend</span> <span class="keyword">class </span>req_sketch;</div> |
| <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> };</div> |
| <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  </div> |
| <div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> C, <span class="keyword">typename</span> A></div> |
| <div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">class </span>req_sketch<T, C, A>::const_iterator {</div> |
| <div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keyword">using</span> iterator_category = std::input_iterator_tag;</div> |
| <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">using</span> value_type = std::pair<const T&, const uint64_t>;</div> |
| <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keyword">using</span> difference_type = void;</div> |
| <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">using</span> pointer = <span class="keyword">const</span> return_value_holder<value_type>;</div> |
| <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keyword">using</span> reference = <span class="keyword">const</span> value_type;</div> |
| <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  </div> |
| <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  const_iterator& operator++();</div> |
| <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  const_iterator& operator++(<span class="keywordtype">int</span>);</div> |
| <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> const_iterator& other) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> const_iterator& other) <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  reference operator*() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  pointer operator->() <span class="keyword">const</span>;</div> |
| <div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="keyword">private</span>:</div> |
| <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">using</span> LevelsIterator = <span class="keyword">typename</span> std::vector<Compactor, AllocCompactor>::const_iterator;</div> |
| <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  LevelsIterator levels_it_;</div> |
| <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  LevelsIterator levels_end_;</div> |
| <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">const</span> T* compactor_it_;</div> |
| <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">friend</span> <span class="keyword">class </span>req_sketch<T, C, A>;</div> |
| <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  const_iterator(LevelsIterator <a class="code" href="classdatasketches_1_1req__sketch.html#ad5c959a538216a09ab28c5283585956c">begin</a>, LevelsIterator <a class="code" href="classdatasketches_1_1req__sketch.html#ae11e60e117300685401961e36f196f7a">end</a>);</div> |
| <div class="line"><a name="l00497"></a><span class="lineno"> 497</span> };</div> |
| <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div> |
| <div class="line"><a name="l00499"></a><span class="lineno"> 499</span> } <span class="comment">/* namespace datasketches */</span></div> |
| <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  </div> |
| <div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor">#include "req_sketch_impl.hpp"</span></div> |
| <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div> |
| <div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor">#endif</span></div> |
| <div class="ttc" id="aclassdatasketches_1_1quantiles__sorted__view_html"><div class="ttname"><a href="classdatasketches_1_1quantiles__sorted__view.html">datasketches::quantiles_sorted_view</a></div><div class="ttdoc">Sorted view for quantiles sketches (REQ, KLL and Quantiles)</div><div class="ttdef"><b>Definition:</b> quantiles_sorted_view.hpp:38</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1quantiles__sorted__view_html_a5ab4905c4f3ebeb14de4e7a2f5d92832"><div class="ttname"><a href="classdatasketches_1_1quantiles__sorted__view.html#a5ab4905c4f3ebeb14de4e7a2f5d92832">datasketches::quantiles_sorted_view::quantile_return_type</a></div><div class="ttdeci">typename std::conditional< std::is_arithmetic< T >::value, T, const T & >::type quantile_return_type</div><div class="ttdoc">Quantile return type.</div><div class="ttdef"><b>Definition:</b> quantiles_sorted_view.hpp:93</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html">datasketches::req_sketch</a></div><div class="ttdoc">Relative Error Quantiles Sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch.hpp:79</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a076f89979daa6471a3868cb97ea99b40"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a076f89979daa6471a3868cb97ea99b40">datasketches::req_sketch::get_comparator</a></div><div class="ttdeci">Comparator get_comparator() const</div><div class="ttdoc">Returns an instance of the comparator for this sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:224</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a0a9c9c240dd591017fd6a80e147b7c00"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00">datasketches::req_sketch::get_sorted_view</a></div><div class="ttdeci">quantiles_sorted_view< T, Comparator, Allocator > get_sorted_view() const</div><div class="ttdoc">Gets the sorted view of this sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:269</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a1936c2c39faaf2c19243949a57cec8e0"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a1936c2c39faaf2c19243949a57cec8e0">datasketches::req_sketch::deserialize</a></div><div class="ttdeci">static req_sketch deserialize(std::istream &is, const SerDe &sd=SerDe(), const Comparator &comparator=Comparator(), const Allocator &allocator=Allocator())</div><div class="ttdoc">This method deserializes a sketch from a given stream.</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a1943668612ea073d2f6381ee8c2ddfbd"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a1943668612ea073d2f6381ee8c2ddfbd">datasketches::req_sketch::req_sketch</a></div><div class="ttdeci">req_sketch(const req_sketch< TT, CC, AA > &other, const Comparator &comparator=Comparator(), const Allocator &allocator=Allocator())</div><div class="ttdoc">Type converting constructor.</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a1d0c269c23926e93b1c7a9c00e86af97"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97">datasketches::req_sketch::serialize</a></div><div class="ttdeci">vector_bytes serialize(unsigned header_size_bytes=0, const SerDe &sd=SerDe()) const</div><div class="ttdoc">This method serializes the sketch as a vector of bytes.</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a20a4d992209b2aa58614c998d143705c"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a20a4d992209b2aa58614c998d143705c">datasketches::req_sketch::get_CDF</a></div><div class="ttdeci">vector_double get_CDF(const T *split_points, uint32_t size, bool inclusive=true) const</div><div class="ttdoc">Returns an approximation to the Cumulative Distribution Function (CDF), which is the cumulative analo...</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:251</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a31fa76458d81a17dbebfcb828e531f14"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a31fa76458d81a17dbebfcb828e531f14">datasketches::req_sketch::get_num_retained</a></div><div class="ttdeci">uint32_t get_num_retained() const</div><div class="ttdoc">Returns the number of retained items in the sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:159</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a44226b755e73883ea2c128876e35b1d1"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a44226b755e73883ea2c128876e35b1d1">datasketches::req_sketch::get_PMF</a></div><div class="ttdeci">vector_double get_PMF(const T *split_points, uint32_t size, bool inclusive=true) const</div><div class="ttdoc">Returns an approximation to the Probability Mass Function (PMF) of the input stream given a set of sp...</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:244</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a49bb19e78f36fb72b8496cd6cff71fec"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec">datasketches::req_sketch::merge</a></div><div class="ttdeci">void merge(FwdSk &&other)</div><div class="ttdoc">Merges another sketch into this one.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:188</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a4c80d2361c940f99df9f850615c2dcbe"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe">datasketches::req_sketch::quantile_return_type</a></div><div class="ttdeci">typename quantiles_sorted_view< T, Comparator, Allocator >::quantile_return_type quantile_return_type</div><div class="ttdoc">Quantile return type.</div><div class="ttdef"><b>Definition:</b> req_sketch.hpp:92</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a5200c74c52ee0f76d0d34c1ca6aec65c"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a5200c74c52ee0f76d0d34c1ca6aec65c">datasketches::req_sketch::update</a></div><div class="ttdeci">void update(FwdT &&item)</div><div class="ttdoc">Updates this sketch with the given data item.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:170</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a538940c100e4353b3671ad452d3d3056"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a538940c100e4353b3671ad452d3d3056">datasketches::req_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &os, const SerDe &sd=SerDe()) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:369</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a592a7af55659ff803b26a45552a68dda"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a592a7af55659ff803b26a45552a68dda">datasketches::req_sketch::to_string</a></div><div class="ttdeci">string< Allocator > to_string(bool print_levels=false, bool print_items=false) const</div><div class="ttdoc">Prints a summary of the sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:631</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a59f4c39b9f2e762e8e3445ef89e1d264"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264">datasketches::req_sketch::get_k</a></div><div class="ttdeci">uint16_t get_k() const</div><div class="ttdoc">Returns configured parameter K.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:139</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::req_sketch::is_empty</a></div><div class="ttdeci">bool is_empty() const</div><div class="ttdoc">Returns true if this sketch is empty.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:149</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a687ed2123bdc7e67fbda0c081e3acf21"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21">datasketches::req_sketch::get_max_item</a></div><div class="ttdeci">const T & get_max_item() const</div><div class="ttdoc">Returns the max item of the stream.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:218</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a732d80ecaa19aab05f65ca62bdf0452c"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c">datasketches::req_sketch::req_sketch</a></div><div class="ttdeci">req_sketch(uint16_t k, bool hra=true, const Comparator &comparator=Comparator(), const Allocator &allocator=Allocator())</div><div class="ttdoc">Constructor.</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a750349aa79dff6db2d13857ab50248bb"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a750349aa79dff6db2d13857ab50248bb">datasketches::req_sketch::get_rank_upper_bound</a></div><div class="ttdeci">double get_rank_upper_bound(double rank, uint8_t num_std_dev) const</div><div class="ttdoc">Returns an approximate upper bound of the given normalized rank.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:289</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a849dfa06c183fd2fdfe4fe4a7e29d918"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918">datasketches::req_sketch::get_rank</a></div><div class="ttdeci">double get_rank(const T &item, bool inclusive=true) const</div><div class="ttdoc">Returns an approximation to the normalized rank of the given item from 0 to 1 inclusive.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:234</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a899bef2c5e0ea489ed4b023d2b9900ee"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a899bef2c5e0ea489ed4b023d2b9900ee">datasketches::req_sketch::get_RSE</a></div><div class="ttdeci">static double get_RSE(uint16_t k, double rank, bool hra, uint64_t n)</div><div class="ttdoc">Returns an a priori estimate of relative standard error (RSE, expressed as a number in [0,...</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:294</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a978630658d411c9c79fffa5909f5c8d0"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a978630658d411c9c79fffa5909f5c8d0">datasketches::req_sketch::get_rank_lower_bound</a></div><div class="ttdeci">double get_rank_lower_bound(double rank, uint8_t num_std_dev) const</div><div class="ttdoc">Returns an approximate lower bound of the given normalized rank.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:284</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_a9d85cf47c4ecd0580ec623c42006dd1b"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">datasketches::req_sketch::get_allocator</a></div><div class="ttdeci">Allocator get_allocator() const</div><div class="ttdoc">Returns an instance of the allocator for this sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:229</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ab6e85db46b1d76086d5e9b5065b74a46"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ab6e85db46b1d76086d5e9b5065b74a46">datasketches::req_sketch::operator=</a></div><div class="ttdeci">req_sketch & operator=(const req_sketch &other)</div><div class="ttdoc">Copy assignment.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:81</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ac02fcfb6e706148458a2ef89390223a9"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ac02fcfb6e706148458a2ef89390223a9">datasketches::req_sketch::get_quantile</a></div><div class="ttdeci">quantile_return_type get_quantile(double rank, bool inclusive=true) const</div><div class="ttdoc">Returns an approximate quantile of the given normalized rank.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:258</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ad5c959a538216a09ab28c5283585956c"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ad5c959a538216a09ab28c5283585956c">datasketches::req_sketch::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdoc">Iterator pointing to the first item in the sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:724</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ad9a5259d93d148b5c2050d68e7788716"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716">datasketches::req_sketch::get_serialized_size_bytes</a></div><div class="ttdeci">size_t get_serialized_size_bytes(const SerDe &sd=SerDe()) const</div><div class="ttdoc">Computes size needed to serialize the current state of the sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:334</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ae11e60e117300685401961e36f196f7a"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ae11e60e117300685401961e36f196f7a">datasketches::req_sketch::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdoc">Iterator pointing to the past-the-end item in the sketch.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:729</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ae7e9fdcb69c547de681bb6f10ae5ef3e"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ae7e9fdcb69c547de681bb6f10ae5ef3e">datasketches::req_sketch::deserialize</a></div><div class="ttdeci">static req_sketch deserialize(const void *bytes, size_t size, const SerDe &sd=SerDe(), const Comparator &comparator=Comparator(), const Allocator &allocator=Allocator())</div><div class="ttdoc">This method deserializes a sketch from a given array of bytes.</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_ae95a04b1d7dccb3d9b3f3c3d087aa8e6"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">datasketches::req_sketch::is_estimation_mode</a></div><div class="ttdeci">bool is_estimation_mode() const</div><div class="ttdoc">Returns true if this sketch is in estimation mode.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:164</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_af2fa890815acf3a1418ea8eee466075c"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#af2fa890815acf3a1418ea8eee466075c">datasketches::req_sketch::get_min_item</a></div><div class="ttdeci">const T & get_min_item() const</div><div class="ttdoc">Returns the min item of the stream.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:212</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_af6177b85206272c56ee75747bb885735"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#af6177b85206272c56ee75747bb885735">datasketches::req_sketch::is_HRA</a></div><div class="ttdeci">bool is_HRA() const</div><div class="ttdoc">Returns configured parameter High Rank Accuracy.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:144</div></div> |
| <div class="ttc" id="aclassdatasketches_1_1req__sketch_html_af857be9469a7565252626f27e1f9d74d"><div class="ttname"><a href="classdatasketches_1_1req__sketch.html#af857be9469a7565252626f27e1f9d74d">datasketches::req_sketch::get_n</a></div><div class="ttdeci">uint64_t get_n() const</div><div class="ttdoc">Returns the length of the input stream.</div><div class="ttdef"><b>Definition:</b> req_sketch_impl.hpp:154</div></div> |
| <div class="ttc" id="anamespacedatasketches_html"><div class="ttname"><a href="namespacedatasketches.html">datasketches</a></div><div class="ttdoc">DataSketches namespace.</div><div class="ttdef"><b>Definition:</b> binomial_bounds.hpp:38</div></div> |
| </div><!-- fragment --></div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 |
| </small></address> |
| </body> |
| </html> |