Mercurial > hg > octave-lyh
diff liboctave/SparseType.cc @ 5282:5bdc3f24cd5f
[project @ 2005-04-14 22:17:26 by dbateman]
author | dbateman |
---|---|
date | Thu, 14 Apr 2005 22:17:27 +0000 |
parents | 23b37da9fd5b |
children | d2518305564e |
line wrap: on
line diff
--- a/liboctave/SparseType.cc +++ b/liboctave/SparseType.cc @@ -688,6 +688,37 @@ typ = SparseType::Lower; } +SparseType +SparseType::transpose (void) const +{ + SparseType retval (*this); + if (typ == SparseType::Upper) + retval.typ = Lower; + else if (typ == SparseType::Permuted_Upper) + { + int *tmp = retval.row_perm; + retval.row_perm = retval.col_perm; + retval.col_perm = tmp; + retval.typ = Lower; + } + else if (typ == SparseType::Lower) + retval.typ = Upper; + else if (typ == SparseType::Permuted_Upper) + { + int *tmp = retval.row_perm; + retval.row_perm = retval.col_perm; + retval.col_perm = tmp; + retval.typ = Upper; + } + else if (typ == SparseType::Banded) + { + retval.upper_band = lower_band; + retval.lower_band = upper_band; + } + + return retval; +} + /* ;;; Local Variables: *** ;;; mode: C++ ***