Mercurial > hg > octave-nkf
annotate liboctave/operators/Sparse-op-decls.h @ 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 |
---|---|
19461
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
1 /* |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
2 |
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19461
diff
changeset
|
3 Copyright (C) 2004-2015 David Bateman |
19461
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
4 Copyright (C) 1998-2004 Andy Adler |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
5 Copyright (C) 2008 Jaroslav Hajek |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
6 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
7 This file is part of Octave. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
8 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
9 Octave is free software; you can redistribute it and/or modify it |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
10 under the terms of the GNU General Public License as published by the |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
11 Free Software Foundation; either version 3 of the License, or (at your |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
12 option) any later version. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
13 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
14 Octave is distributed in the hope that it will be useful, but WITHOUT |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
17 for more details. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
18 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
19 You should have received a copy of the GNU General Public License |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
20 along with Octave; see the file COPYING. If not, see |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
21 <http://www.gnu.org/licenses/>. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
22 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
23 */ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
24 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 #if !defined (octave_Sparse_op_decls_h) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
26 #define octave_Sparse_op_decls_h 1 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
27 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 class SparseBoolMatrix; |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
30 #define SPARSE_BIN_OP_DECL(R, OP, X, Y, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
31 extern API R OP (const X&, const Y&) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
32 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
33 #define SPARSE_CMP_OP_DECL(OP, X, Y, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
34 extern API SparseBoolMatrix OP (const X&, const Y&) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
35 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
36 #define SPARSE_BOOL_OP_DECL(OP, X, Y, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 extern API SparseBoolMatrix OP (const X&, const Y&) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
38 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 // sparse matrix by scalar operations. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
40 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 #define SPARSE_SMS_BIN_OP_DECLS(R1, R2, M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 SPARSE_BIN_OP_DECL (R1, operator +, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 SPARSE_BIN_OP_DECL (R1, operator -, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 SPARSE_BIN_OP_DECL (R2, operator *, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 SPARSE_BIN_OP_DECL (R2, operator /, M, S, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
46 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
47 #define SPARSE_SMS_CMP_OP_DECLS(M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
48 SPARSE_CMP_OP_DECL (mx_el_lt, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
49 SPARSE_CMP_OP_DECL (mx_el_le, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 SPARSE_CMP_OP_DECL (mx_el_ge, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 SPARSE_CMP_OP_DECL (mx_el_gt, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 SPARSE_CMP_OP_DECL (mx_el_eq, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 SPARSE_CMP_OP_DECL (mx_el_ne, M, S, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
55 #define SPARSE_SMS_EQNE_OP_DECLS(M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 SPARSE_CMP_OP_DECL (mx_el_eq, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
57 SPARSE_CMP_OP_DECL (mx_el_ne, M, S, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
58 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
59 #define SPARSE_SMS_BOOL_OP_DECLS(M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
60 SPARSE_BOOL_OP_DECL (mx_el_and, M, S, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
61 SPARSE_BOOL_OP_DECL (mx_el_or, M, S, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
62 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
63 #define SPARSE_SMS_OP_DECLS(R1, R2, M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
64 SPARSE_SMS_BIN_OP_DECLS (R1, R2, M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
65 SPARSE_SMS_CMP_OP_DECLS (M, S, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
66 SPARSE_SMS_BOOL_OP_DECLS (M, S, API) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
67 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
68 // scalar by sparse matrix operations. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
69 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
70 #define SPARSE_SSM_BIN_OP_DECLS(R1, R2, S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
71 SPARSE_BIN_OP_DECL (R1, operator +, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
72 SPARSE_BIN_OP_DECL (R1, operator -, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
73 SPARSE_BIN_OP_DECL (R2, operator *, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
74 SPARSE_BIN_OP_DECL (R2, operator /, S, M, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
75 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
76 #define SPARSE_SSM_CMP_OP_DECLS(S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
77 SPARSE_CMP_OP_DECL (mx_el_lt, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
78 SPARSE_CMP_OP_DECL (mx_el_le, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
79 SPARSE_CMP_OP_DECL (mx_el_ge, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
80 SPARSE_CMP_OP_DECL (mx_el_gt, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
81 SPARSE_CMP_OP_DECL (mx_el_eq, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
82 SPARSE_CMP_OP_DECL (mx_el_ne, S, M, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
83 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
84 #define SPARSE_SSM_EQNE_OP_DECLS(S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
85 SPARSE_CMP_OP_DECL (mx_el_eq, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
86 SPARSE_CMP_OP_DECL (mx_el_ne, S, M, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
87 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
88 #define SPARSE_SSM_BOOL_OP_DECLS(S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
89 SPARSE_BOOL_OP_DECL (mx_el_and, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
90 SPARSE_BOOL_OP_DECL (mx_el_or, S, M, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
91 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
92 #define SPARSE_SSM_OP_DECLS(R1, R2, S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
93 SPARSE_SSM_BIN_OP_DECLS (R1, R2, S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
94 SPARSE_SSM_CMP_OP_DECLS (S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
95 SPARSE_SSM_BOOL_OP_DECLS (S, M, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
96 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
97 // sparse matrix by sparse matrix operations. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
98 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
99 #define SPARSE_SMSM_BIN_OP_DECLS(R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
100 SPARSE_BIN_OP_DECL (R1, operator +, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
101 SPARSE_BIN_OP_DECL (R1, operator -, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
102 SPARSE_BIN_OP_DECL (R2, product, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
103 SPARSE_BIN_OP_DECL (R2, quotient, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
104 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
105 #define SPARSE_SMSM_CMP_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
106 SPARSE_CMP_OP_DECL (mx_el_lt, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
107 SPARSE_CMP_OP_DECL (mx_el_le, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
108 SPARSE_CMP_OP_DECL (mx_el_ge, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
109 SPARSE_CMP_OP_DECL (mx_el_gt, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
110 SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
111 SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
112 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
113 #define SPARSE_SMSM_EQNE_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
114 SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
115 SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
116 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
117 #define SPARSE_SMSM_BOOL_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
118 SPARSE_BOOL_OP_DECL (mx_el_and, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
119 SPARSE_BOOL_OP_DECL (mx_el_or, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
120 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
121 #define SPARSE_SMSM_OP_DECLS(R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
122 SPARSE_SMSM_BIN_OP_DECLS (R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
123 SPARSE_SMSM_CMP_OP_DECLS (M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
124 SPARSE_SMSM_BOOL_OP_DECLS (M1, M2, API) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
125 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
126 // matrix by sparse matrix operations. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
127 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
128 #define SPARSE_MSM_BIN_OP_DECLS(R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
129 SPARSE_BIN_OP_DECL (R1, operator +, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
130 SPARSE_BIN_OP_DECL (R1, operator -, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
131 SPARSE_BIN_OP_DECL (R2, product, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
132 SPARSE_BIN_OP_DECL (R2, quotient, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
133 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
134 #define SPARSE_MSM_CMP_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
135 SPARSE_CMP_OP_DECL (mx_el_lt, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
136 SPARSE_CMP_OP_DECL (mx_el_le, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
137 SPARSE_CMP_OP_DECL (mx_el_ge, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
138 SPARSE_CMP_OP_DECL (mx_el_gt, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
139 SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
140 SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
141 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
142 #define SPARSE_MSM_EQNE_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
143 SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
144 SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
145 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
146 #define SPARSE_MSM_BOOL_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
147 SPARSE_BOOL_OP_DECL (mx_el_and, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
148 SPARSE_BOOL_OP_DECL (mx_el_or, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
149 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
150 #define SPARSE_MSM_OP_DECLS(R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
151 SPARSE_MSM_BIN_OP_DECLS (R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
152 SPARSE_MSM_CMP_OP_DECLS (M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
153 SPARSE_MSM_BOOL_OP_DECLS (M1, M2, API) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
154 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
155 // sparse matrix by matrix operations. |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
156 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
157 #define SPARSE_SMM_BIN_OP_DECLS(R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
158 SPARSE_BIN_OP_DECL (R1, operator +, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
159 SPARSE_BIN_OP_DECL (R1, operator -, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
160 SPARSE_BIN_OP_DECL (R2, product, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
161 SPARSE_BIN_OP_DECL (R2, quotient, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
162 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
163 #define SPARSE_SMM_CMP_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
164 SPARSE_CMP_OP_DECL (mx_el_lt, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
165 SPARSE_CMP_OP_DECL (mx_el_le, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
166 SPARSE_CMP_OP_DECL (mx_el_ge, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
167 SPARSE_CMP_OP_DECL (mx_el_gt, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
168 SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
169 SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
170 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
171 #define SPARSE_SMM_EQNE_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
172 SPARSE_CMP_OP_DECL (mx_el_eq, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
173 SPARSE_CMP_OP_DECL (mx_el_ne, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
174 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
175 #define SPARSE_SMM_BOOL_OP_DECLS(M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
176 SPARSE_BOOL_OP_DECL (mx_el_and, M1, M2, API); \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
177 SPARSE_BOOL_OP_DECL (mx_el_or, M1, M2, API); |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
178 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
179 #define SPARSE_SMM_OP_DECLS(R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
180 SPARSE_SMM_BIN_OP_DECLS (R1, R2, M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
181 SPARSE_SMM_CMP_OP_DECLS (M1, M2, API) \ |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
182 SPARSE_SMM_BOOL_OP_DECLS (M1, M2, API) |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
183 |
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
184 #endif |