Changeset 455
- Timestamp:
- 07/30/09 16:44:28 (16 years ago)
- Location:
- library
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/math/chmat.cpp
r437 r455 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_assert_debug(C. cols()==dim, "Wrong dimension of U");19 it_assert_debug(C.rows()==dim, "Wrong dimension of U"); 20 20 if(!qr(Ch*C.T(), Ch)) {it_warning("QR unstable in chmat mult_sym");} 21 21 }; 22 22 void chmat::mult_sym ( const mat &C , chmat &U ) const { 23 it_assert_debug(C. cols()==U.dim, "Wrong dimension of U");23 it_assert_debug(C.rows()==U.dim, "Wrong dimension of U"); 24 24 if(!qr(Ch*C.T(), U.Ch)) {it_warning("QR unstable in chmat mult_sym");} 25 25 }; 26 26 void chmat::mult_sym_t ( const mat &C ) { 27 it_assert_debug(C. rows()==dim, "Wrong dimension of U");27 it_assert_debug(C.cols()==dim, "Wrong dimension of U"); 28 28 if(!qr(Ch*C, Ch)) {it_warning("QR unstable in chmat mult_sym");} 29 29 }; 30 30 void chmat::mult_sym_t ( const mat &C, chmat &U ) const { 31 it_assert_debug(C. rows()==U.dim, "Wrong dimension of U");31 it_assert_debug(C.cols()==U.dim, "Wrong dimension of U"); 32 32 if(!qr(Ch*C, U.Ch)) {it_warning("QR unstable in chmat mult_sym");} 33 33 }; -
library/tests/square_mat_test.cpp
r453 r455 84 84 CHECK_CLOSE(res, sqmat2.to_mat(), epsilon); 85 85 86 mat C = randu(sz, sz-1); 87 TMatrix CAC(sz-1); 88 sqmat.mult_sym_t(C,CAC); 89 res = (C.T() * A) * C; 90 CHECK_CLOSE(res, CAC.to_mat(), epsilon); 91 86 92 sqmat2 = sqmat; 87 93 sqmat2.mult_sym_t(B);