<divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> * This source code is licensed under the CC-by-NC license found in the</span></div>
<divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> * LICENSE file in the root directory of this source tree.</span></div>
<divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment">// Copyright 2004-present Facebook. All Rights Reserved.</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment">// -*- c++ -*-</span></div>
<divclass="line"><aname="l00029"></a><spanclass="lineno"><aclass="line"href="structfaiss_1_1AutoTuneCriterion.html#adcfaafb3f1b3449e2cfd553f0f603a5b"> 29</a></span>  idx_t <aclass="code"href="structfaiss_1_1AutoTuneCriterion.html#adcfaafb3f1b3449e2cfd553f0f603a5b">nq</a>; <spanclass="comment">///< nb of queries this criterion is evaluated on</span></div>
<divclass="line"><aname="l00030"></a><spanclass="lineno"><aclass="line"href="structfaiss_1_1AutoTuneCriterion.html#a3bb11e873707a812999f8391869aafab"> 30</a></span> <spanclass="comment"></span> idx_t <aclass="code"href="structfaiss_1_1AutoTuneCriterion.html#a3bb11e873707a812999f8391869aafab">nnn</a>; <spanclass="comment">///< nb of NNs that the query should request</span></div>
<divclass="line"><aname="l00031"></a><spanclass="lineno"><aclass="line"href="structfaiss_1_1AutoTuneCriterion.html#a9b3a2242729a0873d255c1684881bbd4"> 31</a></span> <spanclass="comment"></span> idx_t <aclass="code"href="structfaiss_1_1AutoTuneCriterion.html#a9b3a2242729a0873d255c1684881bbd4">gt_nnn</a>; <spanclass="comment">///< nb of GT NNs required to evaluate crterion</span></div>
<divclass="line"><aname="l00038"></a><spanclass="lineno"> 38</span> <spanclass="comment"> /** Intitializes the gt_D and gt_I vectors. Must be called before evaluating</span></div>
<divclass="line"><aname="l00048"></a><spanclass="lineno"> 48</span> <spanclass="comment"> * @param D size nq * nnn</span></div>
<divclass="line"><aname="l00049"></a><spanclass="lineno"> 49</span> <spanclass="comment"> * @param I size nq * nnn</span></div>
<divclass="line"><aname="l00050"></a><spanclass="lineno"> 50</span> <spanclass="comment"> * @return the criterion, between 0 and 1. Larger is better.</span></div>
<divclass="line"><aname="l00082"></a><spanclass="lineno"> 82</span> <spanclass="comment"> * Maintains a list of experimental results. Each operating point is a</span></div>
<divclass="line"><aname="l00083"></a><spanclass="lineno"> 83</span> <spanclass="comment"> * (perf, t, key) triplet, where higher perf and lower t is</span></div>
<divclass="line"><aname="l00084"></a><spanclass="lineno"> 84</span> <spanclass="comment"> * better. The key field is an arbitrary identifier for the operating point</span></div>
<divclass="line"><aname="l00088"></a><spanclass="lineno"><aclass="line"href="structfaiss_1_1OperatingPoint.html#ad218d1641b6e32d043a215542485a457"> 88</a></span> <spanclass="keywordtype">double</span><aclass="code"href="structfaiss_1_1OperatingPoint.html#ad218d1641b6e32d043a215542485a457">perf</a>; <spanclass="comment">///< performance measure (output of a Criterion)</span></div>
<divclass="line"><aname="l00089"></a><spanclass="lineno"><aclass="line"href="structfaiss_1_1OperatingPoint.html#a886492ffe2b337539fadc798c8f4a6a8"> 89</a></span> <spanclass="comment"></span><spanclass="keywordtype">double</span><aclass="code"href="structfaiss_1_1OperatingPoint.html#a886492ffe2b337539fadc798c8f4a6a8">t</a>; <spanclass="comment">///< corresponding execution time (ms)</span></div>
<divclass="line"><aname="l00090"></a><spanclass="lineno"><aclass="line"href="structfaiss_1_1OperatingPoint.html#aa13782d6d26168531764cb64da941ced"> 90</a></span> <spanclass="comment"></span> std::string <aclass="code"href="structfaiss_1_1OperatingPoint.html#aa13782d6d26168531764cb64da941ced">key</a>; <spanclass="comment">///< key that identifies this op pt</span></div>
<divclass="line"><aname="l00101"></a><spanclass="lineno"> 101</span> <spanclass="comment">// begins with a single operating point: t=0, perf=0</span></div>
<divclass="line"><aname="l00104"></a><spanclass="lineno"> 104</span> <spanclass="comment"> /// add operating points from other to this, with a prefix to the keys</span></div>
<divclass="line"><aname="l00110"></a><spanclass="lineno"> 110</span> <spanclass="comment"> /// add a performance measure. Return whether it is an optimal point</span></div>
<divclass="line"><aname="l00113"></a><spanclass="lineno"> 113</span> <spanclass="comment"> /// get time required to obtain a given performance measure</span></div>
<divclass="line"><aname="l00119"></a><spanclass="lineno"> 119</span> <spanclass="comment"> /// output to a format easy to digest by gnuplot</span></div>
<divclass="line"><aname="l00125"></a><spanclass="lineno"> 125</span> <spanclass="comment">/// possible values of a parameter, sorted from least to most expensive/accurate</span></div>
<divclass="line"><aname="l00131"></a><spanclass="lineno"> 131</span> <spanclass="comment">/** Uses a-priori knowledge on the Faiss indexes to extract tunable parameters.</span></div>
<divclass="line"><aname="l00142"></a><spanclass="lineno"> 142</span> <spanclass="comment"> /// nb of experiments during optimization (0 = try all combinations)</span></div>
<divclass="line"><aname="l00145"></a><spanclass="lineno"> 145</span> <spanclass="comment"> /// maximum number of queries to submit at a time.</span></div>
<divclass="line"><aname="l00148"></a><spanclass="lineno"> 148</span> <spanclass="comment"> /// use multithreading over batches (useful to benchmark</span></div>
<divclass="line"><aname="l00154"></a><spanclass="lineno"> 154</span> <spanclass="comment"> /// nb of combinations, = product of values sizes</span></div>
<divclass="line"><aname="l00160"></a><spanclass="lineno"> 160</span> <spanclass="comment"> /// get string representation of the combination</span></div>
<divclass="line"><aname="l00169"></a><spanclass="lineno"> 169</span> <spanclass="comment"> /// initialize with reasonable parameters for the index</span></div>
<divclass="line"><aname="l00172"></a><spanclass="lineno"> 172</span> <spanclass="comment"> /// set a combination of parameters on an index</span></div>
<divclass="line"><aname="l00175"></a><spanclass="lineno"> 175</span> <spanclass="comment"> /// set a combination of parameters described by a string</span></div>
<divclass="line"><aname="l00182"></a><spanclass="lineno"> 182</span> <spanclass="comment"> /** find an upper bound on the performance and a lower bound on t</span></div>
<divclass="line"><aname="l00183"></a><spanclass="lineno"> 183</span> <spanclass="comment"> * for configuration cno given another operating point op */</span></div>
<divclass="line"><aname="l00202"></a><spanclass="lineno"> 202</span> <spanclass="comment">/** Build and index with the sequence of processing steps described in</span></div>
<divclass="line"><aname="l00203"></a><spanclass="lineno"> 203</span> <spanclass="comment"> * the string. */</span></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoint_html_aa13782d6d26168531764cb64da941ced"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoint.html#aa13782d6d26168531764cb64da941ced">faiss::OperatingPoint::key</a></div><divclass="ttdeci">std::string key</div><divclass="ttdoc">key that identifies this op pt </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00090">AutoTune.h:90</a></div></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoint_html_ad218d1641b6e32d043a215542485a457"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoint.html#ad218d1641b6e32d043a215542485a457">faiss::OperatingPoint::perf</a></div><divclass="ttdeci">double perf</div><divclass="ttdoc">performance measure (output of a Criterion) </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00088">AutoTune.h:88</a></div></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoints_html_a3a0723e0900f7048ac9567341de5ee56"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoints.html#a3a0723e0900f7048ac9567341de5ee56">faiss::OperatingPoints::t_for_perf</a></div><divclass="ttdeci">double t_for_perf(double perf) const </div><divclass="ttdoc">get time required to obtain a given performance measure </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00173">AutoTune.cpp:173</a></div></div>
<divclass="ttc"id="structfaiss_1_1AutoTuneCriterion_html_a3bb11e873707a812999f8391869aafab"><divclass="ttname"><ahref="structfaiss_1_1AutoTuneCriterion.html#a3bb11e873707a812999f8391869aafab">faiss::AutoTuneCriterion::nnn</a></div><divclass="ttdeci">idx_t nnn</div><divclass="ttdoc">nb of NNs that the query should request </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00030">AutoTune.h:30</a></div></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoints_html_a7afabe0576800255eeec680486cb30df"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoints.html#a7afabe0576800255eeec680486cb30df">faiss::OperatingPoints::add</a></div><divclass="ttdeci">bool add(double perf, double t, const std::string &key, size_t cno=0)</div><divclass="ttdoc">add a performance measure. Return whether it is an optimal point </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00111">AutoTune.cpp:111</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_aee8fd44e15656ba80fe98de4c65ed767"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#aee8fd44e15656ba80fe98de4c65ed767">faiss::ParameterSpace::batchsize</a></div><divclass="ttdeci">size_t batchsize</div><divclass="ttdoc">maximum number of queries to submit at a time. </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00146">AutoTune.h:146</a></div></div>
<divclass="ttc"id="structfaiss_1_1AutoTuneCriterion_html_adcfaafb3f1b3449e2cfd553f0f603a5b"><divclass="ttname"><ahref="structfaiss_1_1AutoTuneCriterion.html#adcfaafb3f1b3449e2cfd553f0f603a5b">faiss::AutoTuneCriterion::nq</a></div><divclass="ttdeci">idx_t nq</div><divclass="ttdoc">nb of queries this criterion is evaluated on </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00029">AutoTune.h:29</a></div></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoints_html_a2829e78e01cc42c3a341622947663b31"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoints.html#a2829e78e01cc42c3a341622947663b31">faiss::OperatingPoints::optimal_pts</a></div><divclass="ttdeci">std::vector< OperatingPoint > optimal_pts</div><divclass="ttdoc">optimal operating points, sorted by perf </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00099">AutoTune.h:99</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_aeaa27a715fe3fceef5da18d894976833"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#aeaa27a715fe3fceef5da18d894976833">faiss::ParameterSpace::add_range</a></div><divclass="ttdeci">ParameterRange & add_range(const char *name)</div><divclass="ttdoc">add a new parameter </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00321">AutoTune.cpp:321</a></div></div>
<divclass="ttc"id="structfaiss_1_1AutoTuneCriterion_html_a9b3a2242729a0873d255c1684881bbd4"><divclass="ttname"><ahref="structfaiss_1_1AutoTuneCriterion.html#a9b3a2242729a0873d255c1684881bbd4">faiss::AutoTuneCriterion::gt_nnn</a></div><divclass="ttdeci">idx_t gt_nnn</div><divclass="ttdoc">nb of GT NNs required to evaluate crterion </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00031">AutoTune.h:31</a></div></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoints_html_a84e6a4d2f595982b9d900c8585424f9b"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoints.html#a84e6a4d2f595982b9d900c8585424f9b">faiss::OperatingPoints::all_to_gnuplot</a></div><divclass="ttdeci">void all_to_gnuplot(const char *fname) const </div><divclass="ttdoc">output to a format easy to digest by gnuplot </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00187">AutoTune.cpp:187</a></div></div>
<divclass="ttc"id="structfaiss_1_1Index_html_a040c6aed1f224f3ea7bf58eebc0c31a4"><divclass="ttname"><ahref="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a></div><divclass="ttdeci">long idx_t</div><divclass="ttdoc">all indices are this type </div><divclass="ttdef"><b>Definition:</b><ahref="Index_8h_source.html#l00064">Index.h:64</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_a9304975f379738eda384385eace8ad76"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#a9304975f379738eda384385eace8ad76">faiss::ParameterSpace::initialize</a></div><divclass="ttdeci">virtual void initialize(const Index *index)</div><divclass="ttdoc">initialize with reasonable parameters for the index </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00330">AutoTune.cpp:330</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_a7a9f2292c4e0ac3aad569434edea87b0"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#a7a9f2292c4e0ac3aad569434edea87b0">faiss::ParameterSpace::verbose</a></div><divclass="ttdeci">int verbose</div><divclass="ttdoc">verbosity during exploration </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00140">AutoTune.h:140</a></div></div>
<divclass="ttc"id="structfaiss_1_1OperatingPoints_html_a84baddccd8b803dee460739f8bcbc0c9"><divclass="ttname"><ahref="structfaiss_1_1OperatingPoints.html#a84baddccd8b803dee460739f8bcbc0c9">faiss::OperatingPoints::merge_with</a></div><divclass="ttdeci">int merge_with(const OperatingPoints &other, const std::string &prefix="")</div><divclass="ttdoc">add operating points from other to this, with a prefix to the keys </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00158">AutoTune.cpp:158</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_ac630c153ffd12f9994452c92fe57dc17"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#ac630c153ffd12f9994452c92fe57dc17">faiss::ParameterSpace::set_index_parameter</a></div><divclass="ttdeci">virtual void set_index_parameter(Index *index, const std::string &name, double val) const </div><divclass="ttdoc">set one of the parameters </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00419">AutoTune.cpp:419</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_a488329e3c1f08b9980d8e0f9c1491c75"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#a488329e3c1f08b9980d8e0f9c1491c75">faiss::ParameterSpace::n_combinations</a></div><divclass="ttdeci">size_t n_combinations() const </div><divclass="ttdoc">nb of combinations, = product of values sizes </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00267">AutoTune.cpp:267</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_a55783994cee46e9181bad2b3a7a973f4"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#a55783994cee46e9181bad2b3a7a973f4">faiss::ParameterSpace::set_index_parameters</a></div><divclass="ttdeci">void set_index_parameters(Index *index, size_t cno) const </div><divclass="ttdoc">set a combination of parameters on an index </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00388">AutoTune.cpp:388</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_aa4bb1f0008689903aa936baee61d09d0"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#aa4bb1f0008689903aa936baee61d09d0">faiss::ParameterSpace::display</a></div><divclass="ttdeci">void display() const </div><divclass="ttdoc">print a description on stdout </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00480">AutoTune.cpp:480</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_a7cdedaf4bab33293771c4267d453a950"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#a7cdedaf4bab33293771c4267d453a950">faiss::ParameterSpace::combination_ge</a></div><divclass="ttdeci">bool combination_ge(size_t c1, size_t c2) const </div><divclass="ttdoc">returns whether combinations c1 &gt;= c2 in the tuple sense </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8cpp_source.html#l00291">AutoTune.cpp:291</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterRange_html"><divclass="ttname"><ahref="structfaiss_1_1ParameterRange.html">faiss::ParameterRange</a></div><divclass="ttdoc">possible values of a parameter, sorted from least to most expensive/accurate </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00126">AutoTune.h:126</a></div></div>
<divclass="ttc"id="structfaiss_1_1ParameterSpace_html_a76aeae25b3269fb24a26194fbe013b86"><divclass="ttname"><ahref="structfaiss_1_1ParameterSpace.html#a76aeae25b3269fb24a26194fbe013b86">faiss::ParameterSpace::n_experiments</a></div><divclass="ttdeci">int n_experiments</div><divclass="ttdoc">nb of experiments during optimization (0 = try all combinations) </div><divclass="ttdef"><b>Definition:</b><ahref="AutoTune_8h_source.html#l00143">AutoTune.h:143</a></div></div>
<divclass="ttc"id="namespacefaiss_html_afd12191c638da74760ff397cf319752c"><divclass="ttname"><ahref="namespacefaiss.html#afd12191c638da74760ff397cf319752c">faiss::MetricType</a></div><divclass="ttdeci">MetricType</div><divclass="ttdoc">Some algorithms support both an inner product vetsion and a L2 search version. </div><divclass="ttdef"><b>Definition:</b><ahref="Index_8h_source.html#l00044">Index.h:44</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hrclass="footer"/><addressclass="footer"><small>
Generated by  <ahref="http://www.doxygen.org/index.html">