Mercurial > hg > octave-lyh
comparison liboctave/fMatrix.cc @ 8337:e02242c54c49
reuse matrix type detected in det
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 19 Nov 2008 16:55:47 +0100 |
parents | 9813c07ca946 |
children | 445d27d79f4e |
comparison
equal
deleted
inserted
replaced
8336:9813c07ca946 | 8337:e02242c54c49 |
---|---|
1257 (*current_liboctave_error_handler) ("matrix must be square"); | 1257 (*current_liboctave_error_handler) ("matrix must be square"); |
1258 else | 1258 else |
1259 { | 1259 { |
1260 int typ = mattype.type (); | 1260 int typ = mattype.type (); |
1261 | 1261 |
1262 if (typ == MatrixType::Unknown) | |
1263 typ = mattype.type (*this); | |
1264 | |
1262 if (typ == MatrixType::Lower || typ == MatrixType::Upper) | 1265 if (typ == MatrixType::Lower || typ == MatrixType::Upper) |
1263 { | 1266 { |
1264 for (octave_idx_type i = 0; i < nc; i++) | 1267 for (octave_idx_type i = 0; i < nc; i++) |
1265 retval *= elem (i,i); | 1268 retval *= elem (i,i); |
1266 } | 1269 } |
1299 | 1302 |
1300 if (info != 0) | 1303 if (info != 0) |
1301 rcon = 0.0; | 1304 rcon = 0.0; |
1302 | 1305 |
1303 for (octave_idx_type i = 0; i < nc; i++) | 1306 for (octave_idx_type i = 0; i < nc; i++) |
1304 retval *= elem (i,i); | 1307 retval *= atmp (i,i); |
1305 | 1308 |
1306 retval = retval.square (); | 1309 retval = retval.square (); |
1307 } | 1310 } |
1308 } | 1311 } |
1309 else if (typ != MatrixType::Full) | 1312 else if (typ != MatrixType::Full) |