Documentation for 20f74d4138

This commit is contained in:
github-actions
2021-08-09 13:06:35 +00:00
parent 0ab8599376
commit 7cbe15159e
246 changed files with 8997 additions and 7723 deletions

View File

@@ -137,7 +137,7 @@ Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://en.wikipedia.org/wiki/Edit_distance">Minimum Edit Distance</a> using Dynamic Programing. </p>
<p>Given two strings str1 &amp; str2 and we have to calculate the minimum number of operations (Insert, Remove, Replace) required to convert str1 to str2.</p>
<h3><a class="anchor" id="autotoc_md63"></a>
<h3><a class="anchor" id="autotoc_md64"></a>
Algorithm</h3>
<p>We will solve this problem using Naive recursion. But as we are approaching with a DP solution. So, we will take a DP array to store the solution of all sub-problems so that we don't have to perform recursion again and again. Now to solve the problem, We can traverse all characters from either right side of the strings or left side. Suppose we will do it from the right side. So, there are two possibilities for every pair of characters being traversed.</p><ol type="1">
<li>If the last characters of two strings are the same, Ignore the characters and get the count for the remaining string. So, we get the solution for lengths m-1 and n-1 in a DP array.</li>

View File

@@ -0,0 +1,425 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp File Reference</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="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.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">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">karatsuba_algorithm_for_fast_multiplication.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implementation of the <a href="https://en.wikipedia.org/wiki/Karatsuba_algorithm">Karatsuba algorithm for fast multiplication</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstring&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for karatsuba_algorithm_for_fast_multiplication.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d0/d2c/karatsuba__algorithm__for__fast__multiplication_8cpp__incl.svg" width="344" height="142"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/dba/namespacedivide__and__conquer"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/dba/namespacedivide__and__conquer.html">divide_and_conquer</a></td></tr>
<tr class="memdesc:dd/dba/namespacedivide__and__conquer"><td class="mdescLeft">&#160;</td><td class="mdescRight">for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:de/d41/namespacekaratsuba__algorithm"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a></td></tr>
<tr class="memdesc:de/d41/namespacekaratsuba__algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the <a href="https://en.wikipedia.org/wiki/Karatsuba_algorithm">Karatsuba algorithm for fast multiplication</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a7d1dbae365c7746295d3322e6f7f80b6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7d1dbae365c7746295d3322e6f7f80b6">divide_and_conquer::karatsuba_algorithm::addStrings</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> first, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> second)</td></tr>
<tr class="memdesc:a7d1dbae365c7746295d3322e6f7f80b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for the main function, that implements Karatsuba's algorithm for fast multiplication. <a href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7d1dbae365c7746295d3322e6f7f80b6">More...</a><br /></td></tr>
<tr class="separator:a7d1dbae365c7746295d3322e6f7f80b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a890d2f26855ada3b9f1d43aec70a86"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7a890d2f26855ada3b9f1d43aec70a86">divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> str1, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> str2)</td></tr>
<tr class="memdesc:a7a890d2f26855ada3b9f1d43aec70a86"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function implements Karatsuba's algorithm for fast multiplication. <a href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7a890d2f26855ada3b9f1d43aec70a86">More...</a><br /></td></tr>
<tr class="separator:a7a890d2f26855ada3b9f1d43aec70a86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <a href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">More...</a><br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <a href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of the <a href="https://en.wikipedia.org/wiki/Karatsuba_algorithm">Karatsuba algorithm for fast multiplication</a> </p>
<p>Given two strings in binary notation we want to multiply them and return the value Simple approach is to multiply bits one by one which will give the time complexity of around O(n^2). To make it more efficient we will be using Karatsuba' algorithm to find the product which will solve the problem O(nlogn) of time. </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Swastyy">Swastika Gupta</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a7d1dbae365c7746295d3322e6f7f80b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d1dbae365c7746295d3322e6f7f80b6">&#9670;&nbsp;</a></span>addStrings()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> divide_and_conquer::karatsuba_algorithm::addStrings </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>second</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function for the main function, that implements Karatsuba's algorithm for fast multiplication. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>the input string 1 </td></tr>
<tr><td class="paramname">second</td><td>the input string 2 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the concatenated string </dd></dl>
<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>; <span class="comment">// To store the resulting sum bits</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; int64_t len1 = first.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; int64_t len2 = second.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; int64_t length = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(len1, len2);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> zero = <span class="stringliteral">&quot;0&quot;</span>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span> (len1 &lt; len2) <span class="comment">// make the string lengths equal</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span> (int64_t i = 0; i &lt; len2 - len1; i++) {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; zero += first;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; first = zero;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len1 &gt; len2) {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; zero = <span class="stringliteral">&quot;0&quot;</span>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">for</span> (int64_t i = 0; i &lt; len1 - len2; i++) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; zero += second;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; second = zero;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; int64_t carry = 0;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">for</span> (int64_t i = length - 1; i &gt;= 0; i--) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; int64_t firstBit = first.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/at.html">at</a>(i) - <span class="charliteral">&#39;0&#39;</span>;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; int64_t secondBit = second.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/at.html">at</a>(i) - <span class="charliteral">&#39;0&#39;</span>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; int64_t <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a> = (firstBit ^ secondBit ^ carry) + <span class="charliteral">&#39;0&#39;</span>; <span class="comment">// sum of 3 bits</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> temp;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; temp = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(<a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a>);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; temp += <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = temp;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; carry = (firstBit &amp; secondBit) | (secondBit &amp; carry) |</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; (firstBit &amp; carry); <span class="comment">// sum of 3 bits</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (carry) {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = <span class="charliteral">&#39;1&#39;</span> + <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>; <span class="comment">// adding 1 incase of overflow</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div>
<div class="ttc" id="aat_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/at.html">std::string::at</a></div><div class="ttdeci">T at(T... args)</div></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="afibonacci__sum_8cpp_html_aadb40ac4c74a7efc0680b83eeee138aa"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">math::fibonacci_sum::result</a></div><div class="ttdeci">uint64_t result(uint64_t n)</div><div class="ttdef"><b>Definition:</b> fibonacci_sum.cpp:76</div></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="anamespacemachine__learning_html_a5305cc18d11943d3dc0d66e70d7e9c44"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector&lt; std::valarray&lt; T &gt;&gt; &amp;A)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:232</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">std::string::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="ato_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a></div><div class="ttdeci">T to_string(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp_a7d1dbae365c7746295d3322e6f7f80b6_cgraph.svg" width="370" height="240"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a7a890d2f26855ada3b9f1d43aec70a86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a890d2f26855ada3b9f1d43aec70a86">&#9670;&nbsp;</a></span>karatsuba_algorithm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>str1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>str2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The main function implements Karatsuba's algorithm for fast multiplication. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str1</td><td>the input string 1 </td></tr>
<tr><td class="paramname">str2</td><td>the input string 2 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the multiplicative number value </dd></dl>
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; int64_t len1 = str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; int64_t len2 = str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; int64_t n = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(len1, len2);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> zero = <span class="stringliteral">&quot;0&quot;</span>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (len1 &lt; len2) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span> (int64_t i = 0; i &lt; len2 - len1; i++) {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; zero += str1;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; str1 = zero;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len1 &gt; len2) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; zero = <span class="stringliteral">&quot;0&quot;</span>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (int64_t i = 0; i &lt; len1 - len2; i++) {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; zero += str2;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; str2 = zero;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (n == 0) {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (n == 1) {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> (str1[0] - <span class="charliteral">&#39;0&#39;</span>) * (str2[0] - <span class="charliteral">&#39;0&#39;</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; int64_t fh = n / 2; <span class="comment">// first half of string</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; int64_t sh = (n - fh); <span class="comment">// second half of string</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Xl = str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html">substr</a>(0, fh); <span class="comment">// first half of first string</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Xr = str1.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html">substr</a>(fh, sh); <span class="comment">// second half of first string</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Yl = str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html">substr</a>(0, fh); <span class="comment">// first half of second string</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Yr = str2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html">substr</a>(fh, sh); <span class="comment">// second half of second string</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Calculating the three products of inputs of size n/2 recursively</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; int64_t product1 = <a class="code" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a>(Xl, Yl);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; int64_t product2 = <a class="code" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a>(Xr, Yr);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; int64_t product3 = <a class="code" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a>(</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; divide_and_conquer::karatsuba_algorithm::addStrings(Xl, Xr),</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; divide_and_conquer::karatsuba_algorithm::addStrings(Yl, Yr));</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> product1 * (1 &lt;&lt; (2 * sh)) +</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; (product3 - product1 - product2) * (1 &lt;&lt; sh) +</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; product2; <span class="comment">// combining the three products to get the final result.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div>
<div class="ttc" id="anamespacekaratsuba__algorithm_html"><div class="ttname"><a href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a></div><div class="ttdoc">Functions for the Karatsuba algorithm for fast multiplication</div></div>
<div class="ttc" id="asubstr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html">std::string::substr</a></div><div class="ttdeci">T substr(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp_a7a890d2f26855ada3b9f1d43aec70a86_cgraph.svg" width="568" height="255"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div>
<div class="ttc" id="akaratsuba__algorithm__for__fast__multiplication_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition:</b> karatsuba_algorithm_for_fast_multiplication.cpp:134</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="274" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// 1st test</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s11 = <span class="stringliteral">&quot;1&quot;</span>;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s12 = <span class="stringliteral">&quot;1010&quot;</span>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;1st test... &quot;</span>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; s11, s12) == 10); <span class="comment">// here the multiplication is 10</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// 2nd test</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s21 = <span class="stringliteral">&quot;11&quot;</span>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s22 = <span class="stringliteral">&quot;1010&quot;</span>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;2nd test... &quot;</span>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; s21, s22) == 30); <span class="comment">// here the multiplication is 30</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// 3rd test</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s31 = <span class="stringliteral">&quot;110&quot;</span>;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s32 = <span class="stringliteral">&quot;1010&quot;</span>;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;3rd test... &quot;</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; s31, s32) == 60); <span class="comment">// here the multiplication is 60</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp_aa8dca7b867074164d5f45b0f3851269d_cgraph.svg" width="175" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_93bc990c5cceb745f78af6949e9ef947.html">divide_and_conquer</a></li><li class="navelem"><a class="el" href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html">karatsuba_algorithm_for_fast_multiplication.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,7 @@
var karatsuba__algorithm__for__fast__multiplication_8cpp =
[
[ "addStrings", "da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7d1dbae365c7746295d3322e6f7f80b6", null ],
[ "karatsuba_algorithm", "da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7a890d2f26855ada3b9f1d43aec70a86", null ],
[ "main", "da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "test", "da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ]
];

View File

@@ -0,0 +1,10 @@
<map id="divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm" name="divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm">
<area shape="rect" id="node1" title="The main function implements Karatsuba&#39;s algorithm for fast multiplication." alt="" coords="5,125,156,181"/>
<area shape="rect" id="node2" href="$da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7d1dbae365c7746295d3322e6f7f80b6" title="Helper function for the main function, that implements Karatsuba&#39;s algorithm for fast multiplication." alt="" coords="204,92,355,148"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="447,5,519,32"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="427,208,538,235"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/substr.html#" title=" " alt="" coords="217,223,341,249"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/at.html#" title=" " alt="" coords="433,56,532,83"/>
<area shape="rect" id="node6" href="$d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" title=" " alt="" coords="403,107,563,133"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/to_string.html#" title=" " alt="" coords="433,157,532,184"/>
</map>

View File

@@ -0,0 +1 @@
43e7069df57a584dee031edc1bb697b0

View File

@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm Pages: 1 -->
<svg width="426pt" height="191pt"
viewBox="0.00 0.00 426.00 191.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 187)">
<title>divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-187 422,-187 422,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="The main function implements Karatsuba&#39;s algorithm for fast multiplication.">
<polygon fill="#bfbfbf" stroke="black" points="0,-51.5 0,-92.5 113,-92.5 113,-51.5 0,-51.5"/>
<text text-anchor="start" x="8" y="-80.5" font-family="Helvetica,sans-Serif" font-size="10.00">divide_and_conquer</text>
<text text-anchor="start" x="8" y="-69.5" font-family="Helvetica,sans-Serif" font-size="10.00">::karatsuba_algorithm</text>
<text text-anchor="middle" x="56.5" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">::karatsuba_algorithm</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#a7d1dbae365c7746295d3322e6f7f80b6" target="_top" xlink:title="Helper function for the main function, that implements Karatsuba&#39;s algorithm for fast multiplication.">
<polygon fill="white" stroke="black" points="149,-76.5 149,-117.5 262,-117.5 262,-76.5 149,-76.5"/>
<text text-anchor="start" x="157" y="-105.5" font-family="Helvetica,sans-Serif" font-size="10.00">divide_and_conquer</text>
<text text-anchor="start" x="157" y="-94.5" font-family="Helvetica,sans-Serif" font-size="10.00">::karatsuba_algorithm</text>
<text text-anchor="middle" x="205.5" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">::addStrings</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M113.07,-81.45C121.49,-82.88 130.24,-84.37 138.84,-85.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="138.4,-89.31 148.85,-87.54 139.58,-82.41 138.4,-89.31"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="331,-163.5 331,-182.5 385,-182.5 385,-163.5 331,-163.5"/>
<text text-anchor="middle" x="358" y="-170.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge8" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M76.81,-92.69C94.02,-109.72 120.78,-132.95 149,-145 205.53,-169.14 277.88,-173.62 320.66,-173.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="320.87,-177.37 330.86,-173.86 320.86,-170.37 320.87,-177.37"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="316.5,-11.5 316.5,-30.5 399.5,-30.5 399.5,-11.5 316.5,-11.5"/>
<text text-anchor="middle" x="358" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge9" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M113.13,-62.53C168.44,-53.11 252.55,-38.79 306.12,-29.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="306.82,-33.1 316.09,-27.97 305.64,-26.2 306.82,-33.1"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/substr.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="159,-0.5 159,-19.5 252,-19.5 252,-0.5 159,-0.5"/>
<text text-anchor="middle" x="205.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::substr</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge10" class="edge">
<title>Node1&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M106.45,-51.35C128.17,-42.19 153.12,-31.67 172.42,-23.53"/>
<polygon fill="midnightblue" stroke="midnightblue" points="173.82,-26.74 181.67,-19.63 171.1,-20.29 173.82,-26.74"/>
</g>
<!-- Node2&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M178.3,-117.86C175.33,-127.54 184.4,-136 205.5,-136 218.69,-136 227.18,-132.7 230.96,-127.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="234.43,-128.32 232.7,-117.86 227.54,-127.12 234.43,-128.32"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/at.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="321,-125.5 321,-144.5 395,-144.5 395,-125.5 321,-125.5"/>
<text text-anchor="middle" x="358" y="-132.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::at</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M262.11,-111.04C278.19,-115.1 295.54,-119.48 310.96,-123.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="310.23,-126.8 320.79,-125.86 311.95,-120.01 310.23,-126.8"/>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M235.54,-117.66C253.04,-129.45 276.1,-143.84 298,-154 305.34,-157.41 313.47,-160.45 321.28,-163.05"/>
<polygon fill="midnightblue" stroke="midnightblue" points="320.33,-166.43 330.92,-166.11 322.44,-159.75 320.33,-166.43"/>
</g>
<!-- Node2&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<title>Node2&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M239.18,-76.38C264.16,-60.66 294.83,-41.47 298,-40 302.7,-37.82 307.72,-35.79 312.77,-33.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="314.15,-37.15 322.45,-30.56 311.85,-30.54 314.15,-37.15"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="298,-87.5 298,-106.5 418,-106.5 418,-87.5 298,-87.5"/>
<text text-anchor="middle" x="358" y="-94.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::sum</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node6 -->
<g id="edge6" class="edge">
<title>Node2&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M262.11,-97C270.48,-97 279.19,-97 287.8,-97"/>
<polygon fill="midnightblue" stroke="midnightblue" points="287.83,-100.5 297.83,-97 287.83,-93.5 287.83,-100.5"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="321,-49.5 321,-68.5 395,-68.5 395,-49.5 321,-49.5"/>
<text text-anchor="middle" x="358" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::to_string</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node7 -->
<g id="edge7" class="edge">
<title>Node2&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M262.11,-82.96C278.19,-78.9 295.54,-74.52 310.96,-70.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="311.95,-73.99 320.79,-68.14 310.23,-67.2 311.95,-73.99"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -0,0 +1,8 @@
<map id="divide_and_conquer::karatsuba_algorithm::addStrings" name="divide_and_conquer::karatsuba_algorithm::addStrings">
<area shape="rect" id="node1" title="Helper function for the main function, that implements Karatsuba&#39;s algorithm for fast multiplication." alt="" coords="5,92,156,148"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/at.html#" title=" " alt="" coords="235,5,333,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="248,56,320,83"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="229,107,339,133"/>
<area shape="rect" id="node5" href="$d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" title=" " alt="" coords="204,157,364,184"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/to_string.html#" title=" " alt="" coords="235,208,333,235"/>
</map>

View File

@@ -0,0 +1 @@
36e5f2abca7f8a84ca4bfc74857be3c4

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: divide_and_conquer::karatsuba_algorithm::addStrings Pages: 1 -->
<svg width="277pt" height="180pt"
viewBox="0.00 0.00 277.00 180.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 176)">
<title>divide_and_conquer::karatsuba_algorithm::addStrings</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-176 273,-176 273,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Helper function for the main function, that implements Karatsuba&#39;s algorithm for fast multiplication.">
<polygon fill="#bfbfbf" stroke="black" points="0,-65.5 0,-106.5 113,-106.5 113,-65.5 0,-65.5"/>
<text text-anchor="start" x="8" y="-94.5" font-family="Helvetica,sans-Serif" font-size="10.00">divide_and_conquer</text>
<text text-anchor="start" x="8" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">::karatsuba_algorithm</text>
<text text-anchor="middle" x="56.5" y="-72.5" font-family="Helvetica,sans-Serif" font-size="10.00">::addStrings</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node1</title>
<path fill="none" stroke="midnightblue" d="M28.56,-106.86C25.52,-116.54 34.83,-125 56.5,-125 70.04,-125 78.76,-121.7 82.65,-116.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="86.12,-117.32 84.44,-106.86 79.23,-116.09 86.12,-117.32"/>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/at.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="172,-152.5 172,-171.5 246,-171.5 246,-152.5 172,-152.5"/>
<text text-anchor="middle" x="209" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::at</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M86.54,-106.66C104.04,-118.45 127.1,-132.84 149,-143 153.7,-145.18 158.72,-147.21 163.77,-149.07"/>
<polygon fill="midnightblue" stroke="midnightblue" points="162.85,-152.46 173.45,-152.44 165.15,-145.85 162.85,-152.46"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="182,-114.5 182,-133.5 236,-133.5 236,-114.5 182,-114.5"/>
<text text-anchor="middle" x="209" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M113.11,-100.04C132.71,-104.99 154.22,-110.42 171.8,-114.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="171.1,-118.29 181.65,-117.35 172.81,-111.51 171.1,-118.29"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="167.5,-76.5 167.5,-95.5 250.5,-95.5 250.5,-76.5 167.5,-76.5"/>
<text text-anchor="middle" x="209" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M113.11,-86C127.53,-86 142.99,-86 157.15,-86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="157.2,-89.5 167.2,-86 157.2,-82.5 157.2,-89.5"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="149,-38.5 149,-57.5 269,-57.5 269,-38.5 149,-38.5"/>
<text text-anchor="middle" x="209" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::sum</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M113.11,-71.96C128.49,-68.08 145.04,-63.9 159.95,-60.13"/>
<polygon fill="midnightblue" stroke="midnightblue" points="161.13,-63.44 169.97,-57.6 159.42,-56.66 161.13,-63.44"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="172,-0.5 172,-19.5 246,-19.5 246,-0.5 172,-0.5"/>
<text text-anchor="middle" x="209" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::to_string</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge6" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M86.54,-65.34C104.04,-53.55 127.1,-39.16 149,-29 153.7,-26.82 158.72,-24.79 163.77,-22.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="165.15,-26.15 173.45,-19.56 162.85,-19.54 165.15,-26.15"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,4 @@
<map id="test" name="test">
<area shape="rect" id="node1" title="Self&#45;test implementations." alt="" coords="5,5,49,32"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="97,5,169,32"/>
</map>

View File

@@ -0,0 +1 @@
e183666d54c346b35c418105d98411c7

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: test Pages: 1 -->
<svg width="131pt" height="28pt"
viewBox="0.00 0.00 131.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<title>test</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 127,-24 127,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Self&#45;test implementations.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 33,-19.5 33,-0.5 0,-0.5"/>
<text text-anchor="middle" x="16.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="69,-0.5 69,-19.5 123,-19.5 123,-0.5 69,-0.5"/>
<text text-anchor="middle" x="96" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M33.18,-10C40.64,-10 49.89,-10 58.94,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="58.96,-13.5 68.96,-10 58.96,-6.5 58.96,-13.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,5 @@
<map id="main" name="main">
<area shape="rect" id="node1" title="Main function." alt="" coords="5,5,56,32"/>
<area shape="rect" id="node2" href="$da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" title="Self&#45;test implementations." alt="" coords="104,5,148,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="196,5,268,32"/>
</map>

View File

@@ -0,0 +1 @@
f1e919ae89d4579bee7f8ec3787bf499

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: main Pages: 1 -->
<svg width="205pt" height="28pt"
viewBox="0.00 0.00 205.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<title>main</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 201,-24 201,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Main function.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 38,-19.5 38,-0.5 0,-0.5"/>
<text text-anchor="middle" x="19" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html#aa8dca7b867074164d5f45b0f3851269d" target="_top" xlink:title="Self&#45;test implementations.">
<polygon fill="white" stroke="black" points="74,-0.5 74,-19.5 107,-19.5 107,-0.5 74,-0.5"/>
<text text-anchor="middle" x="90.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">test</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M38.26,-10C46.07,-10 55.31,-10 63.79,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="63.95,-13.5 73.95,-10 63.95,-6.5 63.95,-13.5"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="143,-0.5 143,-19.5 197,-19.5 197,-0.5 143,-0.5"/>
<text text-anchor="middle" x="170" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M107.18,-10C114.64,-10 123.89,-10 132.94,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="132.96,-13.5 142.96,-10 132.96,-6.5 132.96,-13.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB