Mercurial > hg > octave-nkf
annotate liboctave/array/Array-i.cc @ 20809:ffc6cdcd02c5 stable
Fix segfault when complex double matrix calls ZGETRF (bug #45577).
* CMatrix.cc (finverse, determinant, rcond, fsolve): Calculate norm of matrix
and if it is NaN, skip calling ZGETRF in LAPACK and set info to non-zero value
to signal an error.
author | Rik <rik@octave.org> |
---|---|
date | Sat, 10 Oct 2015 16:46:00 -0700 |
parents | 4197fc428c7d |
children |
rev | line source |
---|---|
881 | 1 /* |
2 | |
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19590
diff
changeset
|
3 Copyright (C) 1994-2015 John W. Eaton |
881 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
7016 | 9 Free Software Foundation; either version 3 of the License, or (at your |
10 option) any later version. | |
881 | 11 |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
881 | 20 |
21 */ | |
22 | |
2006 | 23 #ifdef HAVE_CONFIG_H |
24 #include <config.h> | |
25 #endif | |
26 | |
4902 | 27 #include "oct-inttypes.h" |
28 | |
881 | 29 // Instantiate Arrays of integer values. |
30 | |
31 #include "Array.h" | |
32 #include "Array.cc" | |
8700 | 33 |
34 #define INLINE_ASCENDING_SORT | |
35 #define INLINE_DESCENDING_SORT | |
7433 | 36 #include "oct-sort.cc" |
37 | |
19590
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
38 template class OCTAVE_API octave_sort<int>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
39 template class OCTAVE_API octave_sort<long>; |
7442 | 40 #if defined (HAVE_LONG_LONG_INT) |
19590
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
41 template class OCTAVE_API octave_sort<long long>; |
7442 | 42 #endif |
881 | 43 |
8721
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
44 INSTANTIATE_ARRAY (int, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
45 INSTANTIATE_ARRAY (long, OCTAVE_API); |
7442 | 46 #if defined (HAVE_LONG_LONG_INT) |
8721
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
47 INSTANTIATE_ARRAY (long long, OCTAVE_API); |
7442 | 48 #endif |
1574 | 49 |
19590
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
50 template class OCTAVE_API octave_sort<octave_int8>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
51 template class OCTAVE_API octave_sort<octave_int16>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
52 template class OCTAVE_API octave_sort<octave_int32>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
53 template class OCTAVE_API octave_sort<octave_int64>; |
7433 | 54 |
8721
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
55 INSTANTIATE_ARRAY (octave_int8, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
56 INSTANTIATE_ARRAY (octave_int16, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
57 INSTANTIATE_ARRAY (octave_int32, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
58 INSTANTIATE_ARRAY (octave_int64, OCTAVE_API); |
4902 | 59 |
19590
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
60 template class OCTAVE_API octave_sort<octave_uint8>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
61 template class OCTAVE_API octave_sort<octave_uint16>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
62 template class OCTAVE_API octave_sort<octave_uint32>; |
fb09907f4e49
Remove single line makro INSTANTIATE_ARRAY_SORT.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
17744
diff
changeset
|
63 template class OCTAVE_API octave_sort<octave_uint64>; |
7433 | 64 |
8721
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
65 INSTANTIATE_ARRAY (octave_uint8, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
66 INSTANTIATE_ARRAY (octave_uint16, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
67 INSTANTIATE_ARRAY (octave_uint32, OCTAVE_API); |
e9cb742df9eb
imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents:
8700
diff
changeset
|
68 INSTANTIATE_ARRAY (octave_uint64, OCTAVE_API); |
4902 | 69 |
1989 | 70 #include "DiagArray2.h" |
71 #include "DiagArray2.cc" | |
72 | |
6108 | 73 template class OCTAVE_API DiagArray2<int>; |