blob: 48eb6dbc38b54660bb00e27cabf08c29b019df4d [file] [log] [blame]
<!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>mxnet: /work/mxnet/3rdparty/dmlc-core/include/dmlc/data.h 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">mxnet
</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&amp;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&amp;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_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_82e31a22178767beedddc7597fd1ecb6.html">dmlc-core</a></li><li class="navelem"><a class="el" href="dir_7dd5b88db83ff474628c03c453739a90.html">include</a></li><li class="navelem"><a class="el" href="dir_e30967e3ab51f65ad4b50dd298ccf4e7.html">dmlc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">data.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="data_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#ifndef DMLC_DATA_H_</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define DMLC_DATA_H_</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html">./base.h</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2io_8h.html">./io.h</a>&quot;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;./logging.h&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html">./registry.h</a>&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// To help C Preprocessor with processing c++ templated types</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="data_8h.html#a5b1cc6161f39c0f11f6a871eed6b018b"> 19</a></span>&#160;<span class="preprocessor">#define __DMLC_COMMA ,</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacedmlc.html">dmlc</a> {</div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4"> 26</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4">real_t</a>;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacedmlc.html#a7a89c6e0909617034aa818dafe83a361"> 32</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <a class="code" href="namespacedmlc.html#a7a89c6e0909617034aa818dafe83a361">index_t</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// This file describes common data structure that can be used</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// for large-scale machine learning, this may not be a complete list</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// But we will keep the most common and useful ones, and keep adding new ones</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> DType&gt;</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classdmlc_1_1DataIter.html"> 56</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdmlc_1_1DataIter.html">DataIter</a> {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classdmlc_1_1DataIter.html#aef4acbc5a49dd71edb360149a2b19ee2"> 59</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classdmlc_1_1DataIter.html#aef4acbc5a49dd71edb360149a2b19ee2">~DataIter</a>(<span class="keywordtype">void</span>) <a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html#a80bde16113dc79e7adb7953e006d6b60">DMLC_THROW_EXCEPTION</a> {}</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdmlc_1_1DataIter.html#a77735f53af4bb7490009315607ab9135">BeforeFirst</a>(<span class="keywordtype">void</span>) = 0;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdmlc_1_1DataIter.html#a1f07f4d4f87485d1de4b6ba1af4d7b5b">Next</a>(<span class="keywordtype">void</span>) = 0;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> DType &amp;<a class="code" href="classdmlc_1_1DataIter.html#a2695f02f824a515b60d4fb0af6c4e6d6">Value</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType, <span class="keyword">typename</span> DType = real_t&gt;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdmlc_1_1Row.html">Row</a> {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#a696b4316f9e2aa22081a2cc85acc68f9"> 77</a></span>&#160; <span class="keyword">const</span> DType *<a class="code" href="classdmlc_1_1Row.html#a696b4316f9e2aa22081a2cc85acc68f9">label</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b"> 79</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4">real_t</a> *<a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699"> 81</a></span>&#160; <span class="keyword">const</span> uint64_t *<a class="code" href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699">qid</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#ab6331543a9e03b7a57e6ac2ff038da81"> 83</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classdmlc_1_1Row.html#ab6331543a9e03b7a57e6ac2ff038da81">length</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#af467a5aac22cdfd49952f8487e0aa04e"> 87</a></span>&#160; <span class="keyword">const</span> IndexType *<a class="code" href="classdmlc_1_1Row.html#af467a5aac22cdfd49952f8487e0aa04e">field</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a"> 91</a></span>&#160; <span class="keyword">const</span> IndexType *<a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd"> 96</a></span>&#160; <span class="keyword">const</span> DType *<a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#a1d4774a0e408869196010f482c7ad230"> 101</a></span>&#160; <span class="keyword">inline</span> IndexType <a class="code" href="classdmlc_1_1Row.html#a1d4774a0e408869196010f482c7ad230">get_field</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classdmlc_1_1Row.html#af467a5aac22cdfd49952f8487e0aa04e">field</a>[i];</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#ae6deb6352345482c70c22e9b8fd923a1"> 108</a></span>&#160; <span class="keyword">inline</span> IndexType <a class="code" href="classdmlc_1_1Row.html#ae6deb6352345482c70c22e9b8fd923a1">get_index</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a>[i];</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#a4f0e491a30fd5b25946325753514677e"> 116</a></span>&#160; <span class="keyword">inline</span> DType <a class="code" href="classdmlc_1_1Row.html#a4f0e491a30fd5b25946325753514677e">get_value</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a> == NULL ? DType(1.0f) : <a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a>[i];</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#af54d5a35af14e87bc29f22efd22a9c20"> 122</a></span>&#160; <span class="keyword">inline</span> DType <a class="code" href="classdmlc_1_1Row.html#af54d5a35af14e87bc29f22efd22a9c20">get_label</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="classdmlc_1_1Row.html#a696b4316f9e2aa22081a2cc85acc68f9">label</a>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#a2131cfd3b0a21778d076c838fa8d288f"> 129</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4">real_t</a> <a class="code" href="classdmlc_1_1Row.html#a2131cfd3b0a21778d076c838fa8d288f">get_weight</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a> == NULL ? 1.0f : *<a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#ae2f6acb9a77c26532e795400726c86f6"> 136</a></span>&#160; <span class="keyword">inline</span> uint64_t <a class="code" href="classdmlc_1_1Row.html#ae2f6acb9a77c26532e795400726c86f6">get_qid</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699">qid</a> == NULL ? 0 : *<a class="code" href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699">qid</a>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> V&gt;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classdmlc_1_1Row.html#aec1f771873407e5b6e5b6c1ae3eb1e43"> 147</a></span>&#160; <span class="keyword">inline</span> V <a class="code" href="classdmlc_1_1Row.html#aec1f771873407e5b6e5b6c1ae3eb1e43">SDot</a>(<span class="keyword">const</span> V *<a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a>, <span class="keywordtype">size_t</span> size)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; V sum = <span class="keyword">static_cast&lt;</span>V<span class="keyword">&gt;</span>(0);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a> == NULL) {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classdmlc_1_1Row.html#ab6331543a9e03b7a57e6ac2ff038da81">length</a>; ++i) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; CHECK(<a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a>[i] &lt; size) &lt;&lt; <span class="stringliteral">&quot;feature index exceed bound&quot;</span>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; sum += <a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a>[<a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a>[i]];</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classdmlc_1_1Row.html#ab6331543a9e03b7a57e6ac2ff038da81">length</a>; ++i) {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; CHECK(<a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a>[i] &lt; size) &lt;&lt; <span class="stringliteral">&quot;feature index exceed bound&quot;</span>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; sum += <a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a>[<a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a>[i]] * <a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a>[i];</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> sum;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;};</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType, <span class="keyword">typename</span> DType = real_t&gt;</div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html"> 175</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structdmlc_1_1RowBlock.html">RowBlock</a> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60"> 177</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80"> 179</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> *<a class="code" href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80">offset</a>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a0d5471d01726948ce91855e8b82b0f65"> 181</a></span>&#160; <span class="keyword">const</span> DType *<a class="code" href="structdmlc_1_1RowBlock.html#a0d5471d01726948ce91855e8b82b0f65">label</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e"> 183</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4">real_t</a> *<a class="code" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">weight</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d"> 185</a></span>&#160; <span class="keyword">const</span> uint64_t *<a class="code" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">qid</a>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a8b1ae1de1eecc081042944ba180023b7"> 187</a></span>&#160; <span class="keyword">const</span> IndexType *<a class="code" href="structdmlc_1_1RowBlock.html#a8b1ae1de1eecc081042944ba180023b7">field</a>;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a503383e0f0465903f729afef4e572e67"> 189</a></span>&#160; <span class="keyword">const</span> IndexType *<a class="code" href="structdmlc_1_1RowBlock.html#a503383e0f0465903f729afef4e572e67">index</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#a82d8207d3d5948d899616d9e8b39cb3d"> 191</a></span>&#160; <span class="keyword">const</span> DType *<a class="code" href="structdmlc_1_1RowBlock.html#a82d8207d3d5948d899616d9e8b39cb3d">value</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">inline</span> <a class="code" href="classdmlc_1_1Row.html">Row&lt;IndexType, DType&gt;</a> <a class="code" href="structdmlc_1_1RowBlock.html#aa14d895e47727789ee1427881d084694">operator[]</a>(<span class="keywordtype">size_t</span> rowid) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#afe64fee84f30537d9666838323c67aa9"> 199</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="structdmlc_1_1RowBlock.html#afe64fee84f30537d9666838323c67aa9">MemCostBytes</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">size_t</span> cost = <a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a> * (<span class="keyword">sizeof</span>(size_t) + <span class="keyword">sizeof</span>(DType));</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">weight</a> != NULL) cost += <a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a> * <span class="keyword">sizeof</span>(<a class="code" href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4">real_t</a>);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">qid</a> != NULL) cost += <a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a> * <span class="keyword">sizeof</span>(size_t);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">size_t</span> ndata = <a class="code" href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80">offset</a>[<a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a>] - <a class="code" href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80">offset</a>[0];</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a8b1ae1de1eecc081042944ba180023b7">field</a> != NULL) cost += ndata * <span class="keyword">sizeof</span>(IndexType);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a503383e0f0465903f729afef4e572e67">index</a> != NULL) cost += ndata * <span class="keyword">sizeof</span>(IndexType);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a82d8207d3d5948d899616d9e8b39cb3d">value</a> != NULL) cost += ndata * <span class="keyword">sizeof</span>(DType);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> cost;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#ac9abfd0cb57cec37e267725fe2b0fcf8"> 215</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="structdmlc_1_1RowBlock.html">RowBlock</a> <a class="code" href="structdmlc_1_1RowBlock.html#ac9abfd0cb57cec37e267725fe2b0fcf8">Slice</a>(<span class="keywordtype">size_t</span> begin, <span class="keywordtype">size_t</span> end)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; CHECK(begin &lt;= end &amp;&amp; end &lt;= <a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a>);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="structdmlc_1_1RowBlock.html">RowBlock</a> ret;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">size</a> = end - begin;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a0d5471d01726948ce91855e8b82b0f65">label</a> = <a class="code" href="structdmlc_1_1RowBlock.html#a0d5471d01726948ce91855e8b82b0f65">label</a> + begin;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">weight</a> != NULL) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">weight</a> = <a class="code" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">weight</a> + begin;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">weight</a> = NULL;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">qid</a> != NULL) {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">qid</a> = <a class="code" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">qid</a> + begin;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">qid</a> = NULL;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80">offset</a> = <a class="code" href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80">offset</a> + begin;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a8b1ae1de1eecc081042944ba180023b7">field</a> = <a class="code" href="structdmlc_1_1RowBlock.html#a8b1ae1de1eecc081042944ba180023b7">field</a>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a503383e0f0465903f729afef4e572e67">index</a> = <a class="code" href="structdmlc_1_1RowBlock.html#a503383e0f0465903f729afef4e572e67">index</a>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; ret.<a class="code" href="structdmlc_1_1RowBlock.html#a82d8207d3d5948d899616d9e8b39cb3d">value</a> = <a class="code" href="structdmlc_1_1RowBlock.html#a82d8207d3d5948d899616d9e8b39cb3d">value</a>;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;};</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType, <span class="keyword">typename</span> DType = real_t&gt;</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classdmlc_1_1RowBlockIter.html"> 254</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdmlc_1_1RowBlockIter.html">RowBlockIter</a> : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1DataIter.html">DataIter</a>&lt;RowBlock&lt;IndexType, DType&gt; &gt; {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">static</span> <a class="code" href="classdmlc_1_1RowBlockIter.html">RowBlockIter&lt;IndexType, DType&gt;</a> *</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classdmlc_1_1RowBlockIter.html#a1784cad30bd954853a62ab778a078849">Create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *uri,</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">unsigned</span> part_index,</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">unsigned</span> num_parts,</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classdmlc_1_1RowBlockIter.html#aa4456f0212e0d8c06e444a31aca0515e">NumCol</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;};</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> IndexType, <span class="keyword">typename</span> DType = real_t&gt;</div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classdmlc_1_1Parser.html"> 293</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdmlc_1_1Parser.html">Parser</a> : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1DataIter.html">DataIter</a>&lt;RowBlock&lt;IndexType, DType&gt; &gt; {</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">static</span> <a class="code" href="classdmlc_1_1Parser.html">Parser&lt;IndexType, DType&gt;</a> *</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classdmlc_1_1Parser.html#a795cd4f65273bd4612a32bd4a2797a34">Create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *uri_,</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">unsigned</span> part_index,</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">unsigned</span> num_parts,</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classdmlc_1_1Parser.html#ab1502841c20f75244aa21618c01112ee">BytesRead</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classdmlc_1_1Parser.html">Parser&lt;IndexType, DType&gt;</a>* (*Factory)</div>
<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classdmlc_1_1Parser.html#aacf539079f2aab0d75c6dad286d7653e"> 316</a></span>&#160; (<span class="keyword">const</span> std::string&amp; path,</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; args,</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">unsigned</span> part_index,</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">unsigned</span> num_parts);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;};</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType, <span class="keyword">typename</span> DType = real_t&gt;</div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="structdmlc_1_1ParserFactoryReg.html"> 328</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structdmlc_1_1ParserFactoryReg.html">ParserFactoryReg</a></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">FunctionRegEntryBase</a>&lt;ParserFactoryReg&lt;IndexType, DType&gt;,</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; typename Parser&lt;IndexType, DType&gt;::Factory&gt; {};</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="data_8h.html#a817ab5e00a100e40e3bf9dba7d23ddd2"> 358</a></span>&#160;<span class="preprocessor">#define DMLC_REGISTER_DATA_PARSER(IndexType, DataType, TypeName, FactoryFunction) \</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(ParserFactoryReg&lt;IndexType __DMLC_COMMA DataType&gt;, \</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> ParserFactoryReg ## _ ## IndexType ## _ ## DataType, TypeName) \</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"> .set_body(FactoryFunction)</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// implementation of operator[]</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType, <span class="keyword">typename</span> DType&gt;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="keyword">inline</span> Row&lt;IndexType, DType&gt;</div>
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="structdmlc_1_1RowBlock.html#aa14d895e47727789ee1427881d084694"> 367</a></span>&#160;<a class="code" href="structdmlc_1_1RowBlock.html#aa14d895e47727789ee1427881d084694">RowBlock&lt;IndexType, DType&gt;::operator[]</a>(<span class="keywordtype">size_t</span> rowid)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; CHECK(rowid &lt; size);</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="classdmlc_1_1Row.html">Row&lt;IndexType, DType&gt;</a> inst;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#a696b4316f9e2aa22081a2cc85acc68f9">label</a> = label + rowid;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span> (weight != NULL) {</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a> = weight + rowid;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">weight</a> = NULL;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span> (qid != NULL) {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699">qid</a> = qid + rowid;</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699">qid</a> = NULL;</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#ab6331543a9e03b7a57e6ac2ff038da81">length</a> = offset[rowid + 1] - offset[rowid];</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (field != NULL) {</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#af467a5aac22cdfd49952f8487e0aa04e">field</a> = field + offset[rowid];</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#af467a5aac22cdfd49952f8487e0aa04e">field</a> = NULL;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">index</a> = index + offset[rowid];</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (value == NULL) {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a> = NULL;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; inst.<a class="code" href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">value</a> = value + offset[rowid];</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> inst;</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;} <span class="comment">// namespace dmlc</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor">#endif // DMLC_DATA_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a503383e0f0465903f729afef4e572e67"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a503383e0f0465903f729afef4e572e67">dmlc::RowBlock::index</a></div><div class="ttdeci">const IndexType * index</div><div class="ttdoc">feature index</div><div class="ttdef"><b>Definition:</b> data.h:189</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_af54d5a35af14e87bc29f22efd22a9c20"><div class="ttname"><a href="classdmlc_1_1Row.html#af54d5a35af14e87bc29f22efd22a9c20">dmlc::Row::get_label</a></div><div class="ttdeci">DType get_label() const</div><div class="ttdef"><b>Definition:</b> data.h:122</div></div>
<div class="ttc" id="aclassdmlc_1_1DataIter_html_a2695f02f824a515b60d4fb0af6c4e6d6"><div class="ttname"><a href="classdmlc_1_1DataIter.html#a2695f02f824a515b60d4fb0af6c4e6d6">dmlc::DataIter::Value</a></div><div class="ttdeci">virtual const DType &amp; Value(void) const =0</div><div class="ttdoc">get current data</div></div>
<div class="ttc" id="aclassdmlc_1_1FunctionRegEntryBase_html"><div class="ttname"><a href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a></div><div class="ttdoc">Common base class for function registry.</div><div class="ttdef"><b>Definition:</b> registry.h:151</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a82d8207d3d5948d899616d9e8b39cb3d"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a82d8207d3d5948d899616d9e8b39cb3d">dmlc::RowBlock::value</a></div><div class="ttdeci">const DType * value</div><div class="ttdoc">feature value, can be NULL, indicating all values are 1</div><div class="ttdef"><b>Definition:</b> data.h:191</div></div>
<div class="ttc" id="anamespacedmlc_html"><div class="ttname"><a href="namespacedmlc.html">dmlc</a></div><div class="ttdoc">namespace for dmlc</div><div class="ttdef"><b>Definition:</b> array_view.h:12</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_ae6deb6352345482c70c22e9b8fd923a1"><div class="ttname"><a href="classdmlc_1_1Row.html#ae6deb6352345482c70c22e9b8fd923a1">dmlc::Row::get_index</a></div><div class="ttdeci">IndexType get_index(size_t i) const</div><div class="ttdef"><b>Definition:</b> data.h:108</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a8b1ae1de1eecc081042944ba180023b7"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a8b1ae1de1eecc081042944ba180023b7">dmlc::RowBlock::field</a></div><div class="ttdeci">const IndexType * field</div><div class="ttdoc">field id</div><div class="ttdef"><b>Definition:</b> data.h:187</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a0d5471d01726948ce91855e8b82b0f65"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a0d5471d01726948ce91855e8b82b0f65">dmlc::RowBlock::label</a></div><div class="ttdeci">const DType * label</div><div class="ttdoc">array[size] label of each instance</div><div class="ttdef"><b>Definition:</b> data.h:181</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a34bbb9cd6aacf2544995c86c62ff4c6e"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a34bbb9cd6aacf2544995c86c62ff4c6e">dmlc::RowBlock::weight</a></div><div class="ttdeci">const real_t * weight</div><div class="ttdoc">With weight: array[size] label of each instance, otherwise nullptr.</div><div class="ttdef"><b>Definition:</b> data.h:183</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_a696b4316f9e2aa22081a2cc85acc68f9"><div class="ttname"><a href="classdmlc_1_1Row.html#a696b4316f9e2aa22081a2cc85acc68f9">dmlc::Row::label</a></div><div class="ttdeci">const DType * label</div><div class="ttdoc">label of the instance</div><div class="ttdef"><b>Definition:</b> data.h:77</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_ac9abfd0cb57cec37e267725fe2b0fcf8"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#ac9abfd0cb57cec37e267725fe2b0fcf8">dmlc::RowBlock::Slice</a></div><div class="ttdeci">RowBlock Slice(size_t begin, size_t end) const</div><div class="ttdoc">slice a RowBlock to get rows in [begin, end)</div><div class="ttdef"><b>Definition:</b> data.h:215</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_a2131cfd3b0a21778d076c838fa8d288f"><div class="ttname"><a href="classdmlc_1_1Row.html#a2131cfd3b0a21778d076c838fa8d288f">dmlc::Row::get_weight</a></div><div class="ttdeci">real_t get_weight() const</div><div class="ttdef"><b>Definition:</b> data.h:129</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_ae2f6acb9a77c26532e795400726c86f6"><div class="ttname"><a href="classdmlc_1_1Row.html#ae2f6acb9a77c26532e795400726c86f6">dmlc::Row::get_qid</a></div><div class="ttdeci">uint64_t get_qid() const</div><div class="ttdef"><b>Definition:</b> data.h:136</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_af467a5aac22cdfd49952f8487e0aa04e"><div class="ttname"><a href="classdmlc_1_1Row.html#af467a5aac22cdfd49952f8487e0aa04e">dmlc::Row::field</a></div><div class="ttdeci">const IndexType * field</div><div class="ttdoc">field of each instance</div><div class="ttdef"><b>Definition:</b> data.h:87</div></div>
<div class="ttc" id="a3rdparty_2dmlc-core_2include_2dmlc_2base_8h_html"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html">base.h</a></div><div class="ttdoc">defines configuration macros</div></div>
<div class="ttc" id="aclassdmlc_1_1Parser_html_ab1502841c20f75244aa21618c01112ee"><div class="ttname"><a href="classdmlc_1_1Parser.html#ab1502841c20f75244aa21618c01112ee">dmlc::Parser::BytesRead</a></div><div class="ttdeci">virtual size_t BytesRead(void) const =0</div></div>
<div class="ttc" id="aclassdmlc_1_1RowBlockIter_html_aa4456f0212e0d8c06e444a31aca0515e"><div class="ttname"><a href="classdmlc_1_1RowBlockIter.html#aa4456f0212e0d8c06e444a31aca0515e">dmlc::RowBlockIter::NumCol</a></div><div class="ttdeci">virtual size_t NumCol() const =0</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_aa51bcac8083e8f37fb742febe7dc5699"><div class="ttname"><a href="classdmlc_1_1Row.html#aa51bcac8083e8f37fb742febe7dc5699">dmlc::Row::qid</a></div><div class="ttdeci">const uint64_t * qid</div><div class="ttdoc">session-id of the instance</div><div class="ttdef"><b>Definition:</b> data.h:81</div></div>
<div class="ttc" id="aclassdmlc_1_1DataIter_html_a77735f53af4bb7490009315607ab9135"><div class="ttname"><a href="classdmlc_1_1DataIter.html#a77735f53af4bb7490009315607ab9135">dmlc::DataIter::BeforeFirst</a></div><div class="ttdeci">virtual void BeforeFirst(void)=0</div><div class="ttdoc">set before first of the item</div></div>
<div class="ttc" id="aclassdmlc_1_1DataIter_html_aef4acbc5a49dd71edb360149a2b19ee2"><div class="ttname"><a href="classdmlc_1_1DataIter.html#aef4acbc5a49dd71edb360149a2b19ee2">dmlc::DataIter::~DataIter</a></div><div class="ttdeci">virtual ~DataIter(void) DMLC_THROW_EXCEPTION</div><div class="ttdoc">destructor</div><div class="ttdef"><b>Definition:</b> data.h:59</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html"><div class="ttname"><a href="classdmlc_1_1Row.html">dmlc::Row</a></div><div class="ttdoc">one row of training instance</div><div class="ttdef"><b>Definition:</b> data.h:74</div></div>
<div class="ttc" id="aclassdmlc_1_1Parser_html_a795cd4f65273bd4612a32bd4a2797a34"><div class="ttname"><a href="classdmlc_1_1Parser.html#a795cd4f65273bd4612a32bd4a2797a34">dmlc::Parser::Create</a></div><div class="ttdeci">static Parser&lt; IndexType, DType &gt; * Create(const char *uri_, unsigned part_index, unsigned num_parts, const char *type)</div><div class="ttdoc">create a new instance of parser based on the &quot;type&quot;</div></div>
<div class="ttc" id="anamespacedmlc_html_a7a89c6e0909617034aa818dafe83a361"><div class="ttname"><a href="namespacedmlc.html#a7a89c6e0909617034aa818dafe83a361">dmlc::index_t</a></div><div class="ttdeci">unsigned index_t</div><div class="ttdoc">this defines the unsigned integer type that can normally be used to store feature index</div><div class="ttdef"><b>Definition:</b> data.h:32</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a86aca0fbba3d80711b55d97c69065a1d"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a86aca0fbba3d80711b55d97c69065a1d">dmlc::RowBlock::qid</a></div><div class="ttdeci">const uint64_t * qid</div><div class="ttdoc">With qid: array[size] session id of each instance, otherwise nullptr.</div><div class="ttdef"><b>Definition:</b> data.h:185</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_afe64fee84f30537d9666838323c67aa9"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#afe64fee84f30537d9666838323c67aa9">dmlc::RowBlock::MemCostBytes</a></div><div class="ttdeci">size_t MemCostBytes(void) const</div><div class="ttdef"><b>Definition:</b> data.h:199</div></div>
<div class="ttc" id="aclassdmlc_1_1DataIter_html_a1f07f4d4f87485d1de4b6ba1af4d7b5b"><div class="ttname"><a href="classdmlc_1_1DataIter.html#a1f07f4d4f87485d1de4b6ba1af4d7b5b">dmlc::DataIter::Next</a></div><div class="ttdeci">virtual bool Next(void)=0</div><div class="ttdoc">move to next item</div></div>
<div class="ttc" id="astructdmlc_1_1ParserFactoryReg_html"><div class="ttname"><a href="structdmlc_1_1ParserFactoryReg.html">dmlc::ParserFactoryReg</a></div><div class="ttdoc">registry entry of parser factory</div><div class="ttdef"><b>Definition:</b> data.h:328</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_a485965d516f8d7e236c03cb5e415006a"><div class="ttname"><a href="classdmlc_1_1Row.html#a485965d516f8d7e236c03cb5e415006a">dmlc::Row::index</a></div><div class="ttdeci">const IndexType * index</div><div class="ttdoc">index of each instance</div><div class="ttdef"><b>Definition:</b> data.h:91</div></div>
<div class="ttc" id="a3rdparty_2dmlc-core_2include_2dmlc_2io_8h_html"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2io_8h.html">io.h</a></div><div class="ttdoc">defines serializable interface of dmlc</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_aa14d895e47727789ee1427881d084694"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#aa14d895e47727789ee1427881d084694">dmlc::RowBlock::operator[]</a></div><div class="ttdeci">Row&lt; IndexType, DType &gt; operator[](size_t rowid) const</div><div class="ttdoc">get specific rows in the batch</div><div class="ttdef"><b>Definition:</b> data.h:367</div></div>
<div class="ttc" id="aclassdmlc_1_1DataIter_html"><div class="ttname"><a href="classdmlc_1_1DataIter.html">dmlc::DataIter</a></div><div class="ttdoc">data iterator interface this is not a C++ style iterator, but nice for data pulling:) This interface ...</div><div class="ttdef"><b>Definition:</b> data.h:56</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html"><div class="ttname"><a href="structdmlc_1_1RowBlock.html">dmlc::RowBlock</a></div><div class="ttdoc">a block of data, containing several rows in sparse matrix This is useful for (streaming-sxtyle) algor...</div><div class="ttdef"><b>Definition:</b> data.h:175</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_ae3c81282e6a2531aaaa9f9ec94a8ab80"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#ae3c81282e6a2531aaaa9f9ec94a8ab80">dmlc::RowBlock::offset</a></div><div class="ttdeci">const size_t * offset</div><div class="ttdoc">array[size+1], row pointer to beginning of each rows</div><div class="ttdef"><b>Definition:</b> data.h:179</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_ab6331543a9e03b7a57e6ac2ff038da81"><div class="ttname"><a href="classdmlc_1_1Row.html#ab6331543a9e03b7a57e6ac2ff038da81">dmlc::Row::length</a></div><div class="ttdeci">size_t length</div><div class="ttdoc">length of the sparse vector</div><div class="ttdef"><b>Definition:</b> data.h:83</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_aec1f771873407e5b6e5b6c1ae3eb1e43"><div class="ttname"><a href="classdmlc_1_1Row.html#aec1f771873407e5b6e5b6c1ae3eb1e43">dmlc::Row::SDot</a></div><div class="ttdeci">V SDot(const V *weight, size_t size) const</div><div class="ttdoc">helper function to compute dot product of current</div><div class="ttdef"><b>Definition:</b> data.h:147</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_a4f0e491a30fd5b25946325753514677e"><div class="ttname"><a href="classdmlc_1_1Row.html#a4f0e491a30fd5b25946325753514677e">dmlc::Row::get_value</a></div><div class="ttdeci">DType get_value(size_t i) const</div><div class="ttdef"><b>Definition:</b> data.h:116</div></div>
<div class="ttc" id="aclassdmlc_1_1RowBlockIter_html_a1784cad30bd954853a62ab778a078849"><div class="ttname"><a href="classdmlc_1_1RowBlockIter.html#a1784cad30bd954853a62ab778a078849">dmlc::RowBlockIter::Create</a></div><div class="ttdeci">static RowBlockIter&lt; IndexType, DType &gt; * Create(const char *uri, unsigned part_index, unsigned num_parts, const char *type)</div><div class="ttdoc">create a new instance of iterator that returns rowbatch by default, a in-memory based iterator will b...</div></div>
<div class="ttc" id="astructdmlc_1_1RowBlock_html_a1989cb5aa3cd07f8898243e4f367ff60"><div class="ttname"><a href="structdmlc_1_1RowBlock.html#a1989cb5aa3cd07f8898243e4f367ff60">dmlc::RowBlock::size</a></div><div class="ttdeci">size_t size</div><div class="ttdoc">batch size</div><div class="ttdef"><b>Definition:</b> data.h:177</div></div>
<div class="ttc" id="aclassdmlc_1_1Parser_html"><div class="ttname"><a href="classdmlc_1_1Parser.html">dmlc::Parser</a></div><div class="ttdoc">parser interface that parses input data used to load dmlc data format into your own data format Diffe...</div><div class="ttdef"><b>Definition:</b> data.h:293</div></div>
<div class="ttc" id="anamespacedmlc_html_ab23d78846b42ebd3a436e3bc295b73f4"><div class="ttname"><a href="namespacedmlc.html#ab23d78846b42ebd3a436e3bc295b73f4">dmlc::real_t</a></div><div class="ttdeci">float real_t</div><div class="ttdoc">this defines the float point that will be used to store feature values</div><div class="ttdef"><b>Definition:</b> data.h:26</div></div>
<div class="ttc" id="a3rdparty_2dmlc-core_2include_2dmlc_2registry_8h_html"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html">registry.h</a></div><div class="ttdoc">Registry utility that helps to build registry singletons.</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_a1d4774a0e408869196010f482c7ad230"><div class="ttname"><a href="classdmlc_1_1Row.html#a1d4774a0e408869196010f482c7ad230">dmlc::Row::get_field</a></div><div class="ttdeci">IndexType get_field(size_t i) const</div><div class="ttdef"><b>Definition:</b> data.h:101</div></div>
<div class="ttc" id="a3rdparty_2dmlc-core_2include_2dmlc_2base_8h_html_a80bde16113dc79e7adb7953e006d6b60"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html#a80bde16113dc79e7adb7953e006d6b60">DMLC_THROW_EXCEPTION</a></div><div class="ttdeci">#define DMLC_THROW_EXCEPTION</div><div class="ttdef"><b>Definition:</b> base.h:233</div></div>
<div class="ttc" id="aclassdmlc_1_1RowBlockIter_html"><div class="ttname"><a href="classdmlc_1_1RowBlockIter.html">dmlc::RowBlockIter</a></div><div class="ttdoc">Data structure that holds the data Row block iterator interface that gets RowBlocks Difference betwee...</div><div class="ttdef"><b>Definition:</b> data.h:254</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_a7d3297d9d1e0345fd5cbcc79523c767b"><div class="ttname"><a href="classdmlc_1_1Row.html#a7d3297d9d1e0345fd5cbcc79523c767b">dmlc::Row::weight</a></div><div class="ttdeci">const real_t * weight</div><div class="ttdoc">weight of the instance</div><div class="ttdef"><b>Definition:</b> data.h:79</div></div>
<div class="ttc" id="aclassdmlc_1_1Row_html_ac81aee60c2e4c72303daad9d8932defd"><div class="ttname"><a href="classdmlc_1_1Row.html#ac81aee60c2e4c72303daad9d8932defd">dmlc::Row::value</a></div><div class="ttdeci">const DType * value</div><div class="ttdoc">array value of each instance, this can be NULL indicating every value is set to be 1</div><div class="ttdef"><b>Definition:</b> data.h:96</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 03:47:39 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>