annotate liboctave/util/oct-sparse.h @ 21229:a83e7a384ee0

create and install a subset of config.h in octave-config.h * mk-octave-config-h.sh: New file. * Makefile.am (EXTRA_DIST): Add mk-octave-config.h.sh to the list. (octinclude_HEADERS): Add octave-config.h to the list. (octave-config.h): New rule. * common.mk (do_subst_config_vals, do_subst_cross_config_vals): Don't substitute unused ENABLE options. * configure.ac: Note the reason for using oct-conf-post.in.h. Add OCTAVE_ prefix to ENABLE_BOUNDS_CHECK ENABLE_ATOMIC_REFCOUNT, ENABLE_64, ENABLE_OPENMP, and ENABLE_FLOAT_TRUNCATE in calls to AC_DEFINE. Change all uses. * oct-conf-post.in.h: Define HAVE_OCTAVE_DEPRECATED_ATTR instead of HAVE_ATTR_DEPRECATED. Likewise for HAVE_ATTR_NORETURN and HAVE_ATTR_UNUSED. Change all uses.
author John W. Eaton <jwe@octave.org>
date Mon, 08 Feb 2016 17:30:29 -0500
parents f7d1050b9b53
children 1473547f50f5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
1 /*
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
2
19697
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19207
diff changeset
3 Copyright (C) 2005-2015 David Bateman
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
4
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
6
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6662
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6662
diff changeset
10 option) any later version.
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
11
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
15 for more details.
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
16
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6662
diff changeset
18 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6662
diff changeset
19 <http://www.gnu.org/licenses/>.
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
20
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
21 */
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
22
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 19756
diff changeset
23 #if ! defined (octave_oct_sparse_h)
17822
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17744
diff changeset
24 #define octave_oct_sparse_h 1
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
25
7619
56012914972a Add the amd function
David Bateman <dbateman@free.fr>
parents: 7036
diff changeset
26 #if defined (HAVE_SUITESPARSE_AMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
27 # include <suitesparse/amd.h>
7619
56012914972a Add the amd function
David Bateman <dbateman@free.fr>
parents: 7036
diff changeset
28 #elif defined (HAVE_UFSPARSE_AMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
29 # include <ufsparse/amd.h>
7619
56012914972a Add the amd function
David Bateman <dbateman@free.fr>
parents: 7036
diff changeset
30 #elif defined (HAVE_AMD_AMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
31 # include <amd/amd.h>
7619
56012914972a Add the amd function
David Bateman <dbateman@free.fr>
parents: 7036
diff changeset
32 #elif defined (HAVE_AMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
33 # include <amd.h>
7619
56012914972a Add the amd function
David Bateman <dbateman@free.fr>
parents: 7036
diff changeset
34 #endif
56012914972a Add the amd function
David Bateman <dbateman@free.fr>
parents: 7036
diff changeset
35
6231
82021cf7e53a [project @ 2007-01-08 19:53:35 by dbateman]
dbateman
parents: 6186
diff changeset
36 #if defined (HAVE_SUITESPARSE_UMFPACK_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
37 # include <suitesparse/umfpack.h>
6186
237a7f535bbc [project @ 2006-11-28 20:13:39 by dbateman]
dbateman
parents: 5648
diff changeset
38 #elif defined (HAVE_UFSPARSE_UMFPACK_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
39 # include <ufsparse/umfpack.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
40 #elif defined (HAVE_UMFPACK_UMFPACK_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
41 # include <umfpack/umfpack.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
42 #elif defined (HAVE_UMFPACK_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
43 # include <umfpack.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
44 #endif
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
45
6231
82021cf7e53a [project @ 2007-01-08 19:53:35 by dbateman]
dbateman
parents: 6186
diff changeset
46 #if defined (HAVE_SUITESPARSE_COLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
47 # include <suitesparse/colamd.h>
6186
237a7f535bbc [project @ 2006-11-28 20:13:39 by dbateman]
dbateman
parents: 5648
diff changeset
48 #elif defined (HAVE_UFSPARSE_COLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
49 # include <ufsparse/colamd.h>
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5518
diff changeset
50 #elif defined (HAVE_COLAMD_COLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
51 # include <colamd/colamd.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
52 #elif defined (HAVE_COLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
53 # include <colamd.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
54 #endif
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
55
6231
82021cf7e53a [project @ 2007-01-08 19:53:35 by dbateman]
dbateman
parents: 6186
diff changeset
56 #if defined (HAVE_SUITESPARSE_CCOLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
57 # include <suitesparse/ccolamd.h>
6186
237a7f535bbc [project @ 2006-11-28 20:13:39 by dbateman]
dbateman
parents: 5648
diff changeset
58 #elif defined (HAVE_UFSPARSE_CCOLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
59 # include <ufsparse/ccolamd.h>
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5518
diff changeset
60 #elif defined (HAVE_CCOLAMD_CCOLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
61 # include <ccolamd/ccolamd.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
62 #elif defined (HAVE_CCOLAMD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
63 # include <ccolamd.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
64 #endif
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
65
6231
82021cf7e53a [project @ 2007-01-08 19:53:35 by dbateman]
dbateman
parents: 6186
diff changeset
66 #if defined (HAVE_SUITESPARSE_CHOLMOD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
67 # include <suitesparse/cholmod.h>
6186
237a7f535bbc [project @ 2006-11-28 20:13:39 by dbateman]
dbateman
parents: 5648
diff changeset
68 #elif defined (HAVE_UFSPARSE_CHOLMOD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
69 # include <ufsparse/cholmod.h>
6236
1bed9b2c26e0 [project @ 2007-01-10 18:20:18 by jwe]
jwe
parents: 6231
diff changeset
70 #elif defined (HAVE_CHOLMOD_CHOLMOD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
71 # include <cholmod/cholmod.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
72 #elif defined (HAVE_CHOLMOD_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
73 # include <cholmod.h>
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
74 #endif
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
75
6231
82021cf7e53a [project @ 2007-01-08 19:53:35 by dbateman]
dbateman
parents: 6186
diff changeset
76 #if defined (HAVE_SUITESPARSE_CS_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
77 # include <suitesparse/cs.h>
6186
237a7f535bbc [project @ 2006-11-28 20:13:39 by dbateman]
dbateman
parents: 5648
diff changeset
78 #elif defined (HAVE_UFSPARSE_CS_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
79 # include <ufsparse/cs.h>
5648
69a4f320d95a [project @ 2006-03-08 20:17:37 by dbateman]
dbateman
parents: 5610
diff changeset
80 #elif defined (HAVE_CXSPARSE_CS_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
81 # include <cxsparse/cs.h>
5648
69a4f320d95a [project @ 2006-03-08 20:17:37 by dbateman]
dbateman
parents: 5610
diff changeset
82 #elif defined (HAVE_CS_H)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
83 # include <cs.h>
5610
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5518
diff changeset
84 #endif
9761b7d24e9e [project @ 2006-02-09 09:12:02 by dbateman]
dbateman
parents: 5518
diff changeset
85
6231
82021cf7e53a [project @ 2007-01-08 19:53:35 by dbateman]
dbateman
parents: 6186
diff changeset
86 #if (defined (HAVE_SUITESPARSE_CHOLMOD_H) \
6186
237a7f535bbc [project @ 2006-11-28 20:13:39 by dbateman]
dbateman
parents: 5648
diff changeset
87 || defined (HAVE_UFSPARSE_CHOLMOD_H) \
6236
1bed9b2c26e0 [project @ 2007-01-10 18:20:18 by jwe]
jwe
parents: 6231
diff changeset
88 || defined (HAVE_CHOLMOD_CHOLMOD_H) \
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
89 || defined (HAVE_CHOLMOD_H))
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21213
diff changeset
90 # if defined (OCTAVE_ENABLE_64)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
91 # define CHOLMOD_NAME(name) cholmod_l_ ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
92 # else
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
93 # define CHOLMOD_NAME(name) cholmod_ ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
94 # endif
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
95 #endif
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
96
21160
b5b531ba93ce build: Use configure-time test to check CXSparse version.
Rik <rik@octave.org>
parents: 21152
diff changeset
97 // Cope with new SuiteSparse versions
b5b531ba93ce build: Use configure-time test to check CXSparse version.
Rik <rik@octave.org>
parents: 21152
diff changeset
98
19207
4d460b124be3 Fix compilation error when building without SuiteSparse
Mike Miller <mtmiller@ieee.org>
parents: 19139
diff changeset
99 #if defined (SUITESPARSE_VERSION)
21213
f7d1050b9b53 maint: Clean up various usages of #ifdef.
Rik <rik@octave.org>
parents: 21210
diff changeset
100 # if (SUITESPARSE_VERSION >= SUITESPARSE_VER_CODE (4, 3))
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
101 # define SUITESPARSE_NAME(name) SuiteSparse_ ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
102 # define SUITESPARSE_ASSIGN_FPTR(f_name, f_var, f_assign) (SuiteSparse_config.f_name = f_assign)
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
103 # define SUITESPARSE_ASSIGN_FPTR2(f_name, f_var, f_assign) (SuiteSparse_config.f_name = SUITESPARSE_NAME (f_assign))
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
104 # else
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
105 # define SUITESPARSE_ASSIGN_FPTR(f_name, f_var, f_assign) (f_var = f_assign)
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
106 # define SUITESPARSE_ASSIGN_FPTR2(f_name, f_var, f_assign) (f_var = CHOLMOD_NAME (f_assign))
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
107 # endif
5512
7c8767d0ffc0 [project @ 2005-10-27 02:20:17 by jwe]
jwe
parents:
diff changeset
108 #endif
19139
afd6179d2616 allow building with new version of SuiteSparse (bug #43063)
John W. Eaton <jwe@octave.org>
parents: 17822
diff changeset
109
21176
791dcb32b657 revamp sparse QR factorizatino classes
John W. Eaton <jwe@octave.org>
parents: 21160
diff changeset
110 #if defined (HAVE_CXSPARSE)
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21213
diff changeset
111 # if defined (OCTAVE_ENABLE_64)
21177
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
112 # define CXSPARSE_DNAME(name) cs_dl ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
113 # define CXSPARSE_ZNAME(name) cs_cl ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
114 # else
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
115 # define CXSPARSE_DNAME(name) cs_di ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
116 # define CXSPARSE_ZNAME(name) cs_ci ## name
a10f60e13243 style fixes in liboctave/numeric directory
John W. Eaton <jwe@octave.org>
parents: 21176
diff changeset
117 # endif
19139
afd6179d2616 allow building with new version of SuiteSparse (bug #43063)
John W. Eaton <jwe@octave.org>
parents: 17822
diff changeset
118 #endif
21176
791dcb32b657 revamp sparse QR factorizatino classes
John W. Eaton <jwe@octave.org>
parents: 21160
diff changeset
119
21210
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
120 #if defined (HAVE_UMFPACK)
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21213
diff changeset
121 # if defined (OCTAVE_ENABLE_64)
21210
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
122 # define UMFPACK_DNAME(name) umfpack_dl_ ## name
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
123 # define UMFPACK_ZNAME(name) umfpack_zl_ ## name
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
124 # else
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
125 # define UMFPACK_DNAME(name) umfpack_di_ ## name
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
126 # define UMFPACK_ZNAME(name) umfpack_zi_ ## name
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
127 # endif
21176
791dcb32b657 revamp sparse QR factorizatino classes
John W. Eaton <jwe@octave.org>
parents: 21160
diff changeset
128 #endif
21210
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
129
4f7d3989c462 move UMFPACK_DNAME and UMFPACK_ZNAME macros to oct-sparse.h
John W. Eaton <jwe@octave.org>
parents: 21177
diff changeset
130 #endif