1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
--- Demo/Makefile.am 1969-12-31 19:00:00.000000000 -0500
+++ Demo/Makefile.am 2009-10-22 23:42:08.000000000 -0400
@@ -0,0 +1,78 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include
+
+LDADD = $(top_builddir)/Source/libspqr.la \
+ $(CHOLMOD_LIBS) $(AMD_LIBS) $(CAMD_LIBS) \
+ $(COLAMD_LIBS) $(CCOLAMD_LIBS) \
+ $(METIS_LIBS) $(BLAS_LIBS) $(LAPACK_LIBS) $(TBB_LIBS)
+
+check_PROGRAMS = \
+ qrsimple qrsimplec \
+ qrdemo qrdemoc
+
+qrsimple_SOURCES = qrsimple.cpp
+qrsimplec = qrsimplec.c
+qrsimplec_CFLAGS = -ansi
+qrdemo_SOURCES = qrdemo.cpp
+qrdemoc_SOURCES = qrdemoc.c
+qrdemoc_CFLAGS = -ansi
+
+
+check-local: $(check_PROGRAMS)
+ ./qrsimple < $(top_srcdir)/Matrix/ash219.mtx || exit 1
+ ./qrsimplec < $(top_srcdir)/Matrix/ash219.mtx || exit 1
+ ./qrsimple < $(top_srcdir)/Matrix/west0067.mtx || exit 1
+ ./qrsimplec < $(top_srcdir)/Matrix/west0067.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/a2.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/r2.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/a04.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/a2.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/west0067.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/c2.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/a0.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/lfat5b.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/bfwa62.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/LFAT5.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/b1_ss.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/bcspwr01.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/lpi_galenet.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/lpi_itest6.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/ash219.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/a4.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/s32.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/c32.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/lp_share1b.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/a1.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/GD06_theory.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/GD01_b.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/Tina_AskCal_perm.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/Tina_AskCal.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/GD98_a.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/Ragusa16.mtx || exit 1
+ ./qrdemo < $(top_srcdir)/Matrix/young1c.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/a2.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/r2.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/a04.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/a2.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/west0067.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/c2.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/a0.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/lfat5b.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/bfwa62.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/LFAT5.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/b1_ss.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/bcspwr01.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/lpi_galenet.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/lpi_itest6.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/ash219.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/a4.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/s32.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/c32.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/lp_share1b.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/a1.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/GD06_theory.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/GD01_b.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/Tina_AskCal_perm.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/Tina_AskCal.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/GD98_a.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/Ragusa16.mtx || exit 1
+ ./qrdemoc < $(top_srcdir)/Matrix/young1c.mtx || exit 1
--- Include/Makefile.am 1969-12-31 19:00:00.000000000 -0500
+++ Include/Makefile.am 2009-10-22 23:42:08.000000000 -0400
@@ -0,0 +1,5 @@
+include_HEADERS = \
+ spqr.hpp \
+ SuiteSparseQR_C.h \
+ SuiteSparseQR_definitions.h \
+ SuiteSparseQR.hpp
--- Makefile.am 1969-12-31 19:00:00.000000000 -0500
+++ Makefile.am 2009-10-22 23:42:08.000000000 -0400
@@ -0,0 +1,2 @@
+SUBDIRS = Include Source Demo
+EXTRA_DIST = README.txt
--- Source/Makefile.am 1969-12-31 19:00:00.000000000 -0500
+++ Source/Makefile.am 2009-10-22 23:43:03.000000000 -0400
@@ -0,0 +1,48 @@
+AM_CPPFLAGS=-I$(top_srcdir)/Include
+
+lib_LTLIBRARIES = libspqr.la
+
+libspqr_la_SOURCES = \
+ spqr_rmap.cpp \
+ SuiteSparseQR_C.cpp \
+ SuiteSparseQR_expert.cpp \
+ spqr_parallel.cpp \
+ spqr_kernel.cpp \
+ spqr_analyze.cpp \
+ spqr_assemble.cpp \
+ spqr_cpack.cpp \
+ spqr_csize.cpp \
+ spqr_fcsize.cpp \
+ spqr_debug.cpp \
+ spqr_front.cpp \
+ spqr_factorize.cpp \
+ spqr_freenum.cpp \
+ spqr_freesym.cpp \
+ spqr_freefac.cpp \
+ spqr_fsize.cpp \
+ spqr_maxcolnorm.cpp \
+ spqr_rconvert.cpp \
+ spqr_rcount.cpp \
+ spqr_rhpack.cpp \
+ spqr_rsolve.cpp \
+ spqr_stranspose1.cpp \
+ spqr_stranspose2.cpp \
+ spqr_hpinv.cpp \
+ spqr_1fixed.cpp \
+ spqr_1colamd.cpp \
+ SuiteSparseQR.cpp \
+ spqr_1factor.cpp \
+ spqr_cumsum.cpp \
+ spqr_shift.cpp \
+ spqr_happly.cpp \
+ spqr_panel.cpp \
+ spqr_happly_work.cpp \
+ SuiteSparseQR_qmult.cpp \
+ spqr_trapezoidal.cpp \
+ spqr_larftb.cpp \
+ spqr_append.cpp \
+ spqr_type.cpp \
+ spqr_tol.cpp
+
+libspqr_la_CPPFLAGS = $(AM_CPPFLAGS) $(METIS_CFLAGS) $(TBB_CFLAGS) $(LAPACK_CFLAGS)
+libspqr_la_LIBADD = $(METIS_LIBS) $(TBB_LIBS) $(LAPACK_LIBS)
--- configure.ac 1969-12-31 19:00:00.000000000 -0500
+++ configure.ac 2009-10-22 23:42:32.000000000 -0400
@@ -0,0 +1,55 @@
+AC_PREREQ(2.59)
+AC_INIT(spqr, 1.2, davis@cise.ufl.edu)
+AM_INIT_AUTOMAKE([foreign])
+AC_CONFIG_SRCDIR([Source/spqr_kernel.cpp])
+AM_INIT_AUTOMAKE([foreign])
+
+AC_PROG_LIBTOOL
+AC_PROG_CXX
+AC_LANG(C++)
+
+AC_CHECK_LIB(m, sqrt)
+AC_CHECK_LIB(lapack,zlarft_)
+AC_CHECK_HEADERS(UFconfig.h)
+AC_CHECK_HEADERS(cholmod.h)
+AC_CHECK_LIB(cholmod, cholmod_solve, [], \
+ [AC_MSG_ERROR([Cannot find libcholmod])])
+
+AC_ARG_WITH(metis,
+ [AC_HELP_STRING([--with-metis],
+ [Use METIS for partitioning])],
+ [with_metis=$withval],
+ [with_metis="yes"])
+if test x$with_metis = xyes; then
+ PKG_PROG_PKG_CONFIG
+ if test -n "$PKG_CONFIG"; then
+ PKG_CHECK_MODULES([metis], [metis])
+ else
+ AC_CHECK_HEADERS(metis.h)
+ AC_CHECK_LIB(metis, METIS_NodeND, [METIS_LIBS=-lmetis], \
+ [AC_MSG_ERROR([Cannot find libmetis])])
+ fi
+ AC_DEFINE(NPARTITION)
+fi
+AM_CONDITIONAL([METIS], [test x$with_metis = xyes])
+
+AC_ARG_WITH(tbb,
+ [AC_HELP_STRING([--with-tbb],
+ [Use Intel Threading Building Block for multithreading])],
+ [with_tbb=$withval],
+ [with_tbb="yes"])
+if test x$with_tbb = xyes; then
+ AC_CHECK_HEADERS(tbb/task.h)
+ TBB_CFLAGS=""
+ TBB_LIBS="-ltbb"
+ AC_SUBST(TBB_CFLAGS)
+ AC_SUBST(TBB_LIBS)
+ AC_DEFINE(HAVE_TBB)
+fi
+AM_CONDITIONAL([WITH_TBB], [test x$with_tbb = xyes])
+
+AC_CONFIG_FILES([Makefile
+ Source/Makefile
+ Include/Makefile
+ Demo/Makefile])
+AC_OUTPUT
|