Documentation for 341ed50da8
@@ -1,4 +0,0 @@
|
||||
<map id="machine_learning::adaline" name="machine_learning::adaline">
|
||||
<area shape="rect" id="node1" title=" " alt="" coords="5,95,183,121"/>
|
||||
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="21,5,167,32"/>
|
||||
</map>
|
||||
@@ -1 +0,0 @@
|
||||
c265040336f3284a458eb68f42448c77
|
||||
@@ -1,38 +0,0 @@
|
||||
<?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: machine_learning::adaline Pages: 1 -->
|
||||
<svg width="141pt" height="95pt"
|
||||
viewBox="0.00 0.00 141.00 95.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 91)">
|
||||
<title>machine_learning::adaline</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-91 137,-91 137,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title=" ">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 133,-19.5 133,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="66.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::adaline</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/container/vector.html" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="11.5,-67.5 11.5,-86.5 121.5,-86.5 121.5,-67.5 11.5,-67.5"/>
|
||||
<text text-anchor="middle" x="66.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector< double ></text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2->Node1 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node2->Node1</title>
|
||||
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M66.5,-57.04C66.5,-44.67 66.5,-29.12 66.5,-19.63"/>
|
||||
<polygon fill="#9a32cd" stroke="#9a32cd" points="63,-57.23 66.5,-67.23 70,-57.23 63,-57.23"/>
|
||||
<text text-anchor="middle" x="85" y="-41" font-family="Helvetica,sans-Serif" font-size="10.00"> weights</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -2,8 +2,8 @@
|
||||
<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 http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<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"/>
|
||||
@@ -17,9 +17,9 @@
|
||||
<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"],
|
||||
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>
|
||||
@@ -32,8 +32,7 @@
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
<div id="projectname">Algorithms_in_C++<span id="projectnumber"> 1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
@@ -42,21 +41,22 @@
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
@@ -70,7 +70,7 @@ $(function() {
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('da/dd3/karatsuba__algorithm__for__fast__multiplication_8cpp.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('da/dd3/karatsuba__algorithm__for__fast
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">karatsuba_algorithm_for_fast_multiplication.cpp File Reference</div> </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>
|
||||
<p>Implementation of the <a href="https://en.wikipedia.org/wiki/Karatsuba_algorithm" target="_blank">Karatsuba algorithm for fast multiplication</a>
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<code>#include <cstring></code><br />
|
||||
@@ -111,16 +110,16 @@ Include dependency graph for karatsuba_algorithm_for_fast_multiplication.cpp:</d
|
||||
</div>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
<tr class="memitem:dd/dba/namespacedivide__and__conquer"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/dba/namespacedivide__and__conquer.html">divide_and_conquer</a></td></tr>
|
||||
<tr class="memitem:dd/dba/namespacedivide__and__conquer"><td class="memItemLeft" align="right" valign="top">namespace  </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"> </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"> </td></tr>
|
||||
<tr class="memitem:de/d41/namespacekaratsuba__algorithm"><td class="memItemLeft" align="right" valign="top">  </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"> </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="memitem:de/d41/namespacekaratsuba__algorithm"><td class="memItemLeft" align="right" valign="top">namespace  </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"> </td><td class="mdescRight">Functions for the <a href="https://en.wikipedia.org/wiki/Karatsuba_algorithm" target="_blank">Karatsuba algorithm for fast multiplication</a> <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" 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> </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"> </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>
|
||||
@@ -136,10 +135,10 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </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 class="textblock"><p >Implementation of the <a href="https://en.wikipedia.org/wiki/Karatsuba_algorithm" target="_blank">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" target="_blank">Swastika Gupta</a> </dd></dl>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a7d1dbae365c7746295d3322e6f7f80b6"></a>
|
||||
<a id="a7d1dbae365c7746295d3322e6f7f80b6" name="a7d1dbae365c7746295d3322e6f7f80b6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7d1dbae365c7746295d3322e6f7f80b6">◆ </a></span>addStrings()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -174,51 +173,51 @@ Functions</h2></td></tr>
|
||||
</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>  {</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <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>  </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  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>  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>  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>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">if</span> (len1 < len2) <span class="comment">// make the string lengths equal</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span> (int64_t i = 0; i < len2 - len1; i++) {</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  zero += first;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  first = zero;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len1 > len2) {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">for</span> (int64_t i = 0; i < len1 - len2; i++) {</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  zero += second;</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  second = zero;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  int64_t carry = 0;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (int64_t i = length - 1; i >= 0; i--) {</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  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">'0'</span>;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  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">'0'</span>;</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  int64_t <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a> = (firstBit ^ secondBit ^ carry) + <span class="charliteral">'0'</span>; <span class="comment">// sum of 3 bits</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <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>  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>  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>  <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>  </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  carry = (firstBit & secondBit) | (secondBit & carry) |</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  (firstBit & carry); <span class="comment">// sum of 3 bits</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (carry) {</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = <span class="charliteral">'1'</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>  }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <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> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> {</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <a class="code hl_function" 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 id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> int64_t len1 = first.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> int64_t len2 = second.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> int64_t length = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(len1, len2);</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (len1 < len2) <span class="comment">// make the string lengths equal</span></div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">for</span> (int64_t i = 0; i < len2 - len1; i++) {</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> zero += first;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> first = zero;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len1 > len2) {</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">for</span> (int64_t i = 0; i < len1 - len2; i++) {</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> zero += second;</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> second = zero;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> int64_t carry = 0;</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">for</span> (int64_t i = length - 1; i >= 0; i--) {</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> int64_t firstBit = first.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/at.html">at</a>(i) - <span class="charliteral">'0'</span>;</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> int64_t secondBit = second.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/at.html">at</a>(i) - <span class="charliteral">'0'</span>;</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> int64_t <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a> = (firstBit ^ secondBit ^ carry) + <span class="charliteral">'0'</span>; <span class="comment">// sum of 3 bits</span></div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> temp;</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> temp = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(<a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>);</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> temp += <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = temp;</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> carry = (firstBit & secondBit) | (secondBit & carry) |</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> (firstBit & carry); <span class="comment">// sum of 3 bits</span></div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">if</span> (carry) {</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = <span class="charliteral">'1'</span> + <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>; <span class="comment">// adding 1 incase of overflow</span></div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>}</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< std::valarray< T >> &A)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:232</div></div>
|
||||
<div class="ttc" id="anamespacemachine__learning_html_a6f1c98c016ad34ff3d9f39372161bd35"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector< std::valarray< T > > &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">
|
||||
@@ -230,7 +229,7 @@ Here is the call graph for this function:</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a7a890d2f26855ada3b9f1d43aec70a86"></a>
|
||||
<a id="a7a890d2f26855ada3b9f1d43aec70a86" name="a7a890d2f26855ada3b9f1d43aec70a86"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7a890d2f26855ada3b9f1d43aec70a86">◆ </a></span>karatsuba_algorithm()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -265,49 +264,49 @@ Here is the call graph for this function:</div>
|
||||
</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>  {</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  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>  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>  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>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (len1 < len2) {</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">for</span> (int64_t i = 0; i < len2 - len1; i++) {</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  zero += str1;</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  str1 = zero;</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len1 > len2) {</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">for</span> (int64_t i = 0; i < len1 - len2; i++) {</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  zero += str2;</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  str2 = zero;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (n == 0) {</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> (n == 1) {</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> (str1[0] - <span class="charliteral">'0'</span>) * (str2[0] - <span class="charliteral">'0'</span>);</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  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>  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>  </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <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>  <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>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <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>  <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>  </div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <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>  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>  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>  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>  divide_and_conquer::karatsuba_algorithm::addStrings(Xl, Xr),</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  divide_and_conquer::karatsuba_algorithm::addStrings(Yl, Yr));</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> product1 * (1 << (2 * sh)) +</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  (product3 - product1 - product2) * (1 << sh) +</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  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> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> {</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> int64_t len1 = str1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> int64_t len2 = str2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>();</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> int64_t n = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(len1, len2);</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">if</span> (len1 < len2) {</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">for</span> (int64_t i = 0; i < len2 - len1; i++) {</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> zero += str1;</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> str1 = zero;</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (len1 > len2) {</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> zero = <span class="stringliteral">"0"</span>;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">for</span> (int64_t i = 0; i < len1 - len2; i++) {</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> zero += str2;</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> str2 = zero;</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> }</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span> (n == 0) {</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">if</span> (n == 1) {</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> (str1[0] - <span class="charliteral">'0'</span>) * (str2[0] - <span class="charliteral">'0'</span>);</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> int64_t fh = n / 2; <span class="comment">// first half of string</span></div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> int64_t sh = (n - fh); <span class="comment">// second half of string</span></div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Xl = str1.<a class="code hl_functionRef" 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 id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Xr = str1.<a class="code hl_functionRef" 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 id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Yl = str2.<a class="code hl_functionRef" 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 id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> Yr = str2.<a class="code hl_functionRef" 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 id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// Calculating the three products of inputs of size n/2 recursively</span></div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> int64_t product1 = <a class="code hl_namespace" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a>(Xl, Yl);</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> int64_t product2 = <a class="code hl_namespace" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a>(Xr, Yr);</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> int64_t product3 = <a class="code hl_namespace" href="../../de/d41/namespacekaratsuba__algorithm.html">karatsuba_algorithm</a>(</div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> divide_and_conquer::karatsuba_algorithm::addStrings(Xl, Xr),</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> divide_and_conquer::karatsuba_algorithm::addStrings(Yl, Yr));</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> product1 * (1 << (2 * sh)) +</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> (product3 - product1 - product2) * (1 << sh) +</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> product2; <span class="comment">// combining the three products to get the final result.</span></div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>}</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">
|
||||
@@ -319,7 +318,7 @@ Here is the call graph for this function:</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
||||
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">◆ </a></span>main()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -337,10 +336,10 @@ 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"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <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>  <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> {</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_function" 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 id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span>}</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>
|
||||
@@ -351,7 +350,7 @@ Here is the call graph for this function:</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
|
||||
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">◆ </a></span>test()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
@@ -376,31 +375,31 @@ 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"><a name="l00134"></a><span class="lineno"> 134</span>  {</div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// 1st test</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s11 = <span class="stringliteral">"1"</span>;</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s12 = <span class="stringliteral">"1010"</span>;</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"1st test... "</span>;</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  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>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"passed"</span> << <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>  </div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// 2nd test</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s21 = <span class="stringliteral">"11"</span>;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s22 = <span class="stringliteral">"1010"</span>;</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"2nd test... "</span>;</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  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>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"passed"</span> << <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>  </div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">// 3rd test</span></div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s31 = <span class="stringliteral">"110"</span>;</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s32 = <span class="stringliteral">"1010"</span>;</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"3rd test... "</span>;</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  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>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"passed"</span> << <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> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// 1st test</span></div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s11 = <span class="stringliteral">"1"</span>;</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s12 = <span class="stringliteral">"1010"</span>;</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"1st test... "</span>;</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> s11, s12) == 10); <span class="comment">// here the multiplication is 10</span></div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"passed"</span> << <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"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// 2nd test</span></div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s21 = <span class="stringliteral">"11"</span>;</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s22 = <span class="stringliteral">"1010"</span>;</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"2nd test... "</span>;</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> s21, s22) == 30); <span class="comment">// here the multiplication is 30</span></div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"passed"</span> << <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"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// 3rd test</span></div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s31 = <span class="stringliteral">"110"</span>;</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s32 = <span class="stringliteral">"1010"</span>;</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"3rd test... "</span>;</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> assert(divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm(</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> s31, s32) == 60); <span class="comment">// here the multiplication is 60</span></div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"passed"</span> << <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"><a id="l00158" name="l00158"></a><span class="lineno"> 158</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><!-- fragment --><div class="dynheader">
|
||||
@@ -418,7 +417,7 @@ Here is the call graph for this function:</div>
|
||||
<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>
|
||||
<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.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
<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="node6" href="$d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" 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>
|
||||
|
||||
@@ -1 +1 @@
|
||||
43e7069df57a584dee031edc1bb697b0
|
||||
42fcd3656086ad11eb1b8e5ee6348e20
|
||||
@@ -1,7 +1,7 @@
|
||||
<?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)
|
||||
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
|
||||
-->
|
||||
<!-- Title: divide_and_conquer::karatsuba_algorithm::karatsuba_algorithm Pages: 1 -->
|
||||
<svg width="426pt" height="191pt"
|
||||
@@ -118,7 +118,7 @@
|
||||
<!-- 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=" ">
|
||||
<g id="a_node6"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" 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>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
@@ -3,6 +3,6 @@
|
||||
<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="node5" href="$d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" 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>
|
||||
|
||||
@@ -1 +1 @@
|
||||
36e5f2abca7f8a84ca4bfc74857be3c4
|
||||
fd8d6132034400fde1aa08df3c0b8237
|
||||
@@ -1,7 +1,7 @@
|
||||
<?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)
|
||||
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
|
||||
-->
|
||||
<!-- Title: divide_and_conquer::karatsuba_algorithm::addStrings Pages: 1 -->
|
||||
<svg width="277pt" height="180pt"
|
||||
@@ -74,7 +74,7 @@
|
||||
<!-- 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=" ">
|
||||
<g id="a_node5"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" 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>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
@@ -1,7 +1,7 @@
|
||||
<?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)
|
||||
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
|
||||
-->
|
||||
<!-- Title: test Pages: 1 -->
|
||||
<svg width="131pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,7 +1,7 @@
|
||||
<?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)
|
||||
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="205pt" height="28pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -2,8 +2,8 @@
|
||||
<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 http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C++: spirograph Namespace Reference</title>
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -17,9 +17,9 @@
|
||||
<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"],
|
||||
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>
|
||||
@@ -32,8 +32,7 @@
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Algorithms_in_C++
|
||||
 <span id="projectnumber">1.0.0</span>
|
||||
<div id="projectname">Algorithms_in_C++<span id="projectnumber"> 1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
||||
</td>
|
||||
@@ -42,21 +41,22 @@
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
@@ -70,7 +70,7 @@ $(function() {
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('da/dd3/namespacespirograph.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
@@ -92,31 +92,29 @@ $(document).ready(function(){initNavTree('da/dd3/namespacespirograph.html','../.
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">spirograph Namespace Reference</div> </div>
|
||||
<div class="headertitle"><div class="title">spirograph Namespace Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplParams" colspan="2">template<std::size_t N> </td></tr>
|
||||
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplParams" colspan="2">template<<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> N> </td></tr>
|
||||
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>< double, double >, N > *points, double l, double k, double rot)</td></tr>
|
||||
<tr class="separator:aeca22dbe4563358960e907a40cd3e1ac"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="memItemLeft" align="right" valign="top"><a id="a8e83a64e8443fff1e5ffdc1c299c1e99"></a>
|
||||
void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">test</a> ()</td></tr>
|
||||
<tr class="memdesc:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="mdescLeft"> </td><td class="mdescRight">Test function to save resulting points to a CSV file. <br /></td></tr>
|
||||
<tr class="memitem:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">test</a> ()</td></tr>
|
||||
<tr class="memdesc:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="mdescLeft"> </td><td class="mdescRight">Test function to save resulting points to a CSV file. <a href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">More...</a><br /></td></tr>
|
||||
<tr class="separator:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Functions related to <a class="el" href="../../da/d77/spirograph_8cpp.html" title="Implementation of Spirograph">spirograph.cpp</a> </p>
|
||||
<div class="textblock"><p >Functions related to <a class="el" href="../../da/d77/spirograph_8cpp.html" title="Implementation of Spirograph">spirograph.cpp</a> </p>
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="aeca22dbe4563358960e907a40cd3e1ac"></a>
|
||||
<a id="aeca22dbe4563358960e907a40cd3e1ac" name="aeca22dbe4563358960e907a40cd3e1ac"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aeca22dbe4563358960e907a40cd3e1ac">◆ </a></span>spirograph()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<std::size_t N> </div>
|
||||
template<<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> N> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void spirograph::spirograph </td>
|
||||
@@ -149,7 +147,7 @@ template<std::size_t N> </div>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Generate spirograph curve into arrays <code>x</code> and <code>y</code> such that the i^th point in 2D is represented by <code>(x[i],y[i])</code>. The generating function is given by: </p><p class="formulaDsp">
|
||||
<p >Generate spirograph curve into arrays <code>x</code> and <code>y</code> such that the i^th point in 2D is represented by <code>(x[i],y[i])</code>. The generating function is given by: </p><p class="formulaDsp">
|
||||
\begin{eqnarray*} x &=& R\left[ (1-k) \cos (t) + l\cdot k\cdot\cos \left(\frac{1-k}{k}t\right) \right]\\ y &=& R\left[ (1-k) \sin (t) - l\cdot k\cdot\sin \left(\frac{1-k}{k}t\right) \right] \end{eqnarray*}
|
||||
</p>
|
||||
<p> where</p><ul>
|
||||
@@ -161,7 +159,7 @@ template<std::size_t N> </div>
|
||||
<li>\(R\) is the radius of outer circle</li>
|
||||
<li>\(t\) is the angle of rotation of the point i.e., represents the time parameter</li>
|
||||
</ul>
|
||||
<p>Since we are considering ratios, the actual values of \(r\) and \(R\) are immaterial.</p>
|
||||
<p >Since we are considering ratios, the actual values of \(r\) and \(R\) are immaterial.</p>
|
||||
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
||||
<table class="tparams">
|
||||
<tr><td class="paramname">N</td><td>number of points = size of array </td></tr>
|
||||
@@ -177,25 +175,24 @@ template<std::size_t N> </div>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordtype">double</span> dt = rot * 2.f * M_PI / <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>;</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">double</span> R = 1.f;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> k1 = 1.f - k;</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  int32_t step = 0;</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#ifdef _OPENMP</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#pragma omp for</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span> (step = 0; step < <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; step++) {</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">double</span> t = dt * step;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">double</span> first = R * (k1 * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a>(t) + l * k * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a>(k1 * t / k));</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">double</span> second = R * (k1 * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a>(t) - l * k * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a>(k1 * t / k));</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  points[0][step].first = first;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  points[0][step].second = second;</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }</div>
|
||||
<div class="fragment"><div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> {</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">double</span> dt = rot * 2.f * M_PI / N;</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">double</span> R = 1.f;</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">const</span> <span class="keywordtype">double</span> k1 = 1.f - k;</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> int32_t step = 0;</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#ifdef _OPENMP</span></div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor">#pragma omp for</span></div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">for</span> (step = 0; step < N; step++) {</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">double</span> t = dt * step;</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">double</span> first = R * (k1 * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a>(t) + l * k * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a>(k1 * t / k));</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">double</span> second = R * (k1 * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a>(t) - l * k * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a>(k1 * t / k));</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> points[0][step].first = first;</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> points[0][step].second = second;</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>}</div>
|
||||
<div class="ttc" id="acos_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a></div><div class="ttdeci">T cos(T... args)</div></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="asin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a></div><div class="ttdeci">T sin(T... args)</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
@@ -204,6 +201,62 @@ Here is the call graph for this function:</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a8e83a64e8443fff1e5ffdc1c299c1e99" name="a8e83a64e8443fff1e5ffdc1c299c1e99"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8e83a64e8443fff1e5ffdc1c299c1e99">◆ </a></span>test()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void spirograph::test </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Test function to save resulting points to a CSV file. </p>
|
||||
<div class="fragment"><div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> {</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> N = 500;</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">double</span> l = 0.3, k = 0.75, rot = 10.;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a> fname;</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> fname << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(3) << <span class="stringliteral">"spirograph_"</span> << l << <span class="stringliteral">"_"</span> << k << <span class="stringliteral">"_"</span> << rot</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> << <span class="stringliteral">".csv"</span>;</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a> fp(fname.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">str</a>());</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">if</span> (!fp.is_open()) {</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> perror(fname.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">str</a>().c_str());</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> exit(EXIT_FAILURE);</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array<std::pair<double, double></a>, N> points;</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_function" href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph</a>(&points, l, k, rot);</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < N; i++) {</div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> fp << points[i].first << <span class="stringliteral">","</span> << points[i].first;</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">if</span> (i < N - 1) {</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> fp << <span class="charliteral">'\n'</span>;</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> fp.close();</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>}</div>
|
||||
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
|
||||
<div class="ttc" id="abasic_ofstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a></div></div>
|
||||
<div class="ttc" id="abasic_stringstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a></div></div>
|
||||
<div class="ttc" id="anamespacespirograph_html_aeca22dbe4563358960e907a40cd3e1ac"><div class="ttname"><a href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph::spirograph</a></div><div class="ttdeci">void spirograph(std::array< std::pair< double, double >, N > *points, double l, double k, double rot)</div><div class="ttdef"><b>Definition:</b> spirograph.cpp:70</div></div>
|
||||
<div class="ttc" id="asetw_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a></div><div class="ttdeci">T setw(T... args)</div></div>
|
||||
<div class="ttc" id="astr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">std::stringstream::str</a></div><div class="ttdeci">T str(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/namespacespirograph_a8e83a64e8443fff1e5ffdc1c299c1e99_cgraph.svg" width="444" 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>
|
||||
</div><!-- contents -->
|
||||
@@ -212,7 +265,7 @@ Here is the call graph for this function:</div>
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../da/dd3/namespacespirograph.html">spirograph</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>
|
||||
<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.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<map id="spirograph::test" name="spirograph::test">
|
||||
<area shape="rect" id="node1" title="Test function to save resulting points to a CSV file." alt="" coords="5,107,119,133"/>
|
||||
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="176,5,313,32"/>
|
||||
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="168,56,321,83"/>
|
||||
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setw.html#" title=" " alt="" coords="207,107,282,133"/>
|
||||
<area shape="rect" id="node5" href="$da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" title=" " alt="" coords="167,157,323,184"/>
|
||||
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_stringstream/str.html#" title=" " alt="" coords="173,208,316,235"/>
|
||||
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/cos.html#" title=" " alt="" coords="371,132,439,159"/>
|
||||
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sin.html#" title=" " alt="" coords="373,183,437,209"/>
|
||||
</map>
|
||||
@@ -0,0 +1 @@
|
||||
eee4f4748f64ee50700e9f09c03af832
|
||||
@@ -0,0 +1,127 @@
|
||||
<?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.49.0 (20210828.1703)
|
||||
-->
|
||||
<!-- Title: spirograph::test Pages: 1 -->
|
||||
<svg width="333pt" height="180pt"
|
||||
viewBox="0.00 0.00 333.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>spirograph::test</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-176 329,-176 329,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Test function to save resulting points to a CSV file.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-76.5 0,-95.5 85,-95.5 85,-76.5 0,-76.5"/>
|
||||
<text text-anchor="middle" x="42.5" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::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/basic_ofstream/close.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="128,-152.5 128,-171.5 231,-171.5 231,-152.5 128,-152.5"/>
|
||||
<text text-anchor="middle" x="179.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M54.31,-95.69C68.65,-108.13 95.18,-129.67 121,-143 125.22,-145.18 129.73,-147.18 134.31,-148.99"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="133.13,-152.29 143.72,-152.47 135.55,-145.72 133.13,-152.29"/>
|
||||
</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/basic_ofstream/is_open.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="122,-114.5 122,-133.5 237,-133.5 237,-114.5 122,-114.5"/>
|
||||
<text text-anchor="middle" x="179.5" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M77.57,-95.59C94.91,-100.47 116.2,-106.46 134.75,-111.68"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="133.87,-115.07 144.44,-114.41 135.77,-108.34 133.87,-115.07"/>
|
||||
</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/io/manip/setw.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="151.5,-76.5 151.5,-95.5 207.5,-95.5 207.5,-76.5 151.5,-76.5"/>
|
||||
<text text-anchor="middle" x="179.5" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::setw</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M85.11,-86C102.94,-86 123.62,-86 140.98,-86"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="141.3,-89.5 151.3,-86 141.3,-82.5 141.3,-89.5"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" target="_top" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="121,-38.5 121,-57.5 238,-57.5 238,-38.5 121,-38.5"/>
|
||||
<text text-anchor="middle" x="179.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::spirograph</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M77.57,-76.41C94.91,-71.53 116.2,-65.54 134.75,-60.32"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="135.77,-63.66 144.44,-57.59 133.87,-56.93 135.77,-63.66"/>
|
||||
</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/io/basic_stringstream/str.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="126,-0.5 126,-19.5 233,-19.5 233,-0.5 126,-0.5"/>
|
||||
<text text-anchor="middle" x="179.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::stringstream::str</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M54.31,-76.31C68.65,-63.87 95.18,-42.33 121,-29 125.22,-26.82 129.73,-24.82 134.31,-23.01"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="135.55,-26.28 143.72,-19.53 133.13,-19.71 135.55,-26.28"/>
|
||||
</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/numeric/math/cos.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="274,-57.5 274,-76.5 325,-76.5 325,-57.5 274,-57.5"/>
|
||||
<text text-anchor="middle" x="299.5" y="-64.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::cos</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node5->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M238.12,-57.28C246.9,-58.69 255.73,-60.11 263.82,-61.42"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="263.53,-64.91 273.96,-63.05 264.64,-58 263.53,-64.91"/>
|
||||
</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/numeric/math/sin.html#" xlink:title=" ">
|
||||
<polygon fill="white" stroke="black" points="275.5,-19.5 275.5,-38.5 323.5,-38.5 323.5,-19.5 275.5,-19.5"/>
|
||||
<text text-anchor="middle" x="299.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sin</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node5->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node5->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M238.12,-38.72C247.52,-37.21 256.96,-35.69 265.5,-34.31"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="266.09,-37.76 275.4,-32.72 264.97,-30.85 266.09,-37.76"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
@@ -1,7 +1,7 @@
|
||||
<?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)
|
||||
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
|
||||
-->
|
||||
<!-- Title: spirograph::spirograph Pages: 1 -->
|
||||
<svg width="212pt" height="66pt"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |