Documentation for f1eddf4d65

This commit is contained in:
realstealthninja
2025-07-09 10:53:16 +00:00
parent e7edde96ab
commit b41207008f
2497 changed files with 31270 additions and 40283 deletions

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: ciphers::HillCipher Class Reference</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
@@ -19,7 +19,6 @@
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
@@ -60,26 +59,20 @@ window.MathJax = {
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @license-end */
$(function() { codefold.init(); });
</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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
@@ -94,10 +87,9 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.html','../../'); initResizable(true); });
/* @license-end */
$(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.html','../../','d0/dd5/classciphers_1_1_hill_cipher-members'); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
@@ -121,10 +113,6 @@ $(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.html','../../'); i
</div>
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="../../d0/dd5/classciphers_1_1_hill_cipher-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ciphers::HillCipher Class Reference</div></div>
</div><!--header-->
<div class="contents">
@@ -132,61 +120,47 @@ $(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.html','../../'); i
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Hill_cipher" target="_blank">Hill Cipher</a> algorithm.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
<tr class="heading"><td colspan="2"><h2 id="header-pub-static-methods" class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a642f70fb54cb50b00fb6df7c3f2b120e" id="r_a642f70fb54cb50b00fb6df7c3f2b120e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a> (size_t size, int limit1=0, int limit2=10)</td></tr>
<tr class="memdesc:a642f70fb54cb50b00fb6df7c3f2b120e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provide more security. Important conditions are: <br /></td></tr>
<tr class="separator:a642f70fb54cb50b00fb6df7c3f2b120e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab02c7563889bf1e363deb8e21967b706" id="r_ab02c7563889bf1e363deb8e21967b706"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; const &amp;encrypt_key)</td></tr>
<tr class="memdesc:ab02c7563889bf1e363deb8e21967b706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate decryption matrix from an encryption matrix key. <br /></td></tr>
<tr class="separator:ab02c7563889bf1e363deb8e21967b706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a405b0a28d66a61239d3565d5256f9cb5" id="r_a405b0a28d66a61239d3565d5256f9cb5"><td class="memItemLeft" align="right" valign="top">static std::pair&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a405b0a28d66a61239d3565d5256f9cb5">generate_keys</a> (size_t size, int limit1=0, int limit2=10)</td></tr>
<tr class="memdesc:a405b0a28d66a61239d3565d5256f9cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate encryption and decryption key pair. <br /></td></tr>
<tr class="separator:a405b0a28d66a61239d3565d5256f9cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8bbb6e4a5749f6008b06602d5103917" id="r_aa8bbb6e4a5749f6008b06602d5103917"><td class="memItemLeft" align="right" valign="top">static const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8bbb6e4a5749f6008b06602d5103917">encrypt_text</a> (const std::string &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;encrypt_key)</td></tr>
<tr class="memdesc:aa8bbb6e4a5749f6008b06602d5103917"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt a given text using a given key. <br /></td></tr>
<tr class="separator:aa8bbb6e4a5749f6008b06602d5103917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a427acfac1dbff3f48a2b071d449d965b" id="r_a427acfac1dbff3f48a2b071d449d965b"><td class="memItemLeft" align="right" valign="top">static const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a427acfac1dbff3f48a2b071d449d965b">decrypt_text</a> (const std::string &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;decrypt_key)</td></tr>
<tr class="memdesc:a427acfac1dbff3f48a2b071d449d965b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrypt a given text using a given key. <br /></td></tr>
<tr class="separator:a427acfac1dbff3f48a2b071d449d965b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-methods" name="pri-static-methods"></a>
<tr class="heading"><td colspan="2"><h2 id="header-pri-static-methods" class="groupheader"><a id="pri-static-methods" name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a629be41c1ab78850963e4ce14e1d11d9" id="r_a629be41c1ab78850963e4ce14e1d11d9"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a629be41c1ab78850963e4ce14e1d11d9"><td class="memTemplItemLeft" align="right" valign="top">static const T2&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a629be41c1ab78850963e4ce14e1d11d9">rand_range</a> (T1 a, T1 b)</td></tr>
<tr class="memitem:a629be41c1ab78850963e4ce14e1d11d9 template"><td class="memItemLeft" align="right" valign="top">static const T2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a629be41c1ab78850963e4ce14e1d11d9">rand_range</a> (T1 a, T1 b)</td></tr>
<tr class="memdesc:a629be41c1ab78850963e4ce14e1d11d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to generate a random integer in a given interval. <br /></td></tr>
<tr class="separator:a629be41c1ab78850963e4ce14e1d11d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a716d0313141499d16f57c0c107f04395" id="r_a716d0313141499d16f57c0c107f04395"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a716d0313141499d16f57c0c107f04395"><td class="memTemplItemLeft" align="right" valign="top">static double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a716d0313141499d16f57c0c107f04395">rand_range</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T2 &gt; *M, T1 a, T1 b)</td></tr>
<tr class="memitem:a716d0313141499d16f57c0c107f04395 template"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a716d0313141499d16f57c0c107f04395">rand_range</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T2 &gt; *M, T1 a, T1 b)</td></tr>
<tr class="memdesc:a716d0313141499d16f57c0c107f04395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function overload to fill a matrix with random integers in a given interval. <br /></td></tr>
<tr class="separator:a716d0313141499d16f57c0c107f04395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7760f3665651a0a37937c79c62f219c0" id="r_a7760f3665651a0a37937c79c62f219c0"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a7760f3665651a0a37937c79c62f219c0"><td class="memTemplItemLeft" align="right" valign="top">static const T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a7760f3665651a0a37937c79c62f219c0">gcd</a> (T a, T b)</td></tr>
<tr class="memitem:a7760f3665651a0a37937c79c62f219c0 template"><td class="memItemLeft" align="right" valign="top">static const T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7760f3665651a0a37937c79c62f219c0">gcd</a> (T a, T b)</td></tr>
<tr class="memdesc:a7760f3665651a0a37937c79c62f219c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute <a href="https://en.wikipedia.org/wiki/Greatest_common_divisor" target="_blank">GCD</a> of two integers using Euler's algorithm. <br /></td></tr>
<tr class="separator:a7760f3665651a0a37937c79c62f219c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad36cbcc7a458b3f3a2af0c4aa1126590" id="r_ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="memItemLeft" align="right" valign="top">static const std::valarray&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad36cbcc7a458b3f3a2af0c4aa1126590">mat_mul</a> (const std::valarray&lt; uint8_t &gt; &amp;<a class="el" href="../../d7/dfc/classvector.html">vector</a>, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;key)</td></tr>
<tr class="memdesc:ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="mdescLeft">&#160;</td><td class="mdescRight">helper function to perform vector multiplication with encryption or decryption matrix <br /></td></tr>
<tr class="separator:ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12f727cca9e21f9539cd74b6603adf0c" id="r_a12f727cca9e21f9539cd74b6603adf0c"><td class="memItemLeft" align="right" valign="top">static char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a12f727cca9e21f9539cd74b6603adf0c">get_idx_char</a> (const uint8_t idx)</td></tr>
<tr class="memdesc:a12f727cca9e21f9539cd74b6603adf0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the character at a given index in the <a class="el" href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a>. <br /></td></tr>
<tr class="separator:a12f727cca9e21f9539cd74b6603adf0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae77cad522fa44b8c985779a7188d2f41" id="r_ae77cad522fa44b8c985779a7188d2f41"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae77cad522fa44b8c985779a7188d2f41">get_char_idx</a> (const char ch)</td></tr>
<tr class="memdesc:ae77cad522fa44b8c985779a7188d2f41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a character in the <a class="el" href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a>. <br /></td></tr>
<tr class="separator:ae77cad522fa44b8c985779a7188d2f41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad667fa0860977f6d6d443fa1dbcd80aa" id="r_ad667fa0860977f6d6d443fa1dbcd80aa"><td class="memItemLeft" align="right" valign="top">static const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a> (const std::string &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;key)</td></tr>
<tr class="memdesc:ad667fa0860977f6d6d443fa1dbcd80aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to perform block cipher operations. The operations are identical for both encryption and decryption. <br /></td></tr>
<tr class="separator:ad667fa0860977f6d6d443fa1dbcd80aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb58750b978a93ac5e6eb29e3e570b7" id="r_a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; double &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a2eb58750b978a93ac5e6eb29e3e570b7">get_inverse</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T &gt; const &amp;A)</td></tr>
<tr class="separator:a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb58750b978a93ac5e6eb29e3e570b7 template"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2eb58750b978a93ac5e6eb29e3e570b7">get_inverse</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T &gt; const &amp;A)</td></tr>
<tr class="memitem:a63e7b8e92dff8b9260d6d21c31ecebd0" id="r_a63e7b8e92dff8b9260d6d21c31ecebd0"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63e7b8e92dff8b9260d6d21c31ecebd0">modulo</a> (int a, int b)</td></tr>
<tr class="separator:a63e7b8e92dff8b9260d6d21c31ecebd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://en.wikipedia.org/wiki/Hill_cipher" target="_blank">Hill Cipher</a> algorithm. </p>
<p class="definition">Definition at line <a class="el" href="../../d7/db9/hill__cipher_8cpp_source.html#l00082">82</a> of file <a class="el" href="../../d7/db9/hill__cipher_8cpp_source.html">hill_cipher.cpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
<a id="ad667fa0860977f6d6d443fa1dbcd80aa" name="ad667fa0860977f6d6d443fa1dbcd80aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad667fa0860977f6d6d443fa1dbcd80aa">&#9670;&#160;</a></span>codec()</h2>
@@ -197,7 +171,7 @@ Static Private Member Functions</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const std::string ciphers::HillCipher::codec </td>
<td class="memname">const std::string ciphers::HillCipher::codec </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>text</em></span>, </td>
</tr>
@@ -273,7 +247,7 @@ Static Private Member Functions</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const std::string ciphers::HillCipher::decrypt_text </td>
<td class="memname">const std::string ciphers::HillCipher::decrypt_text </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>text</em></span>, </td>
</tr>
@@ -318,7 +292,7 @@ Static Private Member Functions</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const std::string ciphers::HillCipher::encrypt_text </td>
<td class="memname">const std::string ciphers::HillCipher::encrypt_text </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>text</em></span>, </td>
</tr>
@@ -364,7 +338,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const T ciphers::HillCipher::gcd </td>
<td class="memname">const T ciphers::HillCipher::gcd </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
@@ -417,7 +391,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_decryption_key </td>
<td class="memname"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_decryption_key </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; const &amp;</td> <td class="paramname"><span class="paramname"><em>encrypt_key</em></span></td><td>)</td>
<td></td>
@@ -497,7 +471,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_encryption_key </td>
<td class="memname"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_encryption_key </td>
<td>(</td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
</tr>
@@ -574,7 +548,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::pair&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &gt; ciphers::HillCipher::generate_keys </td>
<td class="memname">std::pair&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &gt; ciphers::HillCipher::generate_keys </td>
<td>(</td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
</tr>
@@ -635,7 +609,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint8_t ciphers::HillCipher::get_char_idx </td>
<td class="memname">uint8_t ciphers::HillCipher::get_char_idx </td>
<td>(</td>
<td class="paramtype">const char</td> <td class="paramname"><span class="paramname"><em>ch</em></span></td><td>)</td>
<td></td>
@@ -682,7 +656,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static char ciphers::HillCipher::get_idx_char </td>
<td class="memname">char ciphers::HillCipher::get_idx_char </td>
<td>(</td>
<td class="paramtype">const uint8_t</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></td>
@@ -721,7 +695,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; double &gt; ciphers::HillCipher::get_inverse </td>
<td class="memname"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; double &gt; ciphers::HillCipher::get_inverse </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T &gt; const &amp;</td> <td class="paramname"><span class="paramname"><em>A</em></span></td><td>)</td>
<td></td>
@@ -813,7 +787,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const std::valarray&lt; uint8_t &gt; ciphers::HillCipher::mat_mul </td>
<td class="memname">const std::valarray&lt; uint8_t &gt; ciphers::HillCipher::mat_mul </td>
<td>(</td>
<td class="paramtype">const std::valarray&lt; uint8_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>vector</em></span>, </td>
</tr>
@@ -869,7 +843,7 @@ template&lt;typename T&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int ciphers::HillCipher::modulo </td>
<td class="memname">int ciphers::HillCipher::modulo </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
@@ -908,7 +882,7 @@ template&lt;typename T1, typename T2&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double ciphers::HillCipher::rand_range </td>
<td class="memname">double ciphers::HillCipher::rand_range </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T2 &gt; *</td> <td class="paramname"><span class="paramname"><em>M</em></span>, </td>
</tr>
@@ -975,7 +949,7 @@ template&lt;typename T1, typename T2&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const T2 ciphers::HillCipher::rand_range </td>
<td class="memname">const T2 ciphers::HillCipher::rand_range </td>
<td>(</td>
<td class="paramtype">T1</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
@@ -1024,11 +998,19 @@ template&lt;typename T1, typename T2&gt; </div>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></li><li class="navelem"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html">HillCipher</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.13.2 </li>
<li class="navelem"><a href="../../d6/d4e/namespaceciphers.html">ciphers</a></li><li class="navelem"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html">HillCipher</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.14.0 </li>
</ul>
</div>
</body>

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: dynamic_programming/house_robber.cpp File Reference</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
@@ -19,7 +19,6 @@
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
@@ -60,26 +59,20 @@ window.MathJax = {
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @license-end */
$(function() { codefold.init(); });
</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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
@@ -94,10 +87,9 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('d6/d26/house__robber_8cpp.html','../../'); initResizable(true); });
/* @license-end */
$(function(){initNavTree('d6/d26/house__robber_8cpp.html','../../',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
@@ -121,9 +113,6 @@ $(function(){initNavTree('d6/d26/house__robber_8cpp.html','../../'); initResizab
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">house_robber.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
@@ -138,38 +127,33 @@ $(function(){initNavTree('d6/d26/house__robber_8cpp.html','../../'); initResizab
</div><div class="textblock"><div class="dynheader">
Include dependency graph for house_robber.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d4/dd7/house__robber_8cpp__incl.svg" width="419" height="126"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="../../d4/dd7/house__robber_8cpp__incl.svg" width="419" height="126"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<p><a href="../../d6/d26/house__robber_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 id="header-namespaces" class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memitem:dynamic_5Fprogramming" id="r_dynamic_5Fprogramming"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></td></tr>
<tr class="memdesc:dd/d24/namespacedynamic__programming"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic Programming algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de1/namespacehouse__robber.html">house_robber</a></td></tr>
<tr class="memitem:house_5Frobber" id="r_house_5Frobber"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de1/namespacehouse__robber.html">house_robber</a></td></tr>
<tr class="memdesc:d2/de1/namespacehouse__robber"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the <a href="https://labuladong.gitbook.io/algo-en/i.-dynamic-programming/houserobber" target="_blank">House Robber</a> algorithm. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1e497c3e3f169afe5baaae6a5d40cbc8" id="r_a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="memItemLeft" align="right" valign="top">std::uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1e497c3e3f169afe5baaae6a5d40cbc8">dynamic_programming::house_robber::houseRobber</a> (const std::vector&lt; uint32_t &gt; &amp;money, const uint32_t &amp;n)</td></tr>
<tr class="memdesc:a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function that implements the House Robber algorithm using dynamic programming. <br /></td></tr>
<tr class="separator:a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://labuladong.gitbook.io/algo-en/i.-dynamic-programming/houserobber" target="_blank">House Robber Problem</a> algorithm. </p>
<p><a class="el" href="../../dd/d4f/class_solution.html">Solution</a> of House robber problem uses a dynamic programming concept that works in \(O(n)\) time and works in \(O(1)\) space. </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Swastyy" target="_blank">Swastika Gupta</a> </dd></dl>
<p class="definition">Definition in file <a class="el" href="../../d6/d26/house__robber_8cpp_source.html">house_robber.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="a1e497c3e3f169afe5baaae6a5d40cbc8" name="a1e497c3e3f169afe5baaae6a5d40cbc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e497c3e3f169afe5baaae6a5d40cbc8">&#9670;&#160;</a></span>houseRobber()</h2>
@@ -262,7 +246,7 @@ Functions</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void test </td>
<td class="memname">void test </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
@@ -325,11 +309,19 @@ Functions</h2></td></tr>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d6/d26/house__robber_8cpp.html">house_robber.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.13.2 </li>
<li class="navelem"><a href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a href="../../d6/d26/house__robber_8cpp.html">house_robber.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.14.0 </li>
</ul>
</div>
</body>

View File

@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TheAlgorithms/C++: dynamic_programming/house_robber.cpp Source File</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
@@ -19,7 +19,6 @@
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
@@ -60,26 +59,20 @@ window.MathJax = {
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @license-end */
$(function() { codefold.init(); });
</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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
@@ -94,10 +87,9 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('d6/d26/house__robber_8cpp_source.html','../../'); initResizable(true); });
/* @license-end */
$(function(){initNavTree('d6/d26/house__robber_8cpp_source.html','../../',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
@@ -217,11 +209,12 @@ $(function(){initNavTree('d6/d26/house__robber_8cpp_source.html','../../'); init
<div class="ttc" id="anamespacehouse__robber_html"><div class="ttname"><a href="../../d2/de1/namespacehouse__robber.html">house_robber</a></div><div class="ttdoc">Functions for the House Robber algorithm.</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d6/d26/house__robber_8cpp.html">house_robber.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.13.2 </li>
<li class="navelem"><a href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a href="../../d6/d26/house__robber_8cpp.html">house_robber.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.14.0 </li>
</ul>
</div>
</body>