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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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