|
|
|
|
@@ -0,0 +1,994 @@
|
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
|
<head>
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
|
|
|
<meta name="generator" content="Doxygen 1.8.18"/>
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
|
|
|
<title>Algorithms_in_C++: numerical_methods/ordinary_least_squares_regressor.cpp File Reference</title>
|
|
|
|
|
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
|
|
|
|
<script type="text/javascript" src="../../jquery.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../../dynsections.js"></script>
|
|
|
|
|
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
|
|
|
|
|
<script type="text/javascript" src="../../resize.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../../navtreedata.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../../navtree.js"></script>
|
|
|
|
|
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
|
|
|
|
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../../search/search.js"></script>
|
|
|
|
|
<script type="text/x-mathjax-config">
|
|
|
|
|
MathJax.Hub.Config({
|
|
|
|
|
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
|
|
|
|
jax: ["input/TeX","output/HTML-CSS"],
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
|
|
|
|
|
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
|
|
|
<div id="titlearea">
|
|
|
|
|
<table cellspacing="0" cellpadding="0">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr style="height: 56px;">
|
|
|
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
|
|
|
<div id="projectname">Algorithms_in_C++
|
|
|
|
|
 <span id="projectnumber">1.0.0</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="projectbrief">Set of algorithms implemented in C++.</div>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- end header part -->
|
|
|
|
|
<!-- Generated by Doxygen 1.8.18 -->
|
|
|
|
|
<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');
|
|
|
|
|
/* @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 */
|
|
|
|
|
$(function() {
|
|
|
|
|
initMenu('../../',true,false,'search.php','Search');
|
|
|
|
|
$(document).ready(function() { init_search(); });
|
|
|
|
|
});
|
|
|
|
|
/* @license-end */</script>
|
|
|
|
|
<div id="main-nav"></div>
|
|
|
|
|
</div><!-- top -->
|
|
|
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
|
|
|
<div id="nav-tree">
|
|
|
|
|
<div id="nav-tree-contents">
|
|
|
|
|
<div id="nav-sync" class="sync"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
|
|
|
class="ui-resizable-handle">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
|
|
|
$(document).ready(function(){initNavTree('dc/d38/ordinary__least__squares__regressor_8cpp.html','../../'); initResizable(); });
|
|
|
|
|
/* @license-end */
|
|
|
|
|
</script>
|
|
|
|
|
<div id="doc-content">
|
|
|
|
|
<!-- window showing the filter options -->
|
|
|
|
|
<div id="MSearchSelectWindow"
|
|
|
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
|
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
|
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
|
|
|
<div id="MSearchResultsWindow">
|
|
|
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
|
|
|
name="MSearchResults" id="MSearchResults">
|
|
|
|
|
</iframe>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="header">
|
|
|
|
|
<div class="summary">
|
|
|
|
|
<a href="#func-members">Functions</a> </div>
|
|
|
|
|
<div class="headertitle">
|
|
|
|
|
<div class="title">ordinary_least_squares_regressor.cpp File Reference</div> </div>
|
|
|
|
|
</div><!--header-->
|
|
|
|
|
<div class="contents">
|
|
|
|
|
|
|
|
|
|
<p>Linear regression example using <a href="https://en.wikipedia.org/wiki/Ordinary_least_squares">Ordinary least squares</a>
|
|
|
|
|
<a href="#details">More...</a></p>
|
|
|
|
|
<div class="textblock"><code>#include <iomanip></code><br />
|
|
|
|
|
<code>#include <iostream></code><br />
|
|
|
|
|
<code>#include <vector></code><br />
|
|
|
|
|
</div><div class="textblock"><div class="dynheader">
|
|
|
|
|
Include dependency graph for ordinary_least_squares_regressor.cpp:</div>
|
|
|
|
|
<div class="dyncontent">
|
|
|
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/d4b/ordinary__least__squares__regressor_8cpp__incl.svg" width="256" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div><table class="memberdecls">
|
|
|
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
|
|
|
Functions</h2></td></tr>
|
|
|
|
|
<tr class="memitem:a98eb5807f21b783c341cab402ced6732"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a98eb5807f21b783c341cab402ced6732"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a98eb5807f21b783c341cab402ced6732">operator<<</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &out, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &v)</td></tr>
|
|
|
|
|
<tr class="separator:a98eb5807f21b783c341cab402ced6732"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:aa799b4cec1681219887d89d037cfab50"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:aa799b4cec1681219887d89d037cfab50"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#aa799b4cec1681219887d89d037cfab50">operator<<</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &out, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &v)</td></tr>
|
|
|
|
|
<tr class="separator:aa799b4cec1681219887d89d037cfab50"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a4921874435266592b222e3f2eda0e01f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a4921874435266592b222e3f2eda0e01f"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4921874435266592b222e3f2eda0e01f">is_square</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &A)</td></tr>
|
|
|
|
|
<tr class="separator:a4921874435266592b222e3f2eda0e01f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:ab6171f4db68a5e50ae0f3500a63acd26"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:ab6171f4db68a5e50ae0f3500a63acd26"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#ab6171f4db68a5e50ae0f3500a63acd26">operator*</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &A, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &B)</td></tr>
|
|
|
|
|
<tr class="separator:ab6171f4db68a5e50ae0f3500a63acd26"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a64d9dd5c5816d6d907b00e5f4b0372a5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a64d9dd5c5816d6d907b00e5f4b0372a5"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a64d9dd5c5816d6d907b00e5f4b0372a5">operator*</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &A, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &B)</td></tr>
|
|
|
|
|
<tr class="separator:a64d9dd5c5816d6d907b00e5f4b0372a5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a9b2b5da35a6ba8ae203c33739ef0b91d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a9b2b5da35a6ba8ae203c33739ef0b91d"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a9b2b5da35a6ba8ae203c33739ef0b91d">operator*</a> (float const scalar, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &A)</td></tr>
|
|
|
|
|
<tr class="separator:a9b2b5da35a6ba8ae203c33739ef0b91d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:aecef32c2a4f39a3f7398949256d180a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:aecef32c2a4f39a3f7398949256d180a6"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#aecef32c2a4f39a3f7398949256d180a6">operator*</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &A, float const scalar)</td></tr>
|
|
|
|
|
<tr class="separator:aecef32c2a4f39a3f7398949256d180a6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a30acf52af3184bc22274234ef5a73536"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a30acf52af3184bc22274234ef5a73536"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a30acf52af3184bc22274234ef5a73536">operator/</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &A, float const scalar)</td></tr>
|
|
|
|
|
<tr class="separator:a30acf52af3184bc22274234ef5a73536"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a31be3fe36e76b87d5616ff8e7918cd24"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a31be3fe36e76b87d5616ff8e7918cd24"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a31be3fe36e76b87d5616ff8e7918cd24">operator-</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &A, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &B)</td></tr>
|
|
|
|
|
<tr class="separator:a31be3fe36e76b87d5616ff8e7918cd24"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a67249e31221231cf3aaf3cfd870372d0"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a67249e31221231cf3aaf3cfd870372d0"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a67249e31221231cf3aaf3cfd870372d0">operator+</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &A, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &B)</td></tr>
|
|
|
|
|
<tr class="separator:a67249e31221231cf3aaf3cfd870372d0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a98ab8f75d981088369b89b8be2182483"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a98ab8f75d981088369b89b8be2182483"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a98ab8f75d981088369b89b8be2182483">get_inverse</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &A)</td></tr>
|
|
|
|
|
<tr class="separator:a98ab8f75d981088369b89b8be2182483"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a889f9de199fa793497c864d8e493af05"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a889f9de199fa793497c864d8e493af05"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a889f9de199fa793497c864d8e493af05">get_transpose</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &A)</td></tr>
|
|
|
|
|
<tr class="separator:a889f9de199fa793497c864d8e493af05"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a38ff1d954e9b7de93eb20e2dd101a045"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a38ff1d954e9b7de93eb20e2dd101a045"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a38ff1d954e9b7de93eb20e2dd101a045">fit_OLS_regressor</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const &Y)</td></tr>
|
|
|
|
|
<tr class="separator:a38ff1d954e9b7de93eb20e2dd101a045"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:a4bcaaf41c66da4d3a471dacef133def7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
|
|
|
<tr class="memitem:a4bcaaf41c66da4d3a471dacef133def7"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4bcaaf41c66da4d3a471dacef133def7">predict_OLS_regressor</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const &X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > const &beta)</td></tr>
|
|
|
|
|
<tr class="separator:a4bcaaf41c66da4d3a471dacef133def7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
|
|
|
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</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>Linear regression example using <a href="https://en.wikipedia.org/wiki/Ordinary_least_squares">Ordinary least squares</a> </p>
|
|
|
|
|
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala">Krishna Vedala</a> Program that gets the number of data samples and number of features per sample along with output per sample. It applies OLS regression to compute the regression output for additional test data samples. </dd></dl>
|
|
|
|
|
</div><h2 class="groupheader">Function Documentation</h2>
|
|
|
|
|
<a id="a38ff1d954e9b7de93eb20e2dd101a045"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a38ff1d954e9b7de93eb20e2dd101a045">◆ </a></span>fit_OLS_regressor()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><float> fit_OLS_regressor </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>X</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>Y</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>Perform Ordinary Least Squares curve fit. This operation is defined as </p><p class="formulaDsp">
|
|
|
|
|
\[\beta = \left(X^TXX^T\right)Y\]
|
|
|
|
|
</p>
|
|
|
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
|
|
|
<table class="params">
|
|
|
|
|
<tr><td class="paramname">X</td><td>feature matrix with rows representing sample vector of features </td></tr>
|
|
|
|
|
<tr><td class="paramname">Y</td><td>known regression value for each sample </td></tr>
|
|
|
|
|
</table>
|
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<dl class="section return"><dt>Returns</dt><dd>fitted regression model polynomial coefficients </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// NxF</span></div>
|
|
|
|
|
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<T></a>> X2 = X;</div>
|
|
|
|
|
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < X2.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++)</div>
|
|
|
|
|
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="comment">// add Y-intercept -> Nx(F+1)</span></div>
|
|
|
|
|
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  X2[i].push_back(1);</div>
|
|
|
|
|
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="comment">// (F+1)xN</span></div>
|
|
|
|
|
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<T></a>> Xt = <a class="code" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a889f9de199fa793497c864d8e493af05">get_transpose</a>(X2);</div>
|
|
|
|
|
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="comment">// (F+1)x(F+1)</span></div>
|
|
|
|
|
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<T></a>> tmp = <a class="code" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a98ab8f75d981088369b89b8be2182483">get_inverse</a>(Xt * X2);</div>
|
|
|
|
|
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// (F+1)xN</span></div>
|
|
|
|
|
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<float></a>> out = tmp * Xt;</div>
|
|
|
|
|
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// cout << endl</span></div>
|
|
|
|
|
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// << "Projection matrix: " << X2 * out << endl;</span></div>
|
|
|
|
|
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// Fx1,1 -> (F+1)^th element is the independent constant</span></div>
|
|
|
|
|
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> out * Y;</div>
|
|
|
|
|
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a38ff1d954e9b7de93eb20e2dd101a045_cgraph.svg" width="428" height="164"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a98ab8f75d981088369b89b8be2182483"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a98ab8f75d981088369b89b8be2182483">◆ </a></span>get_inverse()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><float> > get_inverse </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em></td><td>)</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>Get matrix inverse using Row-trasnformations. Given matrix must be a square and non-singular. </p><dl class="section return"><dt>Returns</dt><dd>inverse matrix </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// Assuming A is square matrix</span></div>
|
|
|
|
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordtype">size_t</span> N = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<float></a>> inverse(N);</div>
|
|
|
|
|
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N; row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// preallocatae a resultant identity matrix</span></div>
|
|
|
|
|
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  inverse[row] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a>(N);</div>
|
|
|
|
|
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col < N; col++)</div>
|
|
|
|
|
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  inverse[row][col] = (row == col) ? 1.f : 0.f;</div>
|
|
|
|
|
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4921874435266592b222e3f2eda0e01f">is_square</a>(A)) {</div>
|
|
|
|
|
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"A must be a square matrix!"</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="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> inverse;</div>
|
|
|
|
|
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// preallocatae a temporary matrix identical to A</span></div>
|
|
|
|
|
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<float></a>> temp(N);</div>
|
|
|
|
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N; row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> v(N);</div>
|
|
|
|
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col < N; col++)</div>
|
|
|
|
|
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  v[col] = <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(A[row][col]);</div>
|
|
|
|
|
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  temp[row] = v;</div>
|
|
|
|
|
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// start transformations</span></div>
|
|
|
|
|
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N; row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row2 = row; row2 < N && temp[row][row] == 0; row2++) {</div>
|
|
|
|
|
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">// this to ensure diagonal elements are not 0</span></div>
|
|
|
|
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  temp[row] = temp[row] + temp[row2];</div>
|
|
|
|
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  inverse[row] = inverse[row] + inverse[row2];</div>
|
|
|
|
|
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col2 = row; col2 < N && temp[row][row] == 0; col2++) {</div>
|
|
|
|
|
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">// this to further ensure diagonal elements are not 0</span></div>
|
|
|
|
|
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row2 = 0; row2 < N; row2++) {</div>
|
|
|
|
|
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  temp[row2][row] = temp[row2][row] + temp[row2][col2];</div>
|
|
|
|
|
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  inverse[row2][row] = inverse[row2][row] + inverse[row2][col2];</div>
|
|
|
|
|
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span> (temp[row][row] == 0) {</div>
|
|
|
|
|
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">// Probably a low-rank matrix and hence singular</span></div>
|
|
|
|
|
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"Low-rank matrix, no inverse!"</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="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> inverse;</div>
|
|
|
|
|
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="comment">// set diagonal to 1</span></div>
|
|
|
|
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordtype">float</span> divisor = <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(temp[row][row]);</div>
|
|
|
|
|
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  temp[row] = temp[row] / divisor;</div>
|
|
|
|
|
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  inverse[row] = inverse[row] / divisor;</div>
|
|
|
|
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// Row transformations</span></div>
|
|
|
|
|
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row2 = 0; row2 < N; row2++) {</div>
|
|
|
|
|
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (row2 == row)</div>
|
|
|
|
|
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">continue</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordtype">float</span> factor = temp[row2][row];</div>
|
|
|
|
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  temp[row2] = temp[row2] - factor * temp[row];</div>
|
|
|
|
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  inverse[row2] = inverse[row2] - factor * inverse[row];</div>
|
|
|
|
|
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">return</span> inverse;</div>
|
|
|
|
|
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a98ab8f75d981088369b89b8be2182483_cgraph.svg" width="227" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a889f9de199fa793497c864d8e493af05"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a889f9de199fa793497c864d8e493af05">◆ </a></span>get_transpose()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><T> > get_transpose </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em></td><td>)</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>matrix transpose </p><dl class="section return"><dt>Returns</dt><dd>resultant matrix </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<T></a>> result(A[0].size());</div>
|
|
|
|
|
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < A[0].<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<T></a> v(A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>());</div>
|
|
|
|
|
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col < A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); col++) v[col] = A[col][row];</div>
|
|
|
|
|
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  result[row] = v;</div>
|
|
|
|
|
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> }</div>
|
|
|
|
|
</div><!-- fragment -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a4921874435266592b222e3f2eda0e01f"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4921874435266592b222e3f2eda0e01f">◆ </a></span>is_square()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="mlabels">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="mlabels-left">
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname">bool is_square </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em></td><td>)</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="mlabels-right">
|
|
|
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>function to check if given matrix is a square matrix </p><dl class="section return"><dt>Returns</dt><dd>1 if true, 0 if false </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// Assuming A is square matrix</span></div>
|
|
|
|
|
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">size_t</span> N = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < N; i++)</div>
|
|
|
|
|
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (A[i].size() != N)</div>
|
|
|
|
|
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div>
|
|
|
|
|
</div><!-- fragment -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">◆ </a></span>main()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname">int main </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramname"></td><td>)</td>
|
|
|
|
|
<td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>main function </p>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordtype">size_t</span> N, F;</div>
|
|
|
|
|
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter number of features: "</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">// number of features = columns</span></div>
|
|
|
|
|
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> F;</div>
|
|
|
|
|
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter number of samples: "</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// number of samples = rows</span></div>
|
|
|
|
|
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> N;</div>
|
|
|
|
|
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<float></a>> <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>(N);</div>
|
|
|
|
|
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> Y(N);</div>
|
|
|
|
|
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
|
|
|
|
|
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  << <span class="stringliteral">"Enter training data. Per sample, provide features ad one output."</span></div>
|
|
|
|
|
<div class="line"><a name="l00372"></a><span class="lineno"> 372</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="l00373"></a><span class="lineno"> 373</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> rows = 0; rows < N; rows++) {</div>
|
|
|
|
|
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> v(F);</div>
|
|
|
|
|
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Sample# "</span> << rows + 1 << <span class="stringliteral">": "</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> cols = 0; cols < F; cols++)</div>
|
|
|
|
|
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="comment">// get the F features</span></div>
|
|
|
|
|
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> v[cols];</div>
|
|
|
|
|
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[rows] = v;</div>
|
|
|
|
|
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="comment">// get the corresponding output</span></div>
|
|
|
|
|
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> Y[rows];</div>
|
|
|
|
|
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> beta = <a class="code" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a38ff1d954e9b7de93eb20e2dd101a045">fit_OLS_regressor</a>(<a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>, Y);</div>
|
|
|
|
|
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <span class="stringliteral">"beta:"</span> << beta << <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="l00387"></a><span class="lineno"> 387</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordtype">size_t</span> T;</div>
|
|
|
|
|
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter number of test samples: "</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="comment">// number of test sample inputs</span></div>
|
|
|
|
|
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> T;</div>
|
|
|
|
|
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<float></a>> data2(T);</div>
|
|
|
|
|
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="comment">// vector<float> Y2(T);</span></div>
|
|
|
|
|
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> rows = 0; rows < T; rows++) {</div>
|
|
|
|
|
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Sample# "</span> << rows + 1 << <span class="stringliteral">": "</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> v(F);</div>
|
|
|
|
|
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> cols = 0; cols < F; cols++) std::cin >> v[cols];</div>
|
|
|
|
|
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  data2[rows] = v;</div>
|
|
|
|
|
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> out = <a class="code" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4bcaaf41c66da4d3a471dacef133def7">predict_OLS_regressor</a>(data2, beta);</div>
|
|
|
|
|
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> rows = 0; rows < T; rows++) <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << out[rows] << <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="l00404"></a><span class="lineno"> 404</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">return</span> 0;</div>
|
|
|
|
|
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="555" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a9b2b5da35a6ba8ae203c33739ef0b91d"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9b2b5da35a6ba8ae203c33739ef0b91d">◆ </a></span>operator*() <span class="overload">[1/4]</span></h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><float> operator* </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype">float const </td>
|
|
|
|
|
<td class="paramname"><em>scalar</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>pre-multiplication of a vector by a scalar </p><dl class="section return"><dt>Returns</dt><dd>resultant vector </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">// Number of rows in A</span></div>
|
|
|
|
|
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordtype">size_t</span> N_A = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> result(N_A);</div>
|
|
|
|
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N_A; row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  result[row] += A[row] * <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(scalar);</div>
|
|
|
|
|
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a9b2b5da35a6ba8ae203c33739ef0b91d_cgraph.svg" width="250" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="ab6171f4db68a5e50ae0f3500a63acd26"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab6171f4db68a5e50ae0f3500a63acd26">◆ </a></span>operator*() <span class="overload">[2/4]</span></h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><T> > operator* </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>B</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>Matrix multiplication such that if A is size (mxn) and B is of size (pxq) then the multiplication is defined only when n = p and the resultant matrix is of size (mxq)</p>
|
|
|
|
|
<dl class="section return"><dt>Returns</dt><dd>resultant matrix </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// Number of rows in A</span></div>
|
|
|
|
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">size_t</span> N_A = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// Number of columns in B</span></div>
|
|
|
|
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">size_t</span> N_B = B[0].<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::vector<T></a>> result(N_A);</div>
|
|
|
|
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (A[0].size() != B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()) {</div>
|
|
|
|
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"Number of columns in A != Number of rows in B ("</span></div>
|
|
|
|
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  << A[0].<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() << <span class="stringliteral">", "</span> << B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() << <span class="stringliteral">")"</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="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<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>  </div>
|
|
|
|
|
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N_A; row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<T></a> v(N_B);</div>
|
|
|
|
|
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col < N_B; col++) {</div>
|
|
|
|
|
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  v[col] = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0);</div>
|
|
|
|
|
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j < B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); j++)</div>
|
|
|
|
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  v[col] += A[row][j] * B[j][col];</div>
|
|
|
|
|
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  result[row] = v;</div>
|
|
|
|
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_ab6171f4db68a5e50ae0f3500a63acd26_cgraph.svg" width="206" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a64d9dd5c5816d6d907b00e5f4b0372a5"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a64d9dd5c5816d6d907b00e5f4b0372a5">◆ </a></span>operator*() <span class="overload">[3/4]</span></h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><T> operator* </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>B</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>multiplication of a matrix with a column vector </p><dl class="section return"><dt>Returns</dt><dd>resultant vector </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// Number of rows in A</span></div>
|
|
|
|
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">size_t</span> N_A = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<T></a> result(N_A);</div>
|
|
|
|
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (A[0].size() != B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()) {</div>
|
|
|
|
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"Number of columns in A != Number of rows in B ("</span></div>
|
|
|
|
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  << A[0].<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() << <span class="stringliteral">", "</span> << B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() << <span class="stringliteral">")"</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="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> result;</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>  </div>
|
|
|
|
|
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N_A; row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  result[row] = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0);</div>
|
|
|
|
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j < B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); j++) result[row] += A[row][j] * B[j];</div>
|
|
|
|
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a64d9dd5c5816d6d907b00e5f4b0372a5_cgraph.svg" width="250" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="aecef32c2a4f39a3f7398949256d180a6"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aecef32c2a4f39a3f7398949256d180a6">◆ </a></span>operator*() <span class="overload">[4/4]</span></h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><float> operator* </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype">float const </td>
|
|
|
|
|
<td class="paramname"><em>scalar</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>post-multiplication of a vector by a scalar </p><dl class="section return"><dt>Returns</dt><dd>resultant vector </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="comment">// Number of rows in A</span></div>
|
|
|
|
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">size_t</span> N_A = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00151"></a><span class="lineno"> 151</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/container/vector.html">std::vector<float></a> result(N_A);</div>
|
|
|
|
|
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N_A; row++)</div>
|
|
|
|
|
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  result[row] = A[row] * <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(scalar);</div>
|
|
|
|
|
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_aecef32c2a4f39a3f7398949256d180a6_cgraph.svg" width="250" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a67249e31221231cf3aaf3cfd870372d0"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a67249e31221231cf3aaf3cfd870372d0">◆ </a></span>operator+()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><T> operator+ </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>B</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>addition of two vectors of identical lengths </p><dl class="section return"><dt>Returns</dt><dd>resultant vector </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// Number of rows in A</span></div>
|
|
|
|
|
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordtype">size_t</span> N = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<T></a> result(N);</div>
|
|
|
|
|
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span> (B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() != N) {</div>
|
|
|
|
|
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"Vector dimensions shouldbe identical!"</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="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> A;</div>
|
|
|
|
|
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N; row++) result[row] = A[row] + B[row];</div>
|
|
|
|
|
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a67249e31221231cf3aaf3cfd870372d0_cgraph.svg" width="252" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a31be3fe36e76b87d5616ff8e7918cd24"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a31be3fe36e76b87d5616ff8e7918cd24">◆ </a></span>operator-()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><T> operator- </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>B</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>subtraction of two vectors of identical lengths </p><dl class="section return"><dt>Returns</dt><dd>resultant vector </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// Number of rows in A</span></div>
|
|
|
|
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">size_t</span> N = A.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
|
|
|
|
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<T></a> result(N);</div>
|
|
|
|
|
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span> (B.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() != N) {</div>
|
|
|
|
|
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"Vector dimensions shouldbe identical!"</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="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> A;</div>
|
|
|
|
|
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < N; row++) result[row] = A[row] - B[row];</div>
|
|
|
|
|
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a31be3fe36e76b87d5616ff8e7918cd24_cgraph.svg" width="248" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a30acf52af3184bc22274234ef5a73536"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a30acf52af3184bc22274234ef5a73536">◆ </a></span>operator/()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><float> operator/ </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>A</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype">float const </td>
|
|
|
|
|
<td class="paramname"><em>scalar</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>division of a vector by a scalar </p><dl class="section return"><dt>Returns</dt><dd>resultant vector </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> (1.<a class="code" href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a> / scalar) * A;</div>
|
|
|
|
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> }</div>
|
|
|
|
|
</div><!-- fragment -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a98eb5807f21b783c341cab402ced6732"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a98eb5807f21b783c341cab402ced6732">◆ </a></span>operator<<() <span class="overload">[1/2]</span></h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>& operator<< </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> & </td>
|
|
|
|
|
<td class="paramname"><em>out</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>v</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>operator to print a matrix </p>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = 10;</div>
|
|
|
|
|
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> separator = <span class="charliteral">' '</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < v.size(); row++) {</div>
|
|
|
|
|
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col < v[row].size(); col++)</div>
|
|
|
|
|
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  out << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(width) << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a>(separator)</div>
|
|
|
|
|
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  << v[row][col];</div>
|
|
|
|
|
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  out << <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="l00029"></a><span class="lineno"> 29</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> out;</div>
|
|
|
|
|
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_a98eb5807f21b783c341cab402ced6732_cgraph.svg" width="223" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="aa799b4cec1681219887d89d037cfab50"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa799b4cec1681219887d89d037cfab50">◆ </a></span>operator<<() <span class="overload">[2/2]</span></h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>& operator<< </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> & </td>
|
|
|
|
|
<td class="paramname"><em>out</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T > const & </td>
|
|
|
|
|
<td class="paramname"><em>v</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>operator to print a vector </p>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> width = 15;</div>
|
|
|
|
|
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> separator = <span class="charliteral">' '</span>;</div>
|
|
|
|
|
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row < v.size(); row++)</div>
|
|
|
|
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  out << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(width) << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a>(separator)</div>
|
|
|
|
|
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  << v[row];</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">return</span> out;</div>
|
|
|
|
|
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</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="../../dc/d38/ordinary__least__squares__regressor_8cpp_aa799b4cec1681219887d89d037cfab50_cgraph.svg" width="223" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<a id="a4bcaaf41c66da4d3a471dacef133def7"></a>
|
|
|
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4bcaaf41c66da4d3a471dacef133def7">◆ </a></span>predict_OLS_regressor()</h2>
|
|
|
|
|
|
|
|
|
|
<div class="memitem">
|
|
|
|
|
<div class="memproto">
|
|
|
|
|
<div class="memtemplate">
|
|
|
|
|
template<typename T > </div>
|
|
|
|
|
<table class="memname">
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><float> predict_OLS_regressor </td>
|
|
|
|
|
<td>(</td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< T >> const & </td>
|
|
|
|
|
<td class="paramname"><em>X</em>, </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="paramkey"></td>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< float > const & </td>
|
|
|
|
|
<td class="paramname"><em>beta</em> </td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td></td>
|
|
|
|
|
<td>)</td>
|
|
|
|
|
<td></td><td></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div><div class="memdoc">
|
|
|
|
|
<p>Given data and OLS model coeffficients, predict regression estimates. This operation is defined as </p><p class="formulaDsp">
|
|
|
|
|
\[y_{\text{row}=i} = \sum_{j=\text{columns}}\beta_j\cdot X_{i,j}\]
|
|
|
|
|
</p>
|
|
|
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
|
|
|
<table class="params">
|
|
|
|
|
<tr><td class="paramname">X</td><td>feature matrix with rows representing sample vector of features </td></tr>
|
|
|
|
|
<tr><td class="paramname">beta</td><td>fitted regression model </td></tr>
|
|
|
|
|
</table>
|
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<dl class="section return"><dt>Returns</dt><dd>vector with regression values for each sample </dd></dl>
|
|
|
|
|
<div class="fragment"><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div>
|
|
|
|
|
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<float></a> result(X.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>());</div>
|
|
|
|
|
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  </div>
|
|
|
|
|
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> rows = 0; rows < X.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); rows++) {</div>
|
|
|
|
|
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="comment">// -> start with constant term</span></div>
|
|
|
|
|
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  result[rows] = beta[X[0].<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()];</div>
|
|
|
|
|
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> cols = 0; cols < X[0].size(); cols++)</div>
|
|
|
|
|
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  result[rows] += beta[cols] * X[rows][cols];</div>
|
|
|
|
|
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div>
|
|
|
|
|
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// Nx1</span></div>
|
|
|
|
|
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">return</span> result;</div>
|
|
|
|
|
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> }</div>
|
|
|
|
|
</div><!-- fragment -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div><!-- contents -->
|
|
|
|
|
</div><!-- doc-content -->
|
|
|
|
|
<div class="ttc" id="afibonacci__fast_8cpp_html_a3ba232425d45f9e9c0b87a8cf7ab69d9"><div class="ttname"><a href="../../d4/d32/fibonacci__fast_8cpp.html#a3ba232425d45f9e9c0b87a8cf7ab69d9">f</a></div><div class="ttdeci">uint64_t f[MAX]</div><div class="ttdef"><b>Definition:</b> fibonacci_fast.cpp:27</div></div>
|
|
|
|
|
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
|
|
|
|
|
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
|
|
|
|
<div class="ttc" id="asetfill_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a></div><div class="ttdeci">T setfill(T... args)</div></div>
|
|
|
|
|
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a4921874435266592b222e3f2eda0e01f"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4921874435266592b222e3f2eda0e01f">is_square</a></div><div class="ttdeci">bool is_square(std::vector< std::vector< T >> const &A)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:54</div></div>
|
|
|
|
|
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a></div></div>
|
|
|
|
|
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a4bcaaf41c66da4d3a471dacef133def7"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4bcaaf41c66da4d3a471dacef133def7">predict_OLS_regressor</a></div><div class="ttdeci">std::vector< float > predict_OLS_regressor(std::vector< std::vector< T >> const &X, std::vector< float > const &beta)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:339</div></div>
|
|
|
|
|
<div class="ttc" id="ahash__search_8cpp_html_a6e1a77282bc65ad359d753d25df23243"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a></div><div class="ttdeci">int data[MAX]</div><div class="ttdoc">test data</div><div class="ttdef"><b>Definition:</b> hash_search.cpp:24</div></div>
|
|
|
|
|
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a38ff1d954e9b7de93eb20e2dd101a045"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a38ff1d954e9b7de93eb20e2dd101a045">fit_OLS_regressor</a></div><div class="ttdeci">std::vector< float > fit_OLS_regressor(std::vector< std::vector< T >> const &X, std::vector< T > const &Y)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:309</div></div>
|
|
|
|
|
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
|
|
|
|
|
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a98ab8f75d981088369b89b8be2182483"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a98ab8f75d981088369b89b8be2182483">get_inverse</a></div><div class="ttdeci">std::vector< std::vector< float > > get_inverse(std::vector< std::vector< T >> const &A)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:217</div></div>
|
|
|
|
|
<div class="ttc" id="aleft_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a></div><div class="ttdeci">T left(T... args)</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="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
|
|
|
|
|
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a889f9de199fa793497c864d8e493af05"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a889f9de199fa793497c864d8e493af05">get_transpose</a></div><div class="ttdeci">std::vector< std::vector< T > > get_transpose(std::vector< std::vector< T >> const &A)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:288</div></div>
|
|
|
|
|
<!-- start footer part -->
|
|
|
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html">ordinary_least_squares_regressor.cpp</a></li>
|
|
|
|
|
<li class="footer">Generated on Fri Jun 19 2020 16:06:44 for Algorithms_in_C++ by
|
|
|
|
|
<a href="http://www.doxygen.org/index.html">
|
|
|
|
|
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|