comparison liboctave/fCMatrix.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 25bc2d31e1bf
comparison
equal deleted inserted replaced
8336:9813c07ca946 8337:e02242c54c49
1586 (*current_liboctave_error_handler) ("matrix must be square"); 1586 (*current_liboctave_error_handler) ("matrix must be square");
1587 else 1587 else
1588 { 1588 {
1589 int typ = mattype.type (); 1589 int typ = mattype.type ();
1590 1590
1591 if (typ == MatrixType::Unknown)
1592 typ = mattype.type (*this);
1593
1591 if (typ == MatrixType::Lower || typ == MatrixType::Upper) 1594 if (typ == MatrixType::Lower || typ == MatrixType::Upper)
1592 { 1595 {
1593 for (octave_idx_type i = 0; i < nc; i++) 1596 for (octave_idx_type i = 0; i < nc; i++)
1594 retval *= elem (i,i); 1597 retval *= elem (i,i);
1595 } 1598 }
1628 1631
1629 if (info != 0) 1632 if (info != 0)
1630 rcon = 0.0; 1633 rcon = 0.0;
1631 1634
1632 for (octave_idx_type i = 0; i < nc; i++) 1635 for (octave_idx_type i = 0; i < nc; i++)
1633 retval *= elem (i,i); 1636 retval *= atmp (i,i);
1634 1637
1635 retval = retval.square (); 1638 retval = retval.square ();
1636 } 1639 }
1637 } 1640 }
1638 else if (typ != MatrixType::Full) 1641 else if (typ != MatrixType::Full)