GNU Octave
4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
sparse-sort.cc
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 2004-2018 David Bateman
4
Copyright (C) 1998-2004 Andy Adler
5
6
This file is part of Octave.
7
8
Octave is free software: you can redistribute it and/or modify it
9
under the terms of the GNU General Public License as published by
10
the Free Software Foundation, either version 3 of the License, or
11
(at your option) any later version.
12
13
Octave is distributed in the hope that it will be useful, but
14
WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
17
18
You should have received a copy of the GNU General Public License
19
along with Octave; see the file COPYING. If not, see
20
<https://www.gnu.org/licenses/>.
21
22
*/
23
24
#if defined (HAVE_CONFIG_H)
25
# include "config.h"
26
#endif
27
28
#include <cassert>
29
#include <cstring>
30
31
#include "
oct-sort.cc
"
32
#include "
quit.h
"
33
34
#include "
sparse-sort.h
"
35
36
// A simple class and instantiation of the octave merge sort class
37
// to sort sparse data before matrix creation. This is significantly
38
// faster than using octave_qsort.
39
40
bool
41
octave_sparse_sidxl_comp
(
octave_sparse_sort_idxl
*
i
,
42
octave_sparse_sort_idxl
*j)
43
{
44
octave_idx_type
tmp
=
i
->c - j->
c
;
45
if
(
tmp
< 0)
46
return
true
;
47
else
if
(
tmp
> 0)
48
return
false
;
49
return
(
i
->r < j->
r
);
50
}
51
52
template
class
octave_sort<octave_sparse_sort_idxl *>
;
53
54
// Need to know the original order of the sorted indexes in
55
// sparse assignments, and this class does that
56
bool
57
octave_idx_vector_comp
(
octave_idx_vector_sort
*
i
,
58
octave_idx_vector_sort
*j)
59
{
60
return
(
i
->i < j->
i
);
61
}
62
63
template
class
octave_sort<octave_idx_vector_sort *>
;
sparse-sort.h
octave_sparse_sort_idxl::r
octave_idx_type r
Definition:
sparse-sort.h:35
octave_sparse_sort_idxl::c
octave_idx_type c
Definition:
sparse-sort.h:36
octave_idx_vector_sort
Definition:
sparse-sort.h:43
octave_sort
Definition:
oct-sort.h:108
oct-sort.cc
octave_sparse_sidxl_comp
bool octave_sparse_sidxl_comp(octave_sparse_sort_idxl *i, octave_sparse_sort_idxl *j)
Definition:
sparse-sort.cc:41
tmp
double tmp
Definition:
data.cc:6252
quit.h
octave_sparse_sort_idxl
Definition:
sparse-sort.h:31
octave_idx_vector_comp
bool octave_idx_vector_comp(octave_idx_vector_sort *i, octave_idx_vector_sort *j)
Definition:
sparse-sort.cc:57
octave_idx_type
i
for i
Definition:
data.cc:5264
octave_idx_vector_sort::i
octave_idx_type i
Definition:
sparse-sort.h:47
liboctave
util
sparse-sort.cc
Generated on Sat Sep 1 2018 14:01:46 for GNU Octave by
1.8.14