Changeset 437 for library/bdm/math/chmat.cpp
- Timestamp:
- 07/28/09 15:31:57 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/math/chmat.cpp
r434 r437 17 17 mat chmat::to_mat() const {mat F=Ch.T() *Ch;return F;}; 18 18 void chmat::mult_sym ( const mat &C ) { 19 it_error ( "not implemented" ); 19 it_assert_debug(C.cols()==dim, "Wrong dimension of U"); 20 if(!qr(Ch*C.T(), Ch)) {it_warning("QR unstable in chmat mult_sym");} 20 21 }; 21 22 void chmat::mult_sym ( const mat &C , chmat &U ) const { 22 mat Z=C*Ch;23 U.Ch= chol(Z*Z.T());23 it_assert_debug(C.cols()==U.dim, "Wrong dimension of U"); 24 if(!qr(Ch*C.T(), U.Ch)) {it_warning("QR unstable in chmat mult_sym");} 24 25 }; 25 26 void chmat::mult_sym_t ( const mat &C ) { 26 it_error ( "not implemented" ); 27 it_assert_debug(C.rows()==dim, "Wrong dimension of U"); 28 if(!qr(Ch*C, Ch)) {it_warning("QR unstable in chmat mult_sym");} 27 29 }; 28 30 void chmat::mult_sym_t ( const mat &C, chmat &U ) const { 29 it_error ( "not implemented" ); 31 it_assert_debug(C.rows()==U.dim, "Wrong dimension of U"); 32 if(!qr(Ch*C, U.Ch)) {it_warning("QR unstable in chmat mult_sym");} 30 33 }; 31 34 double chmat::logdet() const {