Mercurial > octave-libgccjit
view liboctave/sparse-sort.cc @ 8951:5bce1357edd6
Fix conversion from PermMatrix to SparseMatrix.
From 76c98628f1943d583d5813321ec0a3c684d7ac84 Mon Sep 17 00:00:00 2001
Date: Tue, 10 Mar 2009 14:12:59 -0400
The result was transposed and missing its values. Also add a test case.
Signed-off-by: Jason Riedy <jason@acm.org>
---
liboctave/ChangeLog | 6 ++++++
liboctave/dSparse.cc | 7 +++++--
test/ChangeLog | 4 ++++
test/test_diag_perm.m | 9 +++++++++
4 files changed, 24 insertions(+), 2 deletions(-)
author | Jason Riedy <jason@acm.org> |
---|---|
date | Tue, 10 Mar 2009 15:44:11 -0400 |
parents | eb63fbe60fab |
children | 4c0cdbe0acca |
line wrap: on
line source
/* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 David Bateman Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Andy Adler This file is part of Octave. Octave is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Octave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Octave; see the file COPYING. If not, see <http://www.gnu.org/licenses/>. */ #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <cassert> #include <cstring> #include "oct-sort.cc" #include "quit.h" #include "sparse-sort.h" // A simple class and instantiation of the octave merge sort class // to sort sparse data before matrix creation. This is significantly // faster than using octave_qsort. bool octave_sparse_sidxl_comp (octave_sparse_sort_idxl* i, octave_sparse_sort_idxl* j) { octave_idx_type tmp = i->c - j->c; if (tmp < 0) return true; else if (tmp > 0) return false; return (i->r < j->r); } template class octave_sort<octave_sparse_sort_idxl *>; // Need to know the original order of the sorted indexes in // sparse assignments, and this class does that bool octave_idx_vector_comp (octave_idx_vector_sort* i, octave_idx_vector_sort* j) { return (i->i < j->i); } template class octave_sort<octave_idx_vector_sort *>; /* ;;; Local Variables: *** ;;; mode: C++ *** ;;; End: *** */