<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>HippoDraw Class Library</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> <link rel="shortcut icon" href="hippoApp.ico"> </head><body> <!-- Generated by Doxygen 1.6.2 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="namespaces.html"><span>Namespace List</span></a></li> <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespacehippodraw.html">hippodraw</a>::<a class="el" href="namespacehippodraw_1_1Numeric.html">Numeric</a> </div> </div> <div class="contents"> <h1>hippodraw::Numeric Namespace Reference</h1> <p>Collection of linear algebra functions. <a href="#_details">More...</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#af167b6f41b28d68a0af3813267f70be5">allocateMatrix</a> (std::vector< std::vector< double > > &A, int m, int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates a matrix of size m x n. <a href="#af167b6f41b28d68a0af3813267f70be5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a9958ce4dea9d284442d0e5239793df76">allocateVector</a> (std::vector< double > &x, int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates a vector of size n. <a href="#a9958ce4dea9d284442d0e5239793df76"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a6e34a1848b8e6e40e354f0c93e6b205d">cholBackSolve</a> (const std::vector< std::vector< double > > &L, std::vector< double > &x, const std::vector< double > &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Solves the equation LL'x = b where L is lower triangular matrix. <a href="#a6e34a1848b8e6e40e354f0c93e6b205d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#aecbdf19ba7109e37b7e89e490aaa453a">cholFactor</a> (std::vector< std::vector< double > > &A)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The subroutine which does cholesky factorization of a given Symmetric positive definite matrix (say) A. <a href="#aecbdf19ba7109e37b7e89e490aaa453a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a3c1c282c14b12b9f982f4f3f359fde67">eye</a> (std::vector< std::vector< double > > &M, int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an n x n identity matrix for M. <a href="#a3c1c282c14b12b9f982f4f3f359fde67"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#ae01374ddda83bc2216ba9df9c76d9995">gammln</a> (double xx)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates natural log of a gamma function. <a href="#ae01374ddda83bc2216ba9df9c76d9995"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a3875415d74d3aaf6f58d9e58fc061efd">gammq</a> (double a, double x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance. <a href="#a3875415d74d3aaf6f58d9e58fc061efd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a5b446e3e8ec13c8e2383ac156f0cf77f">gcf</a> (double *gammcf, double a, double x, double *gln)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance, by using continued fractions. <a href="#a5b446e3e8ec13c8e2383ac156f0cf77f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a5277079b0c65d166db9553deb8a92de2">gser</a> (double *gamser, double a, double x, double *gln)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance, by using series approximation. <a href="#a5277079b0c65d166db9553deb8a92de2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a329ce3200d86ee77e2b9721db28388ee">innerProduct</a> (const std::vector< double > &a, const std::vector< double > &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the dot or the inner product of two vectors(i.e. <a href="#a329ce3200d86ee77e2b9721db28388ee"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a87403e87bbdd901c7e42f4bf6f314d5d">invertMatrix</a> (const std::vector< std::vector< double > > &A, std::vector< std::vector< double > > &Ainv)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts a SPD matrix a to get inverse Ainv using the cholesky factorization. <a href="#a87403e87bbdd901c7e42f4bf6f314d5d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a2fc63b8199da4a6f45b4a9590fbab38f">norm</a> (const std::vector< double > &a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the two norm of the vector. <a href="#a2fc63b8199da4a6f45b4a9590fbab38f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< vector< double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#aed7c2d69196dbccacf351d0fd7a3a8f9">operator*</a> (const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes Matrix Matrix Product C=A*B. <a href="#aed7c2d69196dbccacf351d0fd7a3a8f9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#acfd13c1849567e45760bebda154cd5ac">operator*</a> (const std::vector< double > &x, const std::vector< std::vector< double > > &A)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the vector matrix product y = x'A. <a href="#acfd13c1849567e45760bebda154cd5ac"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a8469fb08c4d3dcfb5821cc5f2f07b7bd">operator*</a> (const std::vector< std::vector< double > > &A, const std::vector< double > &x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the Matrix vector product y = Ax. <a href="#a8469fb08c4d3dcfb5821cc5f2f07b7bd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< std::vector<br class="typebreak"/> < double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#af01728f5af099c71a39c34feac7a6601">operator*</a> (double a, const std::vector< std::vector< double > > &A)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the scalar matrix product B = aA. <a href="#af01728f5af099c71a39c34feac7a6601"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a25db1c1e5a7b83f6b4b0ea16793808fd">operator*</a> (double a, const std::vector< double > &x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given a scalar a and a vector x this function performs operation y = ax. <a href="#a25db1c1e5a7b83f6b4b0ea16793808fd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< vector< double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#af5a5fe133eac91d7da446fb2d76171ec">operator+</a> (const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given two matrices A and B this function performs operation C = A + B. <a href="#af5a5fe133eac91d7da446fb2d76171ec"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#aab0ab86ece0308067f6955d5fbd36349">operator+</a> (const std::vector< double > &x, const std::vector< double > &y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given two vectors x and y this function performs operation z = x + y. <a href="#aab0ab86ece0308067f6955d5fbd36349"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< vector< double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#aa94f5f18611ba6d92109a8f9ed759f89">operator-</a> (const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given two matrices A and B this function performs operation C = A - B. <a href="#aa94f5f18611ba6d92109a8f9ed759f89"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#ae4cc126d925009eba9a72fd3aeb43eee">operator-</a> (const std::vector< double > &y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given a vector y this function performs operation z = - y. <a href="#ae4cc126d925009eba9a72fd3aeb43eee"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a83635d69c8d1388f6f5857be75105d43">operator-</a> (const std::vector< double > &x, const std::vector< double > &y)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given two vectors x and y this function performs operation z = x - y. <a href="#a83635d69c8d1388f6f5857be75105d43"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< std::vector<br class="typebreak"/> < double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#af1026e0b4c90d1226b59b1c7570b6fde">operator/</a> (const std::vector< std::vector< double > > &A, double a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the scalar matrix product B = A/a. <a href="#af1026e0b4c90d1226b59b1c7570b6fde"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a1f5254a9fe7eb0973dd1eff892ac39a0">operator/</a> (const std::vector< double > &x, double a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given a scalar and a vector x this function performs operation y = x/a. <a href="#a1f5254a9fe7eb0973dd1eff892ac39a0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">vector< vector< double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#af9cb017e1c9362831eccadf6bceac017">outerProduct</a> (const std::vector< double > &a, const std::vector< double > &b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the outer product of two vectors (i.e. <a href="#af9cb017e1c9362831eccadf6bceac017"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#ab6ec8f5900d139d769c7e4aaa8e63f8a">quadraticProduct</a> (const std::vector< std::vector< double > > &A, const std::vector< double > x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates the vector-matrix-vector product x'*A*x. <a href="#ab6ec8f5900d139d769c7e4aaa8e63f8a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a7d05b2097f4cf54b1afca1c96806613e">write</a> (const std::vector< std::vector< double > > &A)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given the matrix it writes it to std stream. <a href="#a7d05b2097f4cf54b1afca1c96806613e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehippodraw_1_1Numeric.html#a339393d88f1319ad9ae63afad77ec304">write</a> (const std::vector< double > &x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given the vector it writes it to std stream. <a href="#a339393d88f1319ad9ae63afad77ec304"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Collection of linear algebra functions. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="af167b6f41b28d68a0af3813267f70be5"></a><!-- doxytag: member="hippodraw::Numeric::allocateMatrix" ref="af167b6f41b28d68a0af3813267f70be5" args="(std::vector< std::vector< double > > &A, int m, int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int allocateMatrix </td> <td>(</td> <td class="paramtype">std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocates a matrix of size m x n. </p> </div> </div> <a class="anchor" id="a9958ce4dea9d284442d0e5239793df76"></a><!-- doxytag: member="hippodraw::Numeric::allocateVector" ref="a9958ce4dea9d284442d0e5239793df76" args="(std::vector< double > &x, int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int allocateVector </td> <td>(</td> <td class="paramtype">std::vector< double > & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocates a vector of size n. </p> </div> </div> <a class="anchor" id="a6e34a1848b8e6e40e354f0c93e6b205d"></a><!-- doxytag: member="hippodraw::Numeric::cholBackSolve" ref="a6e34a1848b8e6e40e354f0c93e6b205d" args="(const std::vector< std::vector< double > > &L, std::vector< double > &x, const std::vector< double > &b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int cholBackSolve </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>L</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::vector< double > & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>b</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Solves the equation LL'x = b where L is lower triangular matrix. </p> </div> </div> <a class="anchor" id="aecbdf19ba7109e37b7e89e490aaa453a"></a><!-- doxytag: member="hippodraw::Numeric::cholFactor" ref="aecbdf19ba7109e37b7e89e490aaa453a" args="(std::vector< std::vector< double > > &A)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int cholFactor </td> <td>(</td> <td class="paramtype">std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>The subroutine which does cholesky factorization of a given Symmetric positive definite matrix (say) A. </p> <p>It over-writes A by resulting lower triangular matrix </p> <p>Referenced by <a class="el" href="BFGSFitter_8cxx_source.html#l00472">BFGSFitter::calcCovariance()</a>.</p> </div> </div> <a class="anchor" id="a3c1c282c14b12b9f982f4f3f359fde67"></a><!-- doxytag: member="hippodraw::Numeric::eye" ref="a3c1c282c14b12b9f982f4f3f359fde67" args="(std::vector< std::vector< double > > &M, int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int eye </td> <td>(</td> <td class="paramtype">std::vector< std::vector< double > > & </td> <td class="paramname"> <em>I</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Creates an n x n identity matrix for M. </p> <p>Referenced by <a class="el" href="BFGSFitter_8cxx_source.html#l00089">BFGSFitter::calcBestFit()</a>.</p> </div> </div> <a class="anchor" id="ae01374ddda83bc2216ba9df9c76d9995"></a><!-- doxytag: member="hippodraw::Numeric::gammln" ref="ae01374ddda83bc2216ba9df9c76d9995" args="(double xx)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double gammln </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>xx</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Calculates natural log of a gamma function. </p> </div> </div> <a class="anchor" id="a3875415d74d3aaf6f58d9e58fc061efd"></a><!-- doxytag: member="hippodraw::Numeric::gammq" ref="a3875415d74d3aaf6f58d9e58fc061efd" args="(double a, double x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double gammq </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>x</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance. </p> <p>It internally calls gser and gcf depending on the input range. </p> <p>Referenced by <a class="el" href="FunctionController_8cxx_source.html#l00906">FunctionController::ellipsoidNTuple()</a>.</p> </div> </div> <a class="anchor" id="a5b446e3e8ec13c8e2383ac156f0cf77f"></a><!-- doxytag: member="hippodraw::Numeric::gcf" ref="a5b446e3e8ec13c8e2383ac156f0cf77f" args="(double *gammcf, double a, double x, double *gln)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void gcf </td> <td>(</td> <td class="paramtype">double * </td> <td class="paramname"> <em>gammcf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"> <em>gln</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance, by using continued fractions. </p> </div> </div> <a class="anchor" id="a5277079b0c65d166db9553deb8a92de2"></a><!-- doxytag: member="hippodraw::Numeric::gser" ref="a5277079b0c65d166db9553deb8a92de2" args="(double *gamser, double a, double x, double *gln)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void gser </td> <td>(</td> <td class="paramtype">double * </td> <td class="paramname"> <em>gamser</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"> <em>gln</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Calculates Q, the probability that the chi2 should exceed a particilar chi2 (input) by chance, by using series approximation. </p> </div> </div> <a class="anchor" id="a329ce3200d86ee77e2b9721db28388ee"></a><!-- doxytag: member="hippodraw::Numeric::innerProduct" ref="a329ce3200d86ee77e2b9721db28388ee" args="(const std::vector< double > &a, const std::vector< double > &b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double innerProduct </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>b</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the dot or the inner product of two vectors(i.e. </p> <p>a'b) </p> <p>Referenced by <a class="el" href="BFGSFitter_8cxx_source.html#l00089">BFGSFitter::calcBestFit()</a>.</p> </div> </div> <a class="anchor" id="a87403e87bbdd901c7e42f4bf6f314d5d"></a><!-- doxytag: member="hippodraw::Numeric::invertMatrix" ref="a87403e87bbdd901c7e42f4bf6f314d5d" args="(const std::vector< std::vector< double > > &A, std::vector< std::vector< double > > &Ainv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int invertMatrix </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::vector< std::vector< double > > & </td> <td class="paramname"> <em>Ainv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Inverts a SPD matrix a to get inverse Ainv using the cholesky factorization. </p> <p>It inverts the matrix by repeatedly solving Ax = ei </p> <p>Referenced by <a class="el" href="LMFitter_8cxx_source.html#l00094">LMFitter::calcCovariance()</a>, and <a class="el" href="FunctionController_8cxx_source.html#l00906">FunctionController::ellipsoidNTuple()</a>.</p> </div> </div> <a class="anchor" id="a2fc63b8199da4a6f45b4a9590fbab38f"></a><!-- doxytag: member="hippodraw::Numeric::norm" ref="a2fc63b8199da4a6f45b4a9590fbab38f" args="(const std::vector< double > &a)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double norm </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>a</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the two norm of the vector. </p> <p>Referenced by <a class="el" href="BFGSFitter_8cxx_source.html#l00089">BFGSFitter::calcBestFit()</a>, <a class="el" href="Gaussian_8cxx_source.html#l00144">Gaussian::derivByMean()</a>, <a class="el" href="Gaussian_8cxx_source.html#l00101">Gaussian::derivByParm()</a>, <a class="el" href="Gaussian_8cxx_source.html#l00158">Gaussian::derivBySigma()</a>, <a class="el" href="Gaussian_8cxx_source.html#l00045">Gaussian::Gaussian()</a>, <a class="el" href="Novosibirsk_8cxx_source.html#l00098">Novosibirsk::initialParameters()</a>, <a class="el" href="LogNormal_8cxx_source.html#l00078">LogNormal::initialParameters()</a>, <a class="el" href="Gaussian_8cxx_source.html#l00089">Gaussian::initialParameters()</a>, <a class="el" href="LogNormal_8cxx_source.html#l00041">LogNormal::LogNormal()</a>, <a class="el" href="BinningProjector_8cxx_source.html#l00286">BinningProjector::normalize()</a>, <a class="el" href="Novosibirsk_8cxx_source.html#l00040">Novosibirsk::Novosibirsk()</a>, <a class="el" href="Novosibirsk_8cxx_source.html#l00067">Novosibirsk::operator()()</a>, <a class="el" href="LogNormal_8cxx_source.html#l00066">LogNormal::operator()()</a>, and <a class="el" href="Gaussian_8cxx_source.html#l00070">Gaussian::operator()()</a>.</p> </div> </div> <a class="anchor" id="aed7c2d69196dbccacf351d0fd7a3a8f9"></a><!-- doxytag: member="hippodraw::Numeric::operator*" ref="aed7c2d69196dbccacf351d0fd7a3a8f9" args="(const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::vector< double > > operator* </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>B</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes Matrix Matrix Product C=A*B. </p> </div> </div> <a class="anchor" id="acfd13c1849567e45760bebda154cd5ac"></a><!-- doxytag: member="hippodraw::Numeric::operator*" ref="acfd13c1849567e45760bebda154cd5ac" args="(const std::vector< double > &x, const std::vector< std::vector< double > > &A)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator* </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the vector matrix product y = x'A. </p> </div> </div> <a class="anchor" id="a8469fb08c4d3dcfb5821cc5f2f07b7bd"></a><!-- doxytag: member="hippodraw::Numeric::operator*" ref="a8469fb08c4d3dcfb5821cc5f2f07b7bd" args="(const std::vector< std::vector< double > > &A, const std::vector< double > &x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator* </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>x</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the Matrix vector product y = Ax. </p> </div> </div> <a class="anchor" id="af01728f5af099c71a39c34feac7a6601"></a><!-- doxytag: member="hippodraw::Numeric::operator*" ref="af01728f5af099c71a39c34feac7a6601" args="(double a, const std::vector< std::vector< double > > &A)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::vector< double > > operator* </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the scalar matrix product B = aA. </p> </div> </div> <a class="anchor" id="a25db1c1e5a7b83f6b4b0ea16793808fd"></a><!-- doxytag: member="hippodraw::Numeric::operator*" ref="a25db1c1e5a7b83f6b4b0ea16793808fd" args="(double a, const std::vector< double > &x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator* </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>x</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Given a scalar a and a vector x this function performs operation y = ax. </p> </div> </div> <a class="anchor" id="af5a5fe133eac91d7da446fb2d76171ec"></a><!-- doxytag: member="hippodraw::Numeric::operator+" ref="af5a5fe133eac91d7da446fb2d76171ec" args="(const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::vector< double > > operator+ </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>B</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Given two matrices A and B this function performs operation C = A + B. </p> </div> </div> <a class="anchor" id="aab0ab86ece0308067f6955d5fbd36349"></a><!-- doxytag: member="hippodraw::Numeric::operator+" ref="aab0ab86ece0308067f6955d5fbd36349" args="(const std::vector< double > &x, const std::vector< double > &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator+ </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Given two vectors x and y this function performs operation z = x + y. </p> </div> </div> <a class="anchor" id="aa94f5f18611ba6d92109a8f9ed759f89"></a><!-- doxytag: member="hippodraw::Numeric::operator-" ref="aa94f5f18611ba6d92109a8f9ed759f89" args="(const std::vector< std::vector< double > > &A, const std::vector< std::vector< double > > &B)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::vector< double > > operator- </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>B</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Given two matrices A and B this function performs operation C = A - B. </p> </div> </div> <a class="anchor" id="ae4cc126d925009eba9a72fd3aeb43eee"></a><!-- doxytag: member="hippodraw::Numeric::operator-" ref="ae4cc126d925009eba9a72fd3aeb43eee" args="(const std::vector< double > &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator- </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>y</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Given a vector y this function performs operation z = - y. </p> </div> </div> <a class="anchor" id="a83635d69c8d1388f6f5857be75105d43"></a><!-- doxytag: member="hippodraw::Numeric::operator-" ref="a83635d69c8d1388f6f5857be75105d43" args="(const std::vector< double > &x, const std::vector< double > &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator- </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Given two vectors x and y this function performs operation z = x - y. </p> </div> </div> <a class="anchor" id="af1026e0b4c90d1226b59b1c7570b6fde"></a><!-- doxytag: member="hippodraw::Numeric::operator/" ref="af1026e0b4c90d1226b59b1c7570b6fde" args="(const std::vector< std::vector< double > > &A, double a)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::vector< double > > operator/ </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the scalar matrix product B = A/a. </p> </div> </div> <a class="anchor" id="a1f5254a9fe7eb0973dd1eff892ac39a0"></a><!-- doxytag: member="hippodraw::Numeric::operator/" ref="a1f5254a9fe7eb0973dd1eff892ac39a0" args="(const std::vector< double > &x, double a)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< double > operator/ </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Given a scalar and a vector x this function performs operation y = x/a. </p> </div> </div> <a class="anchor" id="af9cb017e1c9362831eccadf6bceac017"></a><!-- doxytag: member="hippodraw::Numeric::outerProduct" ref="af9cb017e1c9362831eccadf6bceac017" args="(const std::vector< double > &a, const std::vector< double > &b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::vector< double > > outerProduct </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>b</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes the outer product of two vectors (i.e. </p> <p>C = ab') </p> <p>Referenced by <a class="el" href="BFGSFitter_8cxx_source.html#l00089">BFGSFitter::calcBestFit()</a>.</p> </div> </div> <a class="anchor" id="ab6ec8f5900d139d769c7e4aaa8e63f8a"></a><!-- doxytag: member="hippodraw::Numeric::quadraticProduct" ref="ab6ec8f5900d139d769c7e4aaa8e63f8a" args="(const std::vector< std::vector< double > > &A, const std::vector< double > x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double quadraticProduct </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< double > </td> <td class="paramname"> <em>x</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Calculates the vector-matrix-vector product x'*A*x. </p> <p>Referenced by <a class="el" href="FunctionController_8cxx_source.html#l00906">FunctionController::ellipsoidNTuple()</a>.</p> </div> </div> <a class="anchor" id="a7d05b2097f4cf54b1afca1c96806613e"></a><!-- doxytag: member="hippodraw::Numeric::write" ref="a7d05b2097f4cf54b1afca1c96806613e" args="(const std::vector< std::vector< double > > &A)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int write </td> <td>(</td> <td class="paramtype">const std::vector< std::vector< double > > & </td> <td class="paramname"> <em>A</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Given the matrix it writes it to std stream. </p> </div> </div> <a class="anchor" id="a339393d88f1319ad9ae63afad77ec304"></a><!-- doxytag: member="hippodraw::Numeric::write" ref="a339393d88f1319ad9ae63afad77ec304" args="(const std::vector< double > &x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int write </td> <td>(</td> <td class="paramtype">const std::vector< double > & </td> <td class="paramname"> <em>a</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Given the vector it writes it to std stream. </p> </div> </div> </div> <hr size="1"><address style="align: right;"><small> Generated for HippoDraw Class Library by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0> </a> </small></address> </body> </html>