| <!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: common/include/inv_pow2_table.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_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_11fbc4217d50ab21044e5ad6614aede5.html">include</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"> |
| <div class="title">inv_pow2_table.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 INV_POW_2_TAB_HPP_</span></div> |
| <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define INV_POW_2_TAB_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 <cmath></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="keyword">namespace </span><a class="code" href="namespacedatasketches.html">datasketches</a> {</div> |
| <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> |
| <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// the table was created by the following procedure:</span></div> |
| <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> |
| <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">//void fill_inverse_power_of_2_table() {</span></div> |
| <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// for (int i = 0; i < 256; i++) {</span></div> |
| <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// inverse_powers_of_2_table[i] = pow(2.0, (-1.0 * ((double) i)));</span></div> |
| <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// printf("%.17g", inverse_powers_of_2_table[i]);</span></div> |
| <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// if (i != 255) printf(", ");</span></div> |
| <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// if ((i + 1) % 4 == 0) printf("\n");</span></div> |
| <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// }</span></div> |
| <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">//}</span></div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> |
| <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> INVERSE_POWERS_OF_2[256] = {</div> |
| <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  1, 0.5, 0.25, 0.125,</div> |
| <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  0.0625, 0.03125, 0.015625, 0.0078125,</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  0.00390625, 0.001953125, 0.0009765625, 0.00048828125,</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  0.000244140625, 0.0001220703125, 6.103515625e-05, 3.0517578125e-05,</div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  1.52587890625e-05, 7.62939453125e-06, 3.814697265625e-06, 1.9073486328125e-06,</div> |
| <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  9.5367431640625e-07, 4.76837158203125e-07, 2.384185791015625e-07, 1.1920928955078125e-07,</div> |
| <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  5.9604644775390625e-08, 2.9802322387695312e-08, 1.4901161193847656e-08, 7.4505805969238281e-09,</div> |
| <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  3.7252902984619141e-09, 1.862645149230957e-09, 9.3132257461547852e-10, 4.6566128730773926e-10,</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  2.3283064365386963e-10, 1.1641532182693481e-10, 5.8207660913467407e-11, 2.9103830456733704e-11,</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  1.4551915228366852e-11, 7.2759576141834259e-12, 3.637978807091713e-12, 1.8189894035458565e-12,</div> |
| <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  9.0949470177292824e-13, 4.5474735088646412e-13, 2.2737367544323206e-13, 1.1368683772161603e-13,</div> |
| <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  5.6843418860808015e-14, 2.8421709430404007e-14, 1.4210854715202004e-14, 7.1054273576010019e-15,</div> |
| <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  3.5527136788005009e-15, 1.7763568394002505e-15, 8.8817841970012523e-16, 4.4408920985006262e-16,</div> |
| <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  2.2204460492503131e-16, 1.1102230246251565e-16, 5.5511151231257827e-17, 2.7755575615628914e-17,</div> |
| <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  1.3877787807814457e-17, 6.9388939039072284e-18, 3.4694469519536142e-18, 1.7347234759768071e-18,</div> |
| <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  8.6736173798840355e-19, 4.3368086899420177e-19, 2.1684043449710089e-19, 1.0842021724855044e-19,</div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  5.4210108624275222e-20, 2.7105054312137611e-20, 1.3552527156068805e-20, 6.7762635780344027e-21,</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  3.3881317890172014e-21, 1.6940658945086007e-21, 8.4703294725430034e-22, 4.2351647362715017e-22,</div> |
| <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  2.1175823681357508e-22, 1.0587911840678754e-22, 5.2939559203393771e-23, 2.6469779601696886e-23,</div> |
| <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  1.3234889800848443e-23, 6.6174449004242214e-24, 3.3087224502121107e-24, 1.6543612251060553e-24,</div> |
| <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  8.2718061255302767e-25, 4.1359030627651384e-25, 2.0679515313825692e-25, 1.0339757656912846e-25,</div> |
| <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  5.169878828456423e-26, 2.5849394142282115e-26, 1.2924697071141057e-26, 6.4623485355705287e-27,</div> |
| <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  3.2311742677852644e-27, 1.6155871338926322e-27, 8.0779356694631609e-28, 4.0389678347315804e-28,</div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  2.0194839173657902e-28, 1.0097419586828951e-28, 5.0487097934144756e-29, 2.5243548967072378e-29,</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  1.2621774483536189e-29, 6.3108872417680944e-30, 3.1554436208840472e-30, 1.5777218104420236e-30,</div> |
| <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  7.8886090522101181e-31, 3.944304526105059e-31, 1.9721522630525295e-31, 9.8607613152626476e-32,</div> |
| <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  4.9303806576313238e-32, 2.4651903288156619e-32, 1.2325951644078309e-32, 6.1629758220391547e-33,</div> |
| <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  3.0814879110195774e-33, 1.5407439555097887e-33, 7.7037197775489434e-34, 3.8518598887744717e-34,</div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  1.9259299443872359e-34, 9.6296497219361793e-35, 4.8148248609680896e-35, 2.4074124304840448e-35,</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  1.2037062152420224e-35, 6.018531076210112e-36, 3.009265538105056e-36, 1.504632769052528e-36,</div> |
| <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  7.5231638452626401e-37, 3.76158192263132e-37, 1.88079096131566e-37, 9.4039548065783001e-38,</div> |
| <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  4.70197740328915e-38, 2.350988701644575e-38, 1.1754943508222875e-38, 5.8774717541114375e-39,</div> |
| <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  2.9387358770557188e-39, 1.4693679385278594e-39, 7.3468396926392969e-40, 3.6734198463196485e-40,</div> |
| <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  1.8367099231598242e-40, 9.1835496157991212e-41, 4.5917748078995606e-41, 2.2958874039497803e-41,</div> |
| <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  1.1479437019748901e-41, 5.7397185098744507e-42, 2.8698592549372254e-42, 1.4349296274686127e-42,</div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  7.1746481373430634e-43, 3.5873240686715317e-43, 1.7936620343357659e-43, 8.9683101716788293e-44,</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  4.4841550858394146e-44, 2.2420775429197073e-44, 1.1210387714598537e-44, 5.6051938572992683e-45,</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  2.8025969286496341e-45, 1.4012984643248171e-45, 7.0064923216240854e-46, 3.5032461608120427e-46,</div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  1.7516230804060213e-46, 8.7581154020301067e-47, 4.3790577010150533e-47, 2.1895288505075267e-47,</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  1.0947644252537633e-47, 5.4738221262688167e-48, 2.7369110631344083e-48, 1.3684555315672042e-48,</div> |
| <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  6.8422776578360209e-49, 3.4211388289180104e-49, 1.7105694144590052e-49, 8.5528470722950261e-50,</div> |
| <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  4.276423536147513e-50, 2.1382117680737565e-50, 1.0691058840368783e-50, 5.3455294201843913e-51,</div> |
| <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  2.6727647100921956e-51, 1.3363823550460978e-51, 6.6819117752304891e-52, 3.3409558876152446e-52,</div> |
| <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  1.6704779438076223e-52, 8.3523897190381114e-53, 4.1761948595190557e-53, 2.0880974297595278e-53,</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  1.0440487148797639e-53, 5.2202435743988196e-54, 2.6101217871994098e-54, 1.3050608935997049e-54,</div> |
| <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  6.5253044679985245e-55, 3.2626522339992623e-55, 1.6313261169996311e-55, 8.1566305849981557e-56,</div> |
| <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  4.0783152924990778e-56, 2.0391576462495389e-56, 1.0195788231247695e-56, 5.0978941156238473e-57,</div> |
| <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  2.5489470578119236e-57, 1.2744735289059618e-57, 6.3723676445298091e-58, 3.1861838222649046e-58,</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  1.5930919111324523e-58, 7.9654595556622614e-59, 3.9827297778311307e-59, 1.9913648889155653e-59,</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  9.9568244445778267e-60, 4.9784122222889134e-60, 2.4892061111444567e-60, 1.2446030555722283e-60,</div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  6.2230152778611417e-61, 3.1115076389305709e-61, 1.5557538194652854e-61, 7.7787690973264271e-62,</div> |
| <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  3.8893845486632136e-62, 1.9446922743316068e-62, 9.7234613716580339e-63, 4.861730685829017e-63,</div> |
| <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  2.4308653429145085e-63, 1.2154326714572542e-63, 6.0771633572862712e-64, 3.0385816786431356e-64,</div> |
| <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  1.5192908393215678e-64, 7.596454196607839e-65, 3.7982270983039195e-65, 1.8991135491519597e-65,</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  9.4955677457597987e-66, 4.7477838728798994e-66, 2.3738919364399497e-66, 1.1869459682199748e-66,</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  5.9347298410998742e-67, 2.9673649205499371e-67, 1.4836824602749686e-67, 7.4184123013748428e-68,</div> |
| <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  3.7092061506874214e-68, 1.8546030753437107e-68, 9.2730153767185535e-69, 4.6365076883592767e-69,</div> |
| <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  2.3182538441796384e-69, 1.1591269220898192e-69, 5.7956346104490959e-70, 2.897817305224548e-70,</div> |
| <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  1.448908652612274e-70, 7.2445432630613699e-71, 3.6222716315306849e-71, 1.8111358157653425e-71,</div> |
| <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  9.0556790788267124e-72, 4.5278395394133562e-72, 2.2639197697066781e-72, 1.131959884853339e-72,</div> |
| <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  5.6597994242666952e-73, 2.8298997121333476e-73, 1.4149498560666738e-73, 7.074749280333369e-74,</div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  3.5373746401666845e-74, 1.7686873200833423e-74, 8.8434366004167113e-75, 4.4217183002083556e-75,</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  2.2108591501041778e-75, 1.1054295750520889e-75, 5.5271478752604446e-76, 2.7635739376302223e-76,</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  1.3817869688151111e-76, 6.9089348440755557e-77, 3.4544674220377779e-77, 1.7272337110188889e-77</div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div> |
| <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> } <span class="comment">/* namespace datasketches */</span></div> |
| <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div> |
| <div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#endif</span></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> |