Documentation for 5dc34677ed

This commit is contained in:
github-actions
2023-06-20 21:56:04 +00:00
parent 05a7efec3a
commit 08ebd7e110
4 changed files with 177 additions and 177 deletions

View File

@@ -221,19 +221,19 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 218</span> {</div>
<div class="line"><span class="lineno"> 219</span> <a class="code hl_struct" href="../../dd/d5a/structstrings_1_1boyer__moore_1_1pattern.html">strings::boyer_moore::pattern</a> ands;</div>
<div class="line"><span class="lineno"> 220</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a0b165af1dc341289fd705be4c67728f8">strings::boyer_moore::init_pattern</a>(<span class="stringliteral">&quot;and&quot;</span>, ands);</div>
<div class="line"><span class="lineno"> 221</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> indexes = <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a15703b553faed0d28202c10808cf9738">strings::boyer_moore::search</a>(text, ands);</div>
<div class="line"><span class="lineno"> 222</span> </div>
<div class="line"><span class="lineno"> 223</span> assert(indexes.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() == 2);</div>
<div class="line"><span class="lineno"> 224</span> assert(strings::boyer_moore::is_prefix(text + indexes[0], <span class="stringliteral">&quot;and&quot;</span>, 3));</div>
<div class="line"><span class="lineno"> 225</span> assert(strings::boyer_moore::is_prefix(text + indexes[1], <span class="stringliteral">&quot;and&quot;</span>, 3));</div>
<div class="line"><span class="lineno"> 226</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a0b165af1dc341289fd705be4c67728f8"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a0b165af1dc341289fd705be4c67728f8">strings::boyer_moore::init_pattern</a></div><div class="ttdeci">void init_pattern(const std::string &amp;str, pattern &amp;arg)</div><div class="ttdoc">A function that initializes pattern.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:151</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_a15703b553faed0d28202c10808cf9738"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a15703b553faed0d28202c10808cf9738">strings::boyer_moore::search</a></div><div class="ttdeci">std::vector&lt; size_t &gt; search(const std::string &amp;str, const pattern &amp;arg)</div><div class="ttdoc">A function that implements Boyer-Moore's algorithm.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:163</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 220</span> {</div>
<div class="line"><span class="lineno"> 221</span> <a class="code hl_struct" href="../../dd/d5a/structstrings_1_1boyer__moore_1_1pattern.html">strings::boyer_moore::pattern</a> ands;</div>
<div class="line"><span class="lineno"> 222</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a0b165af1dc341289fd705be4c67728f8">strings::boyer_moore::init_pattern</a>(<span class="stringliteral">&quot;and&quot;</span>, ands);</div>
<div class="line"><span class="lineno"> 223</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> indexes = <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a15703b553faed0d28202c10808cf9738">strings::boyer_moore::search</a>(text, ands);</div>
<div class="line"><span class="lineno"> 224</span> </div>
<div class="line"><span class="lineno"> 225</span> assert(indexes.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() == 2);</div>
<div class="line"><span class="lineno"> 226</span> assert(strings::boyer_moore::is_prefix(text + indexes[0], <span class="stringliteral">&quot;and&quot;</span>, 3));</div>
<div class="line"><span class="lineno"> 227</span> assert(strings::boyer_moore::is_prefix(text + indexes[1], <span class="stringliteral">&quot;and&quot;</span>, 3));</div>
<div class="line"><span class="lineno"> 228</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a0b165af1dc341289fd705be4c67728f8"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a0b165af1dc341289fd705be4c67728f8">strings::boyer_moore::init_pattern</a></div><div class="ttdeci">void init_pattern(const std::string &amp;str, pattern &amp;arg)</div><div class="ttdoc">A function that initializes pattern.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:153</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_a15703b553faed0d28202c10808cf9738"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a15703b553faed0d28202c10808cf9738">strings::boyer_moore::search</a></div><div class="ttdeci">std::vector&lt; size_t &gt; search(const std::string &amp;str, const pattern &amp;arg)</div><div class="ttdoc">A function that implements Boyer-Moore's algorithm.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:165</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="astructstrings_1_1boyer__moore_1_1pattern_html"><div class="ttname"><a href="../../dd/d5a/structstrings_1_1boyer__moore_1_1pattern.html">strings::boyer_moore::pattern</a></div><div class="ttdoc">A structure representing all the data we need to search the preprocessed pattern in text.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:68</div></div>
<div class="ttc" id="astructstrings_1_1boyer__moore_1_1pattern_html"><div class="ttname"><a href="../../dd/d5a/structstrings_1_1boyer__moore_1_1pattern.html">strings::boyer_moore::pattern</a></div><div class="ttdoc">A structure representing all the data we need to search the preprocessed pattern in text.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:70</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -278,14 +278,14 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 136</span> {</div>
<div class="line"><span class="lineno"> 137</span> arg.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(<a class="code hl_define" href="../../d3/db2/boyer__moore_8cpp.html#a77c872c08612d7b8861ba13bc9881cbd">APLHABET_SIZE</a>, str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>());</div>
<div class="line"><span class="lineno"> 138</span> </div>
<div class="line"><span class="lineno"> 139</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++) {</div>
<div class="line"><span class="lineno"> 140</span> arg[str[i]] = str.length() - i - 1;</div>
<div class="line"><span class="lineno"> 141</span> }</div>
<div class="line"><span class="lineno"> 142</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a77c872c08612d7b8861ba13bc9881cbd"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a77c872c08612d7b8861ba13bc9881cbd">APLHABET_SIZE</a></div><div class="ttdeci">#define APLHABET_SIZE</div><div class="ttdoc">number of symbols in the alphabet we use</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:50</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 138</span> {</div>
<div class="line"><span class="lineno"> 139</span> arg.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(<a class="code hl_define" href="../../d3/db2/boyer__moore_8cpp.html#a77c872c08612d7b8861ba13bc9881cbd">APLHABET_SIZE</a>, str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>());</div>
<div class="line"><span class="lineno"> 140</span> </div>
<div class="line"><span class="lineno"> 141</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++) {</div>
<div class="line"><span class="lineno"> 142</span> arg[str[i]] = str.length() - i - 1;</div>
<div class="line"><span class="lineno"> 143</span> }</div>
<div class="line"><span class="lineno"> 144</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a77c872c08612d7b8861ba13bc9881cbd"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a77c872c08612d7b8861ba13bc9881cbd">APLHABET_SIZE</a></div><div class="ttdeci">#define APLHABET_SIZE</div><div class="ttdoc">number of symbols in the alphabet we use</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:52</div></div>
<div class="ttc" id="aresize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/resize.html">std::vector::resize</a></div><div class="ttdeci">T resize(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -330,47 +330,47 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 87</span> {</div>
<div class="line"><span class="lineno"> 88</span> arg.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, 0);</div>
<div class="line"><span class="lineno"> 89</span> </div>
<div class="line"><span class="lineno"> 90</span> <span class="comment">// border_pos[i] - the index of the longest proper suffix of str[i..] which</span></div>
<div class="line"><span class="lineno"> 91</span> <span class="comment">// is also a proper prefix.</span></div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> border_pos(str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, 0);</div>
<div class="line"><span class="lineno"> 93</span> </div>
<div class="line"><span class="lineno"> 94</span> <span class="keywordtype">size_t</span> current_char = str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>();</div>
<div class="fragment"><div class="line"><span class="lineno"> 89</span> {</div>
<div class="line"><span class="lineno"> 90</span> arg.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, 0);</div>
<div class="line"><span class="lineno"> 91</span> </div>
<div class="line"><span class="lineno"> 92</span> <span class="comment">// border_pos[i] - the index of the longest proper suffix of str[i..] which</span></div>
<div class="line"><span class="lineno"> 93</span> <span class="comment">// is also a proper prefix.</span></div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> border_pos(str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() + 1, 0);</div>
<div class="line"><span class="lineno"> 95</span> </div>
<div class="line"><span class="lineno"> 96</span> <span class="keywordtype">size_t</span> border_index = str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() + 1;</div>
<div class="line"><span class="lineno"> 96</span> <span class="keywordtype">size_t</span> current_char = str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>();</div>
<div class="line"><span class="lineno"> 97</span> </div>
<div class="line"><span class="lineno"> 98</span> border_pos[current_char] = border_index;</div>
<div class="line"><span class="lineno"> 98</span> <span class="keywordtype">size_t</span> border_index = str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() + 1;</div>
<div class="line"><span class="lineno"> 99</span> </div>
<div class="line"><span class="lineno"> 100</span> <span class="keywordflow">while</span> (current_char &gt; 0) {</div>
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">while</span> (border_index &lt;= str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() &amp;&amp;</div>
<div class="line"><span class="lineno"> 102</span> str[current_char - 1] != str[border_index - 1]) {</div>
<div class="line"><span class="lineno"> 103</span> <span class="keywordflow">if</span> (arg[border_index] == 0) {</div>
<div class="line"><span class="lineno"> 104</span> arg[border_index] = border_index - current_char;</div>
<div class="line"><span class="lineno"> 105</span> }</div>
<div class="line"><span class="lineno"> 106</span> </div>
<div class="line"><span class="lineno"> 107</span> border_index = border_pos[border_index];</div>
<div class="line"><span class="lineno"> 108</span> }</div>
<div class="line"><span class="lineno"> 109</span> </div>
<div class="line"><span class="lineno"> 110</span> current_char--;</div>
<div class="line"><span class="lineno"> 111</span> border_index--;</div>
<div class="line"><span class="lineno"> 112</span> border_pos[current_char] = border_index;</div>
<div class="line"><span class="lineno"> 113</span> }</div>
<div class="line"><span class="lineno"> 114</span> </div>
<div class="line"><span class="lineno"> 115</span> <span class="keywordtype">size_t</span> largest_border_index = border_pos[0];</div>
<div class="line"><span class="lineno"> 100</span> border_pos[current_char] = border_index;</div>
<div class="line"><span class="lineno"> 101</span> </div>
<div class="line"><span class="lineno"> 102</span> <span class="keywordflow">while</span> (current_char &gt; 0) {</div>
<div class="line"><span class="lineno"> 103</span> <span class="keywordflow">while</span> (border_index &lt;= str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() &amp;&amp;</div>
<div class="line"><span class="lineno"> 104</span> str[current_char - 1] != str[border_index - 1]) {</div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">if</span> (arg[border_index] == 0) {</div>
<div class="line"><span class="lineno"> 106</span> arg[border_index] = border_index - current_char;</div>
<div class="line"><span class="lineno"> 107</span> }</div>
<div class="line"><span class="lineno"> 108</span> </div>
<div class="line"><span class="lineno"> 109</span> border_index = border_pos[border_index];</div>
<div class="line"><span class="lineno"> 110</span> }</div>
<div class="line"><span class="lineno"> 111</span> </div>
<div class="line"><span class="lineno"> 112</span> current_char--;</div>
<div class="line"><span class="lineno"> 113</span> border_index--;</div>
<div class="line"><span class="lineno"> 114</span> border_pos[current_char] = border_index;</div>
<div class="line"><span class="lineno"> 115</span> }</div>
<div class="line"><span class="lineno"> 116</span> </div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); i++) {</div>
<div class="line"><span class="lineno"> 118</span> <span class="keywordflow">if</span> (arg[i] == 0) {</div>
<div class="line"><span class="lineno"> 119</span> arg[i] = largest_border_index;</div>
<div class="line"><span class="lineno"> 120</span> }</div>
<div class="line"><span class="lineno"> 121</span> </div>
<div class="line"><span class="lineno"> 122</span> <span class="comment">// If we go pass the largest border we find the next one as we iterate</span></div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">if</span> (i == largest_border_index) {</div>
<div class="line"><span class="lineno"> 124</span> largest_border_index = border_pos[largest_border_index];</div>
<div class="line"><span class="lineno"> 125</span> }</div>
<div class="line"><span class="lineno"> 126</span> }</div>
<div class="line"><span class="lineno"> 127</span>}</div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordtype">size_t</span> largest_border_index = border_pos[0];</div>
<div class="line"><span class="lineno"> 118</span> </div>
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); i++) {</div>
<div class="line"><span class="lineno"> 120</span> <span class="keywordflow">if</span> (arg[i] == 0) {</div>
<div class="line"><span class="lineno"> 121</span> arg[i] = largest_border_index;</div>
<div class="line"><span class="lineno"> 122</span> }</div>
<div class="line"><span class="lineno"> 123</span> </div>
<div class="line"><span class="lineno"> 124</span> <span class="comment">// If we go pass the largest border we find the next one as we iterate</span></div>
<div class="line"><span class="lineno"> 125</span> <span class="keywordflow">if</span> (i == largest_border_index) {</div>
<div class="line"><span class="lineno"> 126</span> largest_border_index = border_pos[largest_border_index];</div>
<div class="line"><span class="lineno"> 127</span> }</div>
<div class="line"><span class="lineno"> 128</span> }</div>
<div class="line"><span class="lineno"> 129</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -414,13 +414,13 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 151</span> {</div>
<div class="line"><span class="lineno"> 152</span> arg.pat = str;</div>
<div class="line"><span class="lineno"> 153</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a2f6688c9bb3e692297a3aa09cebc1c00">init_bad_char</a>(str, arg.bad_char);</div>
<div class="line"><span class="lineno"> 154</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#aa709cf7fca02b7d3e1888423d5f739a1">init_good_suffix</a>(str, arg.good_suffix);</div>
<div class="line"><span class="lineno"> 155</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a2f6688c9bb3e692297a3aa09cebc1c00"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a2f6688c9bb3e692297a3aa09cebc1c00">strings::boyer_moore::init_bad_char</a></div><div class="ttdeci">void init_bad_char(const std::string &amp;str, std::vector&lt; size_t &gt; &amp;arg)</div><div class="ttdoc">A function that preprocess the bad char table.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:136</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_aa709cf7fca02b7d3e1888423d5f739a1"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#aa709cf7fca02b7d3e1888423d5f739a1">strings::boyer_moore::init_good_suffix</a></div><div class="ttdeci">void init_good_suffix(const std::string &amp;str, std::vector&lt; size_t &gt; &amp;arg)</div><div class="ttdoc">A function that preprocess the good suffix thable.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:87</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 153</span> {</div>
<div class="line"><span class="lineno"> 154</span> arg.pat = str;</div>
<div class="line"><span class="lineno"> 155</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a2f6688c9bb3e692297a3aa09cebc1c00">init_bad_char</a>(str, arg.bad_char);</div>
<div class="line"><span class="lineno"> 156</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#aa709cf7fca02b7d3e1888423d5f739a1">init_good_suffix</a>(str, arg.good_suffix);</div>
<div class="line"><span class="lineno"> 157</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a2f6688c9bb3e692297a3aa09cebc1c00"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a2f6688c9bb3e692297a3aa09cebc1c00">strings::boyer_moore::init_bad_char</a></div><div class="ttdeci">void init_bad_char(const std::string &amp;str, std::vector&lt; size_t &gt; &amp;arg)</div><div class="ttdoc">A function that preprocess the bad char table.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:138</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_aa709cf7fca02b7d3e1888423d5f739a1"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#aa709cf7fca02b7d3e1888423d5f739a1">strings::boyer_moore::init_good_suffix</a></div><div class="ttdeci">void init_good_suffix(const std::string &amp;str, std::vector&lt; size_t &gt; &amp;arg)</div><div class="ttdoc">A function that preprocess the good suffix thable.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:89</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -473,19 +473,19 @@ Here is the call graph for this function:</div>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if pat IS prefix of str. </dd>
<dd>
<code>false</code> if pat is NOT a prefix of str. </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 198</span> {</div>
<div class="line"><span class="lineno"> 199</span> <span class="keywordflow">if</span> (<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/byte/strlen.html">strlen</a>(str) &lt; len) {</div>
<div class="line"><span class="lineno"> 200</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 201</span> }</div>
<div class="line"><span class="lineno"> 202</span> </div>
<div class="line"><span class="lineno"> 203</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; len; i++) {</div>
<div class="line"><span class="lineno"> 204</span> <span class="keywordflow">if</span> (str[i] != pat[i]) {</div>
<div class="line"><span class="lineno"> 205</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 206</span> }</div>
<div class="line"><span class="lineno"> 207</span> }</div>
<div class="line"><span class="lineno"> 208</span> </div>
<div class="line"><span class="lineno"> 209</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 210</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 200</span> {</div>
<div class="line"><span class="lineno"> 201</span> <span class="keywordflow">if</span> (<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/byte/strlen.html">strlen</a>(str) &lt; len) {</div>
<div class="line"><span class="lineno"> 202</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 203</span> }</div>
<div class="line"><span class="lineno"> 204</span> </div>
<div class="line"><span class="lineno"> 205</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; len; i++) {</div>
<div class="line"><span class="lineno"> 206</span> <span class="keywordflow">if</span> (str[i] != pat[i]) {</div>
<div class="line"><span class="lineno"> 207</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 208</span> }</div>
<div class="line"><span class="lineno"> 209</span> }</div>
<div class="line"><span class="lineno"> 210</span> </div>
<div class="line"><span class="lineno"> 211</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 212</span>}</div>
<div class="ttc" id="astrlen_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/byte/strlen.html">std::strlen</a></div><div class="ttdeci">T strlen(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -513,11 +513,11 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 267</span> {</div>
<div class="line"><span class="lineno"> 268</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 269</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 270</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:248</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 269</span> {</div>
<div class="line"><span class="lineno"> 270</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 271</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 272</span>}</div>
<div class="ttc" id="aboyer__moore_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:250</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -550,17 +550,17 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 233</span> {</div>
<div class="line"><span class="lineno"> 234</span> <a class="code hl_struct" href="../../dd/d5a/structstrings_1_1boyer__moore_1_1pattern.html">strings::boyer_moore::pattern</a> pat;</div>
<div class="line"><span class="lineno"> 235</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a0b165af1dc341289fd705be4c67728f8">strings::boyer_moore::init_pattern</a>(<span class="stringliteral">&quot;pat&quot;</span>, pat);</div>
<div class="line"><span class="lineno"> 236</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> indexes = <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a15703b553faed0d28202c10808cf9738">strings::boyer_moore::search</a>(text, pat);</div>
<div class="line"><span class="lineno"> 237</span> </div>
<div class="line"><span class="lineno"> 238</span> assert(indexes.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() == 6);</div>
<div class="fragment"><div class="line"><span class="lineno"> 235</span> {</div>
<div class="line"><span class="lineno"> 236</span> <a class="code hl_struct" href="../../dd/d5a/structstrings_1_1boyer__moore_1_1pattern.html">strings::boyer_moore::pattern</a> pat;</div>
<div class="line"><span class="lineno"> 237</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a0b165af1dc341289fd705be4c67728f8">strings::boyer_moore::init_pattern</a>(<span class="stringliteral">&quot;pat&quot;</span>, pat);</div>
<div class="line"><span class="lineno"> 238</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> indexes = <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#a15703b553faed0d28202c10808cf9738">strings::boyer_moore::search</a>(text, pat);</div>
<div class="line"><span class="lineno"> 239</span> </div>
<div class="line"><span class="lineno"> 240</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; currentIndex : indexes) {</div>
<div class="line"><span class="lineno"> 241</span> assert(strings::boyer_moore::is_prefix(text + currentIndex, <span class="stringliteral">&quot;pat&quot;</span>, 3));</div>
<div class="line"><span class="lineno"> 242</span> }</div>
<div class="line"><span class="lineno"> 243</span>}</div>
<div class="line"><span class="lineno"> 240</span> assert(indexes.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() == 6);</div>
<div class="line"><span class="lineno"> 241</span> </div>
<div class="line"><span class="lineno"> 242</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; currentIndex : indexes) {</div>
<div class="line"><span class="lineno"> 243</span> assert(strings::boyer_moore::is_prefix(text + currentIndex, <span class="stringliteral">&quot;pat&quot;</span>, 3));</div>
<div class="line"><span class="lineno"> 244</span> }</div>
<div class="line"><span class="lineno"> 245</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -604,31 +604,31 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of indexes of the occurrences of pattern in text </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 163</span> {</div>
<div class="line"><span class="lineno"> 164</span> <span class="keywordtype">size_t</span> index_position = arg.pat.size() - 1;</div>
<div class="line"><span class="lineno"> 165</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> index_storage;</div>
<div class="line"><span class="lineno"> 166</span> </div>
<div class="line"><span class="lineno"> 167</span> <span class="keywordflow">while</span> (index_position &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>()) {</div>
<div class="line"><span class="lineno"> 168</span> <span class="keywordtype">size_t</span> index_string = index_position;</div>
<div class="line"><span class="lineno"> 169</span> <span class="keywordtype">int</span> index_pattern = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(arg.pat.size()) - 1;</div>
<div class="line"><span class="lineno"> 170</span> </div>
<div class="line"><span class="lineno"> 171</span> <span class="keywordflow">while</span> (index_pattern &gt;= 0 &amp;&amp;</div>
<div class="line"><span class="lineno"> 172</span> str[index_string] == arg.pat[index_pattern]) {</div>
<div class="line"><span class="lineno"> 173</span> --index_pattern;</div>
<div class="line"><span class="lineno"> 174</span> --index_string;</div>
<div class="line"><span class="lineno"> 175</span> }</div>
<div class="line"><span class="lineno"> 176</span> </div>
<div class="line"><span class="lineno"> 177</span> <span class="keywordflow">if</span> (index_pattern &lt; 0) {</div>
<div class="line"><span class="lineno"> 178</span> index_storage.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(index_position - arg.pat.length() + 1);</div>
<div class="line"><span class="lineno"> 179</span> index_position += arg.good_suffix[0];</div>
<div class="line"><span class="lineno"> 180</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 181</span> index_position += <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(arg.bad_char[str[index_string]],</div>
<div class="line"><span class="lineno"> 182</span> arg.good_suffix[index_pattern + 1]);</div>
<div class="line"><span class="lineno"> 183</span> }</div>
<div class="line"><span class="lineno"> 184</span> }</div>
<div class="line"><span class="lineno"> 185</span> </div>
<div class="line"><span class="lineno"> 186</span> <span class="keywordflow">return</span> index_storage;</div>
<div class="line"><span class="lineno"> 187</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 165</span> {</div>
<div class="line"><span class="lineno"> 166</span> <span class="keywordtype">size_t</span> index_position = arg.pat.size() - 1;</div>
<div class="line"><span class="lineno"> 167</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> index_storage;</div>
<div class="line"><span class="lineno"> 168</span> </div>
<div class="line"><span class="lineno"> 169</span> <span class="keywordflow">while</span> (index_position &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>()) {</div>
<div class="line"><span class="lineno"> 170</span> <span class="keywordtype">size_t</span> index_string = index_position;</div>
<div class="line"><span class="lineno"> 171</span> <span class="keywordtype">int</span> index_pattern = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(arg.pat.size()) - 1;</div>
<div class="line"><span class="lineno"> 172</span> </div>
<div class="line"><span class="lineno"> 173</span> <span class="keywordflow">while</span> (index_pattern &gt;= 0 &amp;&amp;</div>
<div class="line"><span class="lineno"> 174</span> str[index_string] == arg.pat[index_pattern]) {</div>
<div class="line"><span class="lineno"> 175</span> --index_pattern;</div>
<div class="line"><span class="lineno"> 176</span> --index_string;</div>
<div class="line"><span class="lineno"> 177</span> }</div>
<div class="line"><span class="lineno"> 178</span> </div>
<div class="line"><span class="lineno"> 179</span> <span class="keywordflow">if</span> (index_pattern &lt; 0) {</div>
<div class="line"><span class="lineno"> 180</span> index_storage.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(index_position - arg.pat.length() + 1);</div>
<div class="line"><span class="lineno"> 181</span> index_position += arg.good_suffix[0];</div>
<div class="line"><span class="lineno"> 182</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 183</span> index_position += <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(arg.bad_char[str[index_string]],</div>
<div class="line"><span class="lineno"> 184</span> arg.good_suffix[index_pattern + 1]);</div>
<div class="line"><span class="lineno"> 185</span> }</div>
<div class="line"><span class="lineno"> 186</span> }</div>
<div class="line"><span class="lineno"> 187</span> </div>
<div class="line"><span class="lineno"> 188</span> <span class="keywordflow">return</span> index_storage;</div>
<div class="line"><span class="lineno"> 189</span>}</div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -664,23 +664,23 @@ Here is the call graph for this function:</div>
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 248</span> {</div>
<div class="line"><span class="lineno"> 249</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* text =</div>
<div class="line"><span class="lineno"> 250</span> <span class="stringliteral">&quot;When pat Mr. and Mrs. pat Dursley woke up on the dull, gray \</span></div>
<div class="line"><span class="lineno"> 251</span><span class="stringliteral"> Tuesday our story starts, \</span></div>
<div class="line"><span class="lineno"> 252</span><span class="stringliteral"> there was nothing about pat the cloudy sky outside to pat suggest that\</span></div>
<div class="line"><span class="lineno"> 253</span><span class="stringliteral"> strange and \</span></div>
<div class="line"><span class="lineno"> 254</span><span class="stringliteral"> mysterious things would pat soon be happening all pat over the \</span></div>
<div class="line"><span class="lineno"> 255</span><span class="stringliteral"> country.&quot;</span>;</div>
<div class="line"><span class="lineno"> 256</span> </div>
<div class="line"><span class="lineno"> 257</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#acb8f69e7901ee7459d98bd4b9dda79d9">and_test</a>(text);</div>
<div class="line"><span class="lineno"> 258</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#ac8fac0dd4b19973da103a434143a16d2">pat_test</a>(text);</div>
<div class="line"><span class="lineno"> 259</span> </div>
<div class="line"><span class="lineno"> 260</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests have successfully passed!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 261</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 250</span> {</div>
<div class="line"><span class="lineno"> 251</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* text =</div>
<div class="line"><span class="lineno"> 252</span> <span class="stringliteral">&quot;When pat Mr. and Mrs. pat Dursley woke up on the dull, gray \</span></div>
<div class="line"><span class="lineno"> 253</span><span class="stringliteral"> Tuesday our story starts, \</span></div>
<div class="line"><span class="lineno"> 254</span><span class="stringliteral"> there was nothing about pat the cloudy sky outside to pat suggest that\</span></div>
<div class="line"><span class="lineno"> 255</span><span class="stringliteral"> strange and \</span></div>
<div class="line"><span class="lineno"> 256</span><span class="stringliteral"> mysterious things would pat soon be happening all pat over the \</span></div>
<div class="line"><span class="lineno"> 257</span><span class="stringliteral"> country.&quot;</span>;</div>
<div class="line"><span class="lineno"> 258</span> </div>
<div class="line"><span class="lineno"> 259</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#acb8f69e7901ee7459d98bd4b9dda79d9">and_test</a>(text);</div>
<div class="line"><span class="lineno"> 260</span> <a class="code hl_function" href="../../d3/db2/boyer__moore_8cpp.html#ac8fac0dd4b19973da103a434143a16d2">pat_test</a>(text);</div>
<div class="line"><span class="lineno"> 261</span> </div>
<div class="line"><span class="lineno"> 262</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests have successfully passed!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 263</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_ac8fac0dd4b19973da103a434143a16d2"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#ac8fac0dd4b19973da103a434143a16d2">pat_test</a></div><div class="ttdeci">void pat_test(const char *text)</div><div class="ttdoc">A test case in which we search for every appearance of the word 'pat'.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:233</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_acb8f69e7901ee7459d98bd4b9dda79d9"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#acb8f69e7901ee7459d98bd4b9dda79d9">and_test</a></div><div class="ttdeci">void and_test(const char *text)</div><div class="ttdoc">A test case in which we search for every appearance of the word 'and'.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:218</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_ac8fac0dd4b19973da103a434143a16d2"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#ac8fac0dd4b19973da103a434143a16d2">pat_test</a></div><div class="ttdeci">void pat_test(const char *text)</div><div class="ttdoc">A test case in which we search for every appearance of the word 'pat'.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:235</div></div>
<div class="ttc" id="aboyer__moore_8cpp_html_acb8f69e7901ee7459d98bd4b9dda79d9"><div class="ttname"><a href="../../d3/db2/boyer__moore_8cpp.html#acb8f69e7901ee7459d98bd4b9dda79d9">and_test</a></div><div class="ttdeci">void and_test(const char *text)</div><div class="ttdoc">A test case in which we search for every appearance of the word 'and'.</div><div class="ttdef"><b>Definition</b> boyer_moore.cpp:220</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -157,7 +157,7 @@ Space Complexity : \(O(N)\)</p>
<div class="line"><span class="lineno"> 71</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 72</span>}</div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition</b> sparse_table.cpp:47</div></div>
<div class="ttc" id="anamespacemath_html_abd8f794b2229b42876169ff841b6e444"><div class="ttname"><a href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a></div><div class="ttdeci">bool is_prime(int64_t num)</div><div class="ttdoc">Function to check if the given number is prime or not.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:30</div></div>
<div class="ttc" id="anamespacemath_html_abd8f794b2229b42876169ff841b6e444"><div class="ttname"><a href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a></div><div class="ttdeci">bool is_prime(int64_t num)</div><div class="ttdoc">Function to check if the given number is prime or not.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:31</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a7eebd5e7686a8db363f937b2f30d3818"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#a7eebd5e7686a8db363f937b2f30d3818">sieve</a></div><div class="ttdeci">std::vector&lt; bool &gt; sieve(uint32_t N)</div><div class="ttdef"><b>Definition</b> sieve_of_eratosthenes.cpp:26</div></div>
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../d8/ddf/sieve__of__eratosthenes_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition</b> sieve_of_eratosthenes.cpp:56</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>

View File

@@ -156,11 +156,11 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 80</span> {</div>
<div class="line"><span class="lineno"> 81</span> <a class="code hl_function" href="../../db/d93/check__prime_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// perform self-tests implementations</span></div>
<div class="line"><span class="lineno"> 82</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 83</span>}</div>
<div class="ttc" id="acheck__prime_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../db/d93/check__prime_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:61</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 81</span> {</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_function" href="../../db/d93/check__prime_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// perform self-tests implementations</span></div>
<div class="line"><span class="lineno"> 83</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 84</span>}</div>
<div class="ttc" id="acheck__prime_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../db/d93/check__prime_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:62</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -194,23 +194,23 @@ Here is the call graph for this function:</div>
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 61</span> {</div>
<div class="line"><span class="lineno"> 62</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(1) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 63</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(2) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 64</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(3) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 65</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(4) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 66</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(-4) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 67</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(7) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 68</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(-7) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 69</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(19) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 70</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(50) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 71</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(115249) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 72</span> </div>
<div class="line"><span class="lineno"> 73</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests have successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 74</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 62</span> {</div>
<div class="line"><span class="lineno"> 63</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(1) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 64</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(2) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 65</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(3) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 66</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(4) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 67</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(-4) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 68</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(7) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 69</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(-7) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 70</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(19) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 71</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(50) == <span class="keyword">false</span>);</div>
<div class="line"><span class="lineno"> 72</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a>(115249) == <span class="keyword">true</span>);</div>
<div class="line"><span class="lineno"> 73</span> </div>
<div class="line"><span class="lineno"> 74</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All tests have successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 75</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="anamespacemath_html_abd8f794b2229b42876169ff841b6e444"><div class="ttname"><a href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a></div><div class="ttdeci">bool is_prime(int64_t num)</div><div class="ttdoc">Function to check if the given number is prime or not.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:30</div></div>
<div class="ttc" id="anamespacemath_html_abd8f794b2229b42876169ff841b6e444"><div class="ttname"><a href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a></div><div class="ttdeci">bool is_prime(int64_t num)</div><div class="ttdoc">Function to check if the given number is prime or not.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:31</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -929,31 +929,31 @@ false if number is not a factorial </dd></dl>
<dd>
false if number is not a prime. </dd></dl>
<p>Reduce all possibilities of a number which cannot be prime with the first 3 if, else if conditionals. Example: Since no even number, except 2 can be a prime number and the next prime we find after our checks is 5, we will start the for loop with i = 5. then for each loop we increment i by +6 and check if i or i+2 is a factor of the number; if it's a factor then we will return false. otherwise, true will be returned after the loop terminates at the terminating condition which is i*i &lt;= num</p>
<div class="fragment"><div class="line"><span class="lineno"> 30</span> {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 31</span><span class="comment"> /*!</span></div>
<div class="line"><span class="lineno"> 32</span><span class="comment"> * Reduce all possibilities of a number which cannot be prime with the first</span></div>
<div class="line"><span class="lineno"> 33</span><span class="comment"> * 3 if, else if conditionals. Example: Since no even number, except 2 can</span></div>
<div class="line"><span class="lineno"> 34</span><span class="comment"> * be a prime number and the next prime we find after our checks is 5,</span></div>
<div class="line"><span class="lineno"> 35</span><span class="comment"> * we will start the for loop with i = 5. then for each loop we increment</span></div>
<div class="line"><span class="lineno"> 36</span><span class="comment"> * i by +6 and check if i or i+2 is a factor of the number; if it&#39;s a factor</span></div>
<div class="line"><span class="lineno"> 37</span><span class="comment"> * then we will return false. otherwise, true will be returned after the</span></div>
<div class="line"><span class="lineno"> 38</span><span class="comment"> * loop terminates at the terminating condition which is i*i &lt;= num</span></div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> */</span></div>
<div class="line"><span class="lineno"> 40</span> <span class="keywordflow">if</span> (num &lt;= 1) {</div>
<div class="line"><span class="lineno"> 41</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 42</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num == 2 || num == 3) {</div>
<div class="line"><span class="lineno"> 43</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 44</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num % 2 == 0 || num % 3 == 0) {</div>
<div class="line"><span class="lineno"> 45</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 46</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 47</span> <span class="keywordflow">for</span> (int64_t i = 5; i * i &lt;= num; i = i + 6) {</div>
<div class="line"><span class="lineno"> 48</span> <span class="keywordflow">if</span> (num % i == 0 || num % (i + 2) == 0) {</div>
<div class="line"><span class="lineno"> 49</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 50</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 31</span> {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 32</span><span class="comment"> /*!</span></div>
<div class="line"><span class="lineno"> 33</span><span class="comment"> * Reduce all possibilities of a number which cannot be prime with the first</span></div>
<div class="line"><span class="lineno"> 34</span><span class="comment"> * 3 if, else if conditionals. Example: Since no even number, except 2 can</span></div>
<div class="line"><span class="lineno"> 35</span><span class="comment"> * be a prime number and the next prime we find after our checks is 5,</span></div>
<div class="line"><span class="lineno"> 36</span><span class="comment"> * we will start the for loop with i = 5. then for each loop we increment</span></div>
<div class="line"><span class="lineno"> 37</span><span class="comment"> * i by +6 and check if i or i+2 is a factor of the number; if it&#39;s a factor</span></div>
<div class="line"><span class="lineno"> 38</span><span class="comment"> * then we will return false. otherwise, true will be returned after the</span></div>
<div class="line"><span class="lineno"> 39</span><span class="comment"> * loop terminates at the terminating condition which is i*i &lt;= num</span></div>
<div class="line"><span class="lineno"> 40</span><span class="comment"> */</span></div>
<div class="line"><span class="lineno"> 41</span> <span class="keywordflow">if</span> (num &lt;= 1) {</div>
<div class="line"><span class="lineno"> 42</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 43</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num == 2 || num == 3) {</div>
<div class="line"><span class="lineno"> 44</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 45</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num % 2 == 0 || num % 3 == 0) {</div>
<div class="line"><span class="lineno"> 46</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 47</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 48</span> <span class="keywordflow">for</span> (int64_t i = 5; i * i &lt;= num; i = i + 6) {</div>
<div class="line"><span class="lineno"> 49</span> <span class="keywordflow">if</span> (num % i == 0 || num % (i + 2) == 0) {</div>
<div class="line"><span class="lineno"> 50</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 51</span> }</div>
<div class="line"><span class="lineno"> 52</span> }</div>
<div class="line"><span class="lineno"> 53</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 54</span> }</div>
<div class="line"><span class="lineno"> 53</span> }</div>
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 55</span>}</div>
</div><!-- fragment -->
</div>
</div>