1#######################################################################
2#  This makefile runs the test programs for the linear equation routines
3#  and the eigenvalue routines in LAPACK.  The test output files
4#  are grouped as follows:
5#
6#       SLINTST,SEIGTST  -- Single precision real test routines
7#       CLINTST,CEIGTST  -- Single precision complex test routines
8#       DLINTST,DEIGTST  -- Double precision real test routines
9#       ZLINTST,ZEIGTST  -- Double precision complex test routines
10#
11#  Test programs can be executed for all or some of the four different
12#  precisions.  Enter 'make' followed by one or more of the data types
13#  desired.
14#  Some examples:
15#       make single
16#       make single complex
17#       make single double complex complex16
18#  Alternatively, the command
19#       make
20#  without any arguments runs all eight test programs.
21#  The executable files are called:
22#       xlintsts, xlintstd, xlintstc, and xlintstz for LIN
23#       xeigtsts, xeigtstd, xeigtstc, and xeigtstz for EIG
24#  and exist in the current directory level.
25#
26#  To remove the output files after the tests have been run, enter
27#       make clean
28#
29#  To re-run specific tests after a make, enter (for example):
30#       'rm ssvd.out; make'  or:
31#       'make ssvd.out' or:
32#       'touch svd.in; make' (to re-run the single precision SVD tests.)
33#
34#       'rm *svd.out; make'  (to re-run all the SVD tests.)
35#
36#######################################################################
37
38include ../make.inc
39
40ifneq ($(strip $(VARLIB)),)
41    LAPACKLIB :=  $(VARLIB) ../$(LAPACKLIB)
42endif
43
44
45all:     single complex double complex16 singleproto doubleproto complexproto complex16proto
46
47SEIGTST= snep.out \
48         ssep.out \
49         ssvd.out \
50         sec.out \
51         sed.out \
52         sgg.out \
53         sgd.out \
54         ssb.out \
55	 ssg.out \
56         sbal.out \
57         sbak.out \
58         sgbal.out \
59         sgbak.out \
60         sbb.out \
61         sglm.out \
62         sgqr.out \
63         sgsv.out \
64         scsd.out \
65         slse.out
66
67CEIGTST= cnep.out \
68         csep.out \
69         csvd.out \
70         cec.out \
71         ced.out \
72         cgg.out \
73         cgd.out \
74         csb.out \
75	 csg.out \
76         cbal.out \
77         cbak.out \
78         cgbal.out \
79         cgbak.out \
80         cbb.out \
81         cglm.out \
82         cgqr.out \
83         cgsv.out \
84         ccsd.out \
85         clse.out
86
87DEIGTST= dnep.out \
88         dsep.out \
89         dsvd.out \
90         dec.out \
91         ded.out \
92         dgg.out \
93         dgd.out \
94         dsb.out \
95	 dsg.out \
96         dbal.out \
97         dbak.out \
98         dgbal.out \
99         dgbak.out \
100         dbb.out \
101         dglm.out \
102         dgqr.out \
103         dgsv.out \
104         dcsd.out \
105         dlse.out
106
107ZEIGTST= znep.out \
108         zsep.out \
109         zsvd.out \
110         zec.out \
111         zed.out \
112         zgg.out \
113         zgd.out \
114         zsb.out \
115	 zsg.out \
116         zbal.out \
117         zbak.out \
118         zgbal.out \
119         zgbak.out \
120         zbb.out \
121         zglm.out \
122         zgqr.out \
123         zgsv.out \
124         zcsd.out \
125         zlse.out
126
127
128SLINTST= stest.out
129
130SLINTSTPROTO= stest_rfp.out
131
132CLINTST= ctest.out
133
134CLINTSTPROTO= ctest_rfp.out
135
136DLINTST= dtest.out
137
138DLINTSTPROTO= dstest.out dtest_rfp.out
139
140ZLINTST= ztest.out
141
142ZLINTSTPROTO= zctest.out ztest_rfp.out
143
144single:         $(SLINTST) $(SEIGTST)
145complex:        $(CLINTST) $(CEIGTST)
146double:         $(DLINTST) $(DEIGTST)
147complex16:      $(ZLINTST) $(ZEIGTST)
148singleproto:    $(SLINTSTPROTO)
149complexproto:   $(CLINTSTPROTO)
150doubleproto:    $(DLINTSTPROTO)
151complex16proto: $(ZLINTSTPROTO)
152
153#
154# ======== SINGLE LIN TESTS ===========================
155
156stest.out: stest.in xlintsts
157	@echo Testing REAL LAPACK linear equation routines
158	./xlintsts < stest.in > $@ 2>&1
159#
160# ======== COMPLEX LIN TESTS ==========================
161
162ctest.out: ctest.in xlintstc
163	@echo Testing COMPLEX LAPACK linear equation routines
164	./xlintstc < ctest.in > $@ 2>&1
165#
166# ======== DOUBLE LIN TESTS ===========================
167
168dtest.out: dtest.in xlintstd
169	@echo Testing DOUBLE PRECISION LAPACK linear equation routines
170	./xlintstd < dtest.in > $@ 2>&1
171#
172# ======== COMPLEX16 LIN TESTS ========================
173
174ztest.out: ztest.in xlintstz
175	@echo Testing COMPLEX16 LAPACK linear equation routines
176	./xlintstz < ztest.in > $@ 2>&1
177#
178# ======== SINGLE-DOUBLE PROTO LIN TESTS ==============
179
180dstest.out: dstest.in xlintstds
181	@echo Testing SINGLE-DOUBLE PRECISION LAPACK prototype linear equation routines
182	./xlintstds < dstest.in > $@ 2>&1
183#
184# ======== COMPLEX-COMPLEX16 LIN TESTS ========================
185
186zctest.out: zctest.in xlintstzc
187	@echo Testing COMPLEX-COMPLEX16 LAPACK protoype linear equation routines
188	./xlintstzc < zctest.in > $@ 2>&1
189#
190# ======== SINGLE RFP LIN TESTS ========================
191
192stest_rfp.out: stest_rfp.in xlintstrfs
193	@echo Testing REAL LAPACK RFP protoype linear equation routines
194	./xlintstrfs < stest_rfp.in > $@ 2>&1
195#
196# ======== COMPLEX16 RFP LIN TESTS ========================
197
198dtest_rfp.out: dtest_rfp.in xlintstrfd
199	@echo Testing DOUBLE PRECISION LAPACK RFP protoype linear equation routines
200	./xlintstrfd < dtest_rfp.in > $@ 2>&1
201#
202# ======== COMPLEX16 RFP LIN TESTS ========================
203
204ctest_rfp.out: ctest_rfp.in xlintstrfc
205	@echo Testing COMPLEX LAPACK RFP protoype linear equation routines
206	./xlintstrfc < ctest_rfp.in > $@ 2>&1
207#
208# ======== COMPLEX16 RFP LIN TESTS ========================
209
210ztest_rfp.out: ztest_rfp.in xlintstrfz
211	@echo Testing COMPLEX16 LAPACK RFP protoype linear equation routines
212	./xlintstrfz < ztest_rfp.in > $@ 2>&1
213#
214#
215# ======== SINGLE EIG TESTS ===========================
216#
217
218snep.out: nep.in xeigtsts
219	@echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
220	./xeigtsts < nep.in > $@ 2>&1
221
222ssep.out: sep.in xeigtsts
223	@echo SEP: Testing Symmetric Eigenvalue Problem routines
224	./xeigtsts < sep.in > $@ 2>&1
225
226ssvd.out: svd.in xeigtsts
227	@echo SVD: Testing Singular Value Decomposition routines
228	./xeigtsts < svd.in > $@ 2>&1
229
230sec.out: sec.in xeigtsts
231	@echo SEC: Testing REAL Eigen Condition Routines
232	./xeigtsts < sec.in > $@ 2>&1
233
234sed.out: sed.in xeigtsts
235	@echo SEV: Testing REAL Nonsymmetric Eigenvalue Driver
236	./xeigtsts < sed.in > $@ 2>&1
237
238sgg.out: sgg.in xeigtsts
239	@echo SGG: Testing REAL Nonsymmetric Generalized Eigenvalue Problem routines
240	./xeigtsts < sgg.in > $@ 2>&1
241
242sgd.out: sgd.in xeigtsts
243	@echo SGD: Testing REAL Nonsymmetric Generalized Eigenvalue Problem driver routines
244	./xeigtsts < sgd.in > $@ 2>&1
245
246ssb.out: ssb.in xeigtsts
247	@echo SSB: Testing REAL Symmetric Eigenvalue Problem routines
248	./xeigtsts < ssb.in > $@ 2>&1
249
250ssg.out: ssg.in xeigtsts
251	@echo SSG: Testing REAL Symmetric Generalized Eigenvalue Problem routines
252	./xeigtsts < ssg.in > $@ 2>&1
253
254sbal.out: sbal.in xeigtsts
255	@echo SGEBAL: Testing the balancing of a REAL general matrix
256	./xeigtsts < sbal.in > $@ 2>&1
257
258sbak.out: sbak.in xeigtsts
259	@echo SGEBAK: Testing the back transformation of a REAL balanced matrix
260	./xeigtsts < sbak.in > $@ 2>&1
261
262sgbal.out: sgbal.in xeigtsts
263	@echo SGGBAL: Testing the balancing of a pair of REAL general matrices
264	./xeigtsts < sgbal.in > $@ 2>&1
265
266sgbak.out: sgbak.in xeigtsts
267	@echo SGGBAK: Testing the back transformation of a pair of REAL balanced matrices
268	./xeigtsts < sgbak.in > $@ 2>&1
269
270sbb.out: sbb.in xeigtsts
271	@echo SBB:  Testing banded Singular Value Decomposition routines
272	./xeigtsts < sbb.in > $@ 2>&1
273
274sglm.out: glm.in xeigtsts
275	@echo GLM: Testing Generalized Linear Regression Model routines
276	./xeigtsts < glm.in > $@ 2>&1
277
278sgqr.out: gqr.in xeigtsts
279	@echo GQR: Testing Generalized QR and RQ factorization routines
280	./xeigtsts < gqr.in > $@ 2>&1
281
282sgsv.out: gsv.in xeigtsts
283	@echo GSV: Testing Generalized Singular Value Decomposition routines
284	./xeigtsts < gsv.in > $@ 2>&1
285
286scsd.out: csd.in xeigtsts
287	@echo CSD: Testing CS Decomposition routines
288	./xeigtsts < csd.in > $@ 2>&1
289
290slse.out: lse.in xeigtsts
291	@echo LSE: Testing Constrained Linear Least Squares routines
292	./xeigtsts < lse.in > $@ 2>&1
293#
294# ======== COMPLEX EIG TESTS ===========================
295
296cnep.out: nep.in xeigtstc
297	@echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
298	./xeigtstc < nep.in > $@ 2>&1
299
300csep.out: sep.in xeigtstc
301	@echo SEP: Testing Symmetric Eigenvalue Problem routines
302	./xeigtstc < sep.in > $@ 2>&1
303
304csvd.out: svd.in xeigtstc
305	@echo SVD: Testing Singular Value Decomposition routines
306	./xeigtstc < svd.in > $@ 2>&1
307
308cec.out: cec.in xeigtstc
309	@echo CEC: Testing COMPLEX Eigen Condition Routines
310	./xeigtstc < cec.in > $@ 2>&1
311
312ced.out: ced.in xeigtstc
313	@echo CES: Testing COMPLEX Nonsymmetric Schur Form Driver
314	./xeigtstc < ced.in > $@ 2>&1
315
316cgg.out: cgg.in xeigtstc
317	@echo CGG: Testing COMPLEX Nonsymmetric Generalized Eigenvalue Problem routines
318	./xeigtstc < cgg.in > $@ 2>&1
319
320cgd.out: cgd.in xeigtstc
321	@echo CGD: Testing COMPLEX Nonsymmetric Generalized Eigenvalue Problem driver routines
322	./xeigtstc < cgd.in > $@ 2>&1
323
324csb.out: csb.in xeigtstc
325	@echo CHB: Testing Hermitian Eigenvalue Problem routines
326	./xeigtstc < csb.in > $@ 2>&1
327
328csg.out: csg.in xeigtstc
329	@echo CSG: Testing Symmetric Generalized Eigenvalue Problem routines
330	./xeigtstc < csg.in > $@ 2>&1
331
332cbal.out: cbal.in xeigtstc
333	@echo CGEBAL: Testing the balancing of a COMPLEX general matrix
334	./xeigtstc < cbal.in > $@ 2>&1
335
336cbak.out: cbak.in xeigtstc
337	@echo CGEBAK: Testing the back transformation of a COMPLEX balanced matrix
338	./xeigtstc < cbak.in > $@ 2>&1
339
340cgbal.out: cgbal.in xeigtstc
341	@echo CGGBAL: Testing the balancing of a pair of COMPLEX general matrices
342	./xeigtstc < cgbal.in > $@ 2>&1
343
344cgbak.out: cgbak.in xeigtstc
345	@echo CGGBAK: Testing the back transformation of a pair of COMPLEX balanced matrices
346	./xeigtstc < cgbak.in > $@ 2>&1
347
348cbb.out: cbb.in xeigtstc
349	@echo CBB:  Testing banded Singular Value Decomposition routines
350	./xeigtstc < cbb.in > $@ 2>&1
351
352cglm.out: glm.in xeigtstc
353	@echo GLM: Testing Generalized Linear Regression Model routines
354	./xeigtstc < glm.in > $@ 2>&1
355
356cgqr.out: gqr.in xeigtstc
357	@echo GQR: Testing Generalized QR and RQ factorization routines
358	./xeigtstc < gqr.in > $@ 2>&1
359
360cgsv.out: gsv.in xeigtstc
361	@echo GSV: Testing Generalized Singular Value Decomposition routines
362	./xeigtstc < gsv.in > $@ 2>&1
363
364ccsd.out: csd.in xeigtstc
365	@echo CSD: Testing CS Decomposition routines
366	./xeigtstc < csd.in > $@ 2>&1
367
368clse.out: lse.in xeigtstc
369	@echo LSE: Testing Constrained Linear Least Squares routines
370	./xeigtstc < lse.in > $@ 2>&1
371#
372# ======== DOUBLE EIG TESTS ===========================
373
374dnep.out: nep.in xeigtstd
375	@echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
376	./xeigtstd < nep.in > $@ 2>&1
377
378dsep.out: sep.in xeigtstd
379	@echo SEP: Testing Symmetric Eigenvalue Problem routines
380	./xeigtstd < sep.in > $@ 2>&1
381
382dsvd.out: svd.in xeigtstd
383	@echo SVD: Testing Singular Value Decomposition routines
384	./xeigtstd < svd.in > $@ 2>&1
385
386dec.out: dec.in xeigtstd
387	@echo DEC: Testing DOUBLE PRECISION Eigen Condition Routines
388	./xeigtstd < dec.in > $@ 2>&1
389
390ded.out: ded.in xeigtstd
391	@echo DEV: Testing DOUBLE PRECISION Nonsymmetric Eigenvalue Driver
392	./xeigtstd < ded.in > $@ 2>&1
393
394dgg.out: dgg.in xeigtstd
395	@echo DGG: Testing DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem routines
396	./xeigtstd < dgg.in > $@ 2>&1
397
398dgd.out: dgd.in xeigtstd
399	@echo DGD: Testing DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem driver routines
400	./xeigtstd < dgd.in > $@ 2>&1
401
402dsb.out: dsb.in xeigtstd
403	@echo DSB: Testing DOUBLE PRECISION Symmetric Eigenvalue Problem routines
404	./xeigtstd < dsb.in > $@ 2>&1
405
406dsg.out: dsg.in xeigtstd
407	@echo DSG: Testing DOUBLE PRECISION Symmetric Generalized Eigenvalue Problem routines
408	./xeigtstd < dsg.in > $@ 2>&1
409
410dbal.out: dbal.in xeigtstd
411	@echo DGEBAL: Testing the balancing of a DOUBLE PRECISION general matrix
412	./xeigtstd < dbal.in > $@ 2>&1
413
414dbak.out: dbak.in xeigtstd
415	@echo DGEBAK:  Testing the back transformation of a DOUBLE PRECISION balanced matrix
416	./xeigtstd < dbak.in > $@ 2>&1
417
418dgbal.out: dgbal.in xeigtstd
419	@echo DGGBAL: Testing the balancing of a pair of DOUBLE PRECISION general matrices
420	./xeigtstd < dgbal.in > $@ 2>&1
421
422dgbak.out: dgbak.in xeigtstd
423	@echo DGGBAK: Testing the back transformation of a pair of DOUBLE PRECISION balanced matrices
424	./xeigtstd < dgbak.in > $@ 2>&1
425
426dbb.out: dbb.in xeigtstd
427	@echo DBB:  Testing banded Singular Value Decomposition routines
428	./xeigtstd < dbb.in > $@ 2>&1
429
430dglm.out: glm.in xeigtstd
431	@echo GLM: Testing Generalized Linear Regression Model routines
432	./xeigtstd < glm.in > $@ 2>&1
433
434dgqr.out: gqr.in xeigtstd
435	@echo GQR: Testing Generalized QR and RQ factorization routines
436	./xeigtstd < gqr.in > $@ 2>&1
437
438dgsv.out: gsv.in xeigtstd
439	@echo GSV: Testing Generalized Singular Value Decomposition routines
440	./xeigtstd < gsv.in > $@ 2>&1
441
442dcsd.out: csd.in xeigtstd
443	@echo CSD: Testing CS Decomposition routines
444	./xeigtstd < csd.in > $@ 2>&1
445
446dlse.out: lse.in xeigtstd
447	@echo LSE: Testing Constrained Linear Least Squares routines
448	./xeigtstd < lse.in > $@ 2>&1
449#
450# ======== COMPLEX16 EIG TESTS ===========================
451
452znep.out: nep.in xeigtstz
453	@echo NEP: Testing Nonsymmetric Eigenvalue Problem routines
454	./xeigtstz < nep.in > $@ 2>&1
455
456zsep.out: sep.in xeigtstz
457	@echo SEP: Testing Symmetric Eigenvalue Problem routines
458	./xeigtstz < sep.in > $@ 2>&1
459
460zsvd.out: svd.in xeigtstz
461	@echo SVD: Testing Singular Value Decomposition routines
462	./xeigtstz < svd.in > $@ 2>&1
463
464zec.out: zec.in xeigtstz
465	@echo ZEC: Testing COMPLEX16 Eigen Condition Routines
466	./xeigtstz < zec.in > $@ 2>&1
467
468zed.out: zed.in xeigtstz
469	@echo ZES: Testing COMPLEX16 Nonsymmetric Schur Form Driver
470	./xeigtstz < zed.in > $@ 2>&1
471
472zgg.out: zgg.in xeigtstz
473	@echo ZGG: Testing COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem routines
474	./xeigtstz < zgg.in > $@ 2>&1
475
476zgd.out: zgd.in xeigtstz
477	@echo ZGD: Testing COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem driver routines
478	./xeigtstz < zgd.in > $@ 2>&1
479
480zsb.out: zsb.in xeigtstz
481	@echo ZHB: Testing Hermitian Eigenvalue Problem routines
482	./xeigtstz < zsb.in > $@ 2>&1
483
484zsg.out: zsg.in xeigtstz
485	@echo ZSG: Testing Symmetric Generalized Eigenvalue Problem routines
486	./xeigtstz < zsg.in > $@ 2>&1
487
488zbal.out: zbal.in xeigtstz
489	@echo ZGEBAL: Testing the balancing of a COMPLEX16 general matrix
490	./xeigtstz < zbal.in > $@ 2>&1
491
492zbak.out: zbak.in xeigtstz
493	@echo ZGEBAK: Testing the back transformation of a COMPLEX16 balanced matrix
494	./xeigtstz < zbak.in > $@ 2>&1
495
496zgbal.out: zgbal.in xeigtstz
497	@echo ZGGBAL: Testing the balancing of a pair of COMPLEX general matrices
498	./xeigtstz < zgbal.in > $@ 2>&1
499
500zgbak.out: zgbak.in xeigtstz
501	@echo ZGGBAK: Testing the back transformation of a pair of COMPLEX16 balanced matrices
502	./xeigtstz < zgbak.in > $@ 2>&1
503
504zbb.out: zbb.in xeigtstz
505	@echo ZBB: Testing banded Singular Value Decomposition routines
506	./xeigtstz < zbb.in > $@ 2>&1
507
508zglm.out: glm.in xeigtstz
509	@echo GLM: Testing Generalized Linear Regression Model routines
510	./xeigtstz < glm.in > $@ 2>&1
511
512zgqr.out: gqr.in xeigtstz
513	@echo GQR: Testing Generalized QR and RQ factorization routines
514	./xeigtstz < gqr.in > $@ 2>&1
515
516zgsv.out: gsv.in xeigtstz
517	@echo GSV: Testing Generalized Singular Value Decomposition routines
518	./xeigtstz < gsv.in > $@ 2>&1
519
520zcsd.out: csd.in xeigtstz
521	@echo CSD: Testing CS Decomposition routines
522	./xeigtstz < csd.in > $@ 2>&1
523
524zlse.out: lse.in xeigtstz
525	@echo LSE: Testing Constrained Linear Least Squares routines
526	./xeigtstz < lse.in > $@ 2>&1
527# ==============================================================================
528
529xlintsts:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
530	cd LIN ; $(MAKE) single
531
532xlintstc:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
533	cd LIN ; $(MAKE) complex
534
535xlintstd:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
536	cd LIN ; $(MAKE) double
537
538xlintstz:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
539	cd LIN ; $(MAKE) complex16
540
541xlintstrfs:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
542	cd LIN ; $(MAKE) proto-single
543
544xlintstrfc:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
545	cd LIN ; $(MAKE) proto-complex
546
547xlintstrfd:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
548	cd LIN ; $(MAKE) proto-double
549
550xlintstrfz:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
551	cd LIN ; $(MAKE) proto-complex16
552
553xlintstds:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
554	cd LIN ; $(MAKE) proto-double
555
556xlintstzc:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCLIN) $(FRC)
557	cd LIN ; $(MAKE) proto-complex16
558
559xeigtsts:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
560	cd EIG ; $(MAKE) single
561
562xeigtstc:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
563	cd EIG ; $(MAKE) complex
564
565xeigtstd:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
566	cd EIG ; $(MAKE) double
567
568xeigtstz:	../$(LAPACKLIB) ../$(TMGLIB) $(FRCEIG) $(FRC)
569	cd EIG ; $(MAKE) complex16
570
571clean:
572	rm -f *.out core
573
574cleanup:
575	rm -f x* *.out core
576
577FRCLIN:
578	@FRCLIN=$(FRCLIN)
579
580FRCEIG:
581	@FRCEIG=$(FRCEIG)
582
583FRC:
584	@FRC=$(FRC)
585