105 | | <a name="l00069"></a><a class="code" href="classchmat.html#a4fc7f9b0539b97c414442a22f3db6e8">00069</a> <span class="keywordtype">void</span> <a class="code" href="classchmat.html#a4fc7f9b0539b97c414442a22f3db6e8" title="Access functions.">setD</a> ( <span class="keyword">const</span> vec &nD ) {<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>=diag ( sqrt(nD) );} |
106 | | <a name="l00071"></a><a class="code" href="classchmat.html#4b9271097d8317d9514c5d0d62cccb39">00071</a> <span class="keywordtype">void</span> <a class="code" href="classchmat.html#4b9271097d8317d9514c5d0d62cccb39" title="Access functions.">setD</a> ( <span class="keyword">const</span> vec &nD, <span class="keywordtype">int</span> i ) {<span class="keywordflow">for</span> ( <span class="keywordtype">int</span> j=i;j<nD.length();j++ ) {<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>( j,j ) =sqrt(nD ( j-i ));}} <span class="comment">//Fixme can be more general</span> |
107 | | <a name="l00072"></a>00072 |
108 | | <a name="l00074"></a>00074 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& <a class="code" href="classchmat.html#6a8b39fe3a28d2c8e3fc0d74141229fb" title="Operators.">operator += </a>( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ); |
109 | | <a name="l00075"></a>00075 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& <a class="code" href="classchmat.html#a8c3628a8c15eb0009e57c66fcac1a76" title="mapping of negative add operation to operators">operator -= </a>( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ) ; |
110 | | <a name="l00076"></a>00076 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& operator * ( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ); |
111 | | <a name="l00077"></a>00077 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& operator * ( <span class="keyword">const</span> <span class="keywordtype">double</span> &d ){<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>*d; <span class="keywordflow">return</span> *<span class="keyword">this</span>;}; |
112 | | <a name="l00078"></a>00078 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& operator = ( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ){<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>=A2.<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>;<a class="code" href="classsqmat.html#0abed904bdc0882373ba9adba919689d" title="dimension of the square matrix">dim</a>=A2.<a class="code" href="classsqmat.html#0abed904bdc0882373ba9adba919689d" title="dimension of the square matrix">dim</a>;<span class="keywordflow">return</span> *<span class="keyword">this</span>;} |
113 | | <a name="l00079"></a>00079 }; |
114 | | <a name="l00080"></a>00080 |
115 | | <a name="l00081"></a>00081 |
116 | | <a name="l00084"></a><a class="code" href="classchmat.html#6a8b39fe3a28d2c8e3fc0d74141229fb">00084</a> <span class="keyword">inline</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& <a class="code" href="classchmat.html#6a8b39fe3a28d2c8e3fc0d74141229fb" title="Operators.">chmat::operator += </a>( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ) {this-><span class="keyword">add</span> ( A2 );<span class="keywordflow">return</span> *<span class="keyword">this</span>;} |
117 | | <a name="l00086"></a><a class="code" href="classchmat.html#a8c3628a8c15eb0009e57c66fcac1a76">00086</a> <span class="keyword">inline</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& <a class="code" href="classchmat.html#a8c3628a8c15eb0009e57c66fcac1a76" title="mapping of negative add operation to operators">chmat::operator -= </a>( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ) {this-><span class="keyword">add</span> ( A2,-1.0 );<span class="keywordflow">return</span> *<span class="keyword">this</span>;} |
| 105 | <a name="l00069"></a><a class="code" href="classchmat.html#0e2982a88febb5e604f96505ea40bd95">00069</a> <span class="keyword">const</span> mat & <a class="code" href="classchmat.html#0e2982a88febb5e604f96505ea40bd95" title="Access function.">_Ch</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>;} |
| 106 | <a name="l00071"></a><a class="code" href="classchmat.html#a4fc7f9b0539b97c414442a22f3db6e8">00071</a> <span class="keywordtype">void</span> <a class="code" href="classchmat.html#a4fc7f9b0539b97c414442a22f3db6e8" title="Access functions.">setD</a> ( <span class="keyword">const</span> vec &nD ) {<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>=diag ( sqrt(nD) );} |
| 107 | <a name="l00073"></a><a class="code" href="classchmat.html#4c8b321967b14ed2616a2abb9498a979">00073</a> <span class="keywordtype">void</span> <a class="code" href="classchmat.html#4c8b321967b14ed2616a2abb9498a979" title="Access functions.">setCh</a> ( <span class="keyword">const</span> vec &chQ ) { |
| 108 | <a name="l00074"></a>00074 it_assert_debug(chQ.length()==<a class="code" href="classsqmat.html#0abed904bdc0882373ba9adba919689d" title="dimension of the square matrix">dim</a>*<a class="code" href="classsqmat.html#0abed904bdc0882373ba9adba919689d" title="dimension of the square matrix">dim</a>,<span class="stringliteral">""</span>); |
| 109 | <a name="l00075"></a>00075 copy_vector(dim*dim, chQ._data(), <a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>._data()); |
| 110 | <a name="l00076"></a>00076 } |
| 111 | <a name="l00078"></a><a class="code" href="classchmat.html#4b9271097d8317d9514c5d0d62cccb39">00078</a> <span class="keywordtype">void</span> <a class="code" href="classchmat.html#4b9271097d8317d9514c5d0d62cccb39" title="Access functions.">setD</a> ( <span class="keyword">const</span> vec &nD, <span class="keywordtype">int</span> i ) {<span class="keywordflow">for</span> ( <span class="keywordtype">int</span> j=i;j<nD.length();j++ ) {<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>( j,j ) =sqrt(nD ( j-i ));}} <span class="comment">//Fixme can be more general</span> |
| 112 | <a name="l00079"></a>00079 |
| 113 | <a name="l00081"></a>00081 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& <a class="code" href="classchmat.html#6a8b39fe3a28d2c8e3fc0d74141229fb" title="Operators.">operator += </a>( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ); |
| 114 | <a name="l00082"></a>00082 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& <a class="code" href="classchmat.html#a8c3628a8c15eb0009e57c66fcac1a76" title="mapping of negative add operation to operators">operator -= </a>( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ) ; |
| 115 | <a name="l00083"></a>00083 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& operator * ( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ); |
| 116 | <a name="l00084"></a>00084 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& operator * ( <span class="keyword">const</span> <span class="keywordtype">double</span> &d ){<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>*d; <span class="keywordflow">return</span> *<span class="keyword">this</span>;}; |
| 117 | <a name="l00085"></a>00085 <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a>& operator = ( <span class="keyword">const</span> <a class="code" href="classchmat.html" title="Symmetric matrix stored in square root decomposition using upper cholesky.">chmat</a> &A2 ){<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>=A2.<a class="code" href="classchmat.html#95158bb150f5e7f939168abcd577fd9c" title="Upper triangle of the cholesky matrix.">Ch</a>;<a class="code" href="classsqmat.html#0abed904bdc0882373ba9adba919689d" title="dimension of the square matrix">dim</a>=A2.<a class="code" href="classsqmat.html#0abed904bdc0882373ba9adba919689d" title="dimension of the square matrix">dim</a>;<span class="keywordflow">return</span> *<span class="keyword">this</span>;} |
| 118 | <a name="l00086"></a>00086 }; |