Compare commits
No commits in common. "c8" and "c10s" have entirely different histories.
21
.gitignore
vendored
21
.gitignore
vendored
@ -1,2 +1,19 @@
|
|||||||
SOURCES/lapack-3.8.0.tar.gz
|
lapack-3.2.1.tgz
|
||||||
SOURCES/manpages.tgz
|
manpages.tgz
|
||||||
|
lapack-3.2.2.tgz
|
||||||
|
/lapack-3.3.1.tgz
|
||||||
|
/lapack-3.4.0.tgz
|
||||||
|
/lapack-3.4.1.tgz
|
||||||
|
/lapack-3.4.2.tgz
|
||||||
|
/lapack-3.4.2-clean.tgz
|
||||||
|
/lapack-3.5.0.tgz
|
||||||
|
/lapack-3.6.0.tgz
|
||||||
|
/lapack-3.6.1.tgz
|
||||||
|
/lapack-3.7.1.tgz
|
||||||
|
/lapack-3.8.0.tar.gz
|
||||||
|
/v3.9.0.tar.gz
|
||||||
|
/v3.9.1.tar.gz
|
||||||
|
/v3.10.0.tar.gz
|
||||||
|
/v3.10.1.tar.gz
|
||||||
|
/v3.11.tar.gz
|
||||||
|
/v3.12.0.tar.gz
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
55ac9d6be510883c5442c8aca967722cdf58fb29 SOURCES/lapack-3.8.0.tar.gz
|
|
||||||
eb9ce19ce73e645bfb22af5480f16190baf09ae3 SOURCES/manpages.tgz
|
|
78
38f3eeee3108b18158409ca2a100e6fe03754781.patch
Normal file
78
38f3eeee3108b18158409ca2a100e6fe03754781.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
From 0631b6beaed60ba118b0b027c0f8d35397bf5df0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Keno Fischer <keno@juliacomputing.com>
|
||||||
|
Date: Thu, 30 Sep 2021 03:51:23 -0400
|
||||||
|
Subject: [PATCH] Fix out of bounds read in slarrv
|
||||||
|
|
||||||
|
This was originally reported as https://github.com/JuliaLang/julia/issues/42415.
|
||||||
|
I've tracked this down to an our of bounds read on the following line:
|
||||||
|
|
||||||
|
https://github.com/Reference-LAPACK/lapack/blob/44ecb6a5ff821b1cbb39f8cc2166cb098e060b4d/SRC/slarrv.f#L423
|
||||||
|
|
||||||
|
In the crashing example, `M` is `0`, causing `slarrv` to read uninitialized
|
||||||
|
memory from the work array. I believe the `0` for `M` is correct and indeed,
|
||||||
|
the documentation above supports that `M` may be zero:
|
||||||
|
|
||||||
|
https://github.com/Reference-LAPACK/lapack/blob/44ecb6a5ff821b1cbb39f8cc2166cb098e060b4d/SRC/slarrv.f#L113-L116
|
||||||
|
|
||||||
|
I believe it may be sufficient to early-out this function as suggested
|
||||||
|
in this PR. However, I have limited context for the full routine here,
|
||||||
|
so I would appreciate a sanity check.
|
||||||
|
---
|
||||||
|
SRC/clarrv.f | 2 +-
|
||||||
|
SRC/dlarrv.f | 2 +-
|
||||||
|
SRC/slarrv.f | 2 +-
|
||||||
|
SRC/zlarrv.f | 2 +-
|
||||||
|
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/SRC/clarrv.f b/SRC/clarrv.f
|
||||||
|
index 1f09e4da6..42f710757 100644
|
||||||
|
--- a/SRC/clarrv.f
|
||||||
|
+++ b/SRC/clarrv.f
|
||||||
|
@@ -348,7 +348,7 @@ SUBROUTINE CLARRV( N, VL, VU, D, L, PIVMIN,
|
||||||
|
*
|
||||||
|
* Quick return if possible
|
||||||
|
*
|
||||||
|
- IF( N.LE.0 ) THEN
|
||||||
|
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||||
|
RETURN
|
||||||
|
END IF
|
||||||
|
*
|
||||||
|
diff --git a/SRC/dlarrv.f b/SRC/dlarrv.f
|
||||||
|
index b036c1e66..299430361 100644
|
||||||
|
--- a/SRC/dlarrv.f
|
||||||
|
+++ b/SRC/dlarrv.f
|
||||||
|
@@ -350,7 +350,7 @@ SUBROUTINE DLARRV( N, VL, VU, D, L, PIVMIN,
|
||||||
|
*
|
||||||
|
* Quick return if possible
|
||||||
|
*
|
||||||
|
- IF( N.LE.0 ) THEN
|
||||||
|
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||||
|
RETURN
|
||||||
|
END IF
|
||||||
|
*
|
||||||
|
diff --git a/SRC/slarrv.f b/SRC/slarrv.f
|
||||||
|
index 9d72b339a..95f94fd1b 100644
|
||||||
|
--- a/SRC/slarrv.f
|
||||||
|
+++ b/SRC/slarrv.f
|
||||||
|
@@ -350,7 +350,7 @@ SUBROUTINE SLARRV( N, VL, VU, D, L, PIVMIN,
|
||||||
|
*
|
||||||
|
* Quick return if possible
|
||||||
|
*
|
||||||
|
- IF( N.LE.0 ) THEN
|
||||||
|
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||||
|
RETURN
|
||||||
|
END IF
|
||||||
|
*
|
||||||
|
diff --git a/SRC/zlarrv.f b/SRC/zlarrv.f
|
||||||
|
index 51ec558f5..e4be63e0d 100644
|
||||||
|
--- a/SRC/zlarrv.f
|
||||||
|
+++ b/SRC/zlarrv.f
|
||||||
|
@@ -348,7 +348,7 @@ SUBROUTINE ZLARRV( N, VL, VU, D, L, PIVMIN,
|
||||||
|
*
|
||||||
|
* Quick return if possible
|
||||||
|
*
|
||||||
|
- IF( N.LE.0 ) THEN
|
||||||
|
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||||
|
RETURN
|
||||||
|
END IF
|
||||||
|
*
|
148
765.patch
Normal file
148
765.patch
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
From 5d8a3a804befd179a28c5e4c7845e982b8d1922e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Weslley S Pereira <weslley.spereira@gmail.com>
|
||||||
|
Date: Tue, 22 Nov 2022 18:19:33 -0700
|
||||||
|
Subject: [PATCH] Check for NaNs in xGECON
|
||||||
|
|
||||||
|
---
|
||||||
|
SRC/cgecon.f | 7 ++++---
|
||||||
|
SRC/dgecon.f | 7 ++++---
|
||||||
|
SRC/sgecon.f | 7 ++++---
|
||||||
|
SRC/zgecon.f | 7 ++++---
|
||||||
|
4 files changed, 16 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/SRC/cgecon.f b/SRC/cgecon.f
|
||||||
|
index 48f409b68..6f426c2ab 100644
|
||||||
|
--- a/SRC/cgecon.f
|
||||||
|
+++ b/SRC/cgecon.f
|
||||||
|
@@ -106,6 +106,7 @@
|
||||||
|
*> INFO is INTEGER
|
||||||
|
*> = 0: successful exit
|
||||||
|
*> < 0: if INFO = -i, the i-th argument had an illegal value
|
||||||
|
+*> =-5: if ANORM is NAN or negative.
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
@@ -153,10 +154,10 @@ SUBROUTINE CGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, RWORK,
|
||||||
|
INTEGER ISAVE( 3 )
|
||||||
|
* ..
|
||||||
|
* .. External Functions ..
|
||||||
|
- LOGICAL LSAME
|
||||||
|
+ LOGICAL LSAME, SISNAN
|
||||||
|
INTEGER ICAMAX
|
||||||
|
REAL SLAMCH
|
||||||
|
- EXTERNAL LSAME, ICAMAX, SLAMCH
|
||||||
|
+ EXTERNAL LSAME, ICAMAX, SLAMCH, SISNAN
|
||||||
|
* ..
|
||||||
|
* .. External Subroutines ..
|
||||||
|
EXTERNAL CLACN2, CLATRS, CSRSCL, XERBLA
|
||||||
|
@@ -182,7 +183,7 @@ SUBROUTINE CGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, RWORK,
|
||||||
|
INFO = -2
|
||||||
|
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
|
||||||
|
INFO = -4
|
||||||
|
- ELSE IF( ANORM.LT.ZERO ) THEN
|
||||||
|
+ ELSE IF( ANORM.LT.ZERO .OR. SISNAN( ANORM ) ) THEN
|
||||||
|
INFO = -5
|
||||||
|
END IF
|
||||||
|
IF( INFO.NE.0 ) THEN
|
||||||
|
diff --git a/SRC/dgecon.f b/SRC/dgecon.f
|
||||||
|
index aa10dee9a..1ad302ae3 100644
|
||||||
|
--- a/SRC/dgecon.f
|
||||||
|
+++ b/SRC/dgecon.f
|
||||||
|
@@ -106,6 +106,7 @@
|
||||||
|
*> INFO is INTEGER
|
||||||
|
*> = 0: successful exit
|
||||||
|
*> < 0: if INFO = -i, the i-th argument had an illegal value
|
||||||
|
+*> =-5: if ANORM is NAN or negative.
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
@@ -152,10 +153,10 @@ SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK,
|
||||||
|
INTEGER ISAVE( 3 )
|
||||||
|
* ..
|
||||||
|
* .. External Functions ..
|
||||||
|
- LOGICAL LSAME
|
||||||
|
+ LOGICAL LSAME, DISNAN
|
||||||
|
INTEGER IDAMAX
|
||||||
|
DOUBLE PRECISION DLAMCH
|
||||||
|
- EXTERNAL LSAME, IDAMAX, DLAMCH
|
||||||
|
+ EXTERNAL LSAME, IDAMAX, DLAMCH, DISNAN
|
||||||
|
* ..
|
||||||
|
* .. External Subroutines ..
|
||||||
|
EXTERNAL DLACN2, DLATRS, DRSCL, XERBLA
|
||||||
|
@@ -175,7 +176,7 @@ SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK,
|
||||||
|
INFO = -2
|
||||||
|
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
|
||||||
|
INFO = -4
|
||||||
|
- ELSE IF( ANORM.LT.ZERO ) THEN
|
||||||
|
+ ELSE IF( ANORM.LT.ZERO .OR. DISNAN( ANORM ) ) THEN
|
||||||
|
INFO = -5
|
||||||
|
END IF
|
||||||
|
IF( INFO.NE.0 ) THEN
|
||||||
|
diff --git a/SRC/sgecon.f b/SRC/sgecon.f
|
||||||
|
index a284b094b..86aeea73b 100644
|
||||||
|
--- a/SRC/sgecon.f
|
||||||
|
+++ b/SRC/sgecon.f
|
||||||
|
@@ -106,6 +106,7 @@
|
||||||
|
*> INFO is INTEGER
|
||||||
|
*> = 0: successful exit
|
||||||
|
*> < 0: if INFO = -i, the i-th argument had an illegal value
|
||||||
|
+*> =-5: if ANORM is NAN or negative.
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
@@ -152,10 +153,10 @@ SUBROUTINE SGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK,
|
||||||
|
INTEGER ISAVE( 3 )
|
||||||
|
* ..
|
||||||
|
* .. External Functions ..
|
||||||
|
- LOGICAL LSAME
|
||||||
|
+ LOGICAL LSAME, SISNAN
|
||||||
|
INTEGER ISAMAX
|
||||||
|
REAL SLAMCH
|
||||||
|
- EXTERNAL LSAME, ISAMAX, SLAMCH
|
||||||
|
+ EXTERNAL LSAME, ISAMAX, SLAMCH, SISNAN
|
||||||
|
* ..
|
||||||
|
* .. External Subroutines ..
|
||||||
|
EXTERNAL SLACN2, SLATRS, SRSCL, XERBLA
|
||||||
|
@@ -175,7 +176,7 @@ SUBROUTINE SGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK,
|
||||||
|
INFO = -2
|
||||||
|
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
|
||||||
|
INFO = -4
|
||||||
|
- ELSE IF( ANORM.LT.ZERO ) THEN
|
||||||
|
+ ELSE IF( ANORM.LT.ZERO .OR. SISNAN( ANORM ) ) THEN
|
||||||
|
INFO = -5
|
||||||
|
END IF
|
||||||
|
IF( INFO.NE.0 ) THEN
|
||||||
|
diff --git a/SRC/zgecon.f b/SRC/zgecon.f
|
||||||
|
index 3d3127f9d..9cbfe35bc 100644
|
||||||
|
--- a/SRC/zgecon.f
|
||||||
|
+++ b/SRC/zgecon.f
|
||||||
|
@@ -106,6 +106,7 @@
|
||||||
|
*> INFO is INTEGER
|
||||||
|
*> = 0: successful exit
|
||||||
|
*> < 0: if INFO = -i, the i-th argument had an illegal value
|
||||||
|
+*> =-5: if ANORM is NAN or negative.
|
||||||
|
*> \endverbatim
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
@@ -153,10 +154,10 @@ SUBROUTINE ZGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, RWORK,
|
||||||
|
INTEGER ISAVE( 3 )
|
||||||
|
* ..
|
||||||
|
* .. External Functions ..
|
||||||
|
- LOGICAL LSAME
|
||||||
|
+ LOGICAL LSAME, DISNAN
|
||||||
|
INTEGER IZAMAX
|
||||||
|
DOUBLE PRECISION DLAMCH
|
||||||
|
- EXTERNAL LSAME, IZAMAX, DLAMCH
|
||||||
|
+ EXTERNAL LSAME, IZAMAX, DLAMCH, DISNAN
|
||||||
|
* ..
|
||||||
|
* .. External Subroutines ..
|
||||||
|
EXTERNAL XERBLA, ZDRSCL, ZLACN2, ZLATRS
|
||||||
|
@@ -182,7 +183,7 @@ SUBROUTINE ZGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, RWORK,
|
||||||
|
INFO = -2
|
||||||
|
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
|
||||||
|
INFO = -4
|
||||||
|
- ELSE IF( ANORM.LT.ZERO ) THEN
|
||||||
|
+ ELSE IF( ANORM.LT.ZERO .OR. DISNAN( ANORM ) ) THEN
|
||||||
|
INFO = -5
|
||||||
|
END IF
|
||||||
|
IF( INFO.NE.0 ) THEN
|
138
87536aa3c8bb0af00f66088fb6ac05d87509e011.patch
Normal file
138
87536aa3c8bb0af00f66088fb6ac05d87509e011.patch
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
From 87536aa3c8bb0af00f66088fb6ac05d87509e011 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@debian.org>
|
||||||
|
Date: Sat, 23 Nov 2019 12:22:20 +0100
|
||||||
|
Subject: [PATCH] Restore missing prototypes for deprecated LAPACK functions
|
||||||
|
|
||||||
|
Some LAPACK functions prototypes were inadvertedly dropped in 3.9.0. As a
|
||||||
|
consequence, LAPACKE has several unresolved symbols.
|
||||||
|
|
||||||
|
Closes #365
|
||||||
|
---
|
||||||
|
LAPACKE/include/lapack.h | 100 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 100 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/LAPACKE/include/lapack.h b/LAPACKE/include/lapack.h
|
||||||
|
index 3f425325f..5c131d844 100644
|
||||||
|
--- a/LAPACKE/include/lapack.h
|
||||||
|
+++ b/LAPACKE/include/lapack.h
|
||||||
|
@@ -1842,6 +1842,28 @@ void LAPACK_zgeqlf(
|
||||||
|
lapack_complex_double* work, lapack_int const* lwork,
|
||||||
|
lapack_int* info );
|
||||||
|
|
||||||
|
+#define LAPACK_sgeqpf LAPACK_GLOBAL(sgeqpf,SGEQPF)
|
||||||
|
+void LAPACK_sgeqpf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
|
||||||
|
+ lapack_int* jpvt, float* tau, float* work,
|
||||||
|
+ lapack_int *info );
|
||||||
|
+
|
||||||
|
+#define LAPACK_dgeqpf LAPACK_GLOBAL(dgeqpf,DGEQPF)
|
||||||
|
+void LAPACK_dgeqpf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
|
||||||
|
+ lapack_int* jpvt, double* tau, double* work,
|
||||||
|
+ lapack_int *info );
|
||||||
|
+
|
||||||
|
+#define LAPACK_cgeqpf LAPACK_GLOBAL(cgeqpf,CGEQPF)
|
||||||
|
+void LAPACK_cgeqpf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
|
||||||
|
+ lapack_int* lda, lapack_int* jpvt,
|
||||||
|
+ lapack_complex_float* tau, lapack_complex_float* work,
|
||||||
|
+ float* rwork, lapack_int *info );
|
||||||
|
+
|
||||||
|
+#define LAPACK_zgeqpf LAPACK_GLOBAL(zgeqpf,ZGEQPF)
|
||||||
|
+void LAPACK_zgeqpf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
|
||||||
|
+ lapack_int* lda, lapack_int* jpvt,
|
||||||
|
+ lapack_complex_double* tau, lapack_complex_double* work,
|
||||||
|
+ double* rwork, lapack_int *info );
|
||||||
|
+
|
||||||
|
#define LAPACK_cgeqp3 LAPACK_GLOBAL(cgeqp3,CGEQP3)
|
||||||
|
void LAPACK_cgeqp3(
|
||||||
|
lapack_int const* m, lapack_int const* n,
|
||||||
|
@@ -3617,6 +3639,47 @@ void LAPACK_zggrqf(
|
||||||
|
lapack_complex_double* work, lapack_int const* lwork,
|
||||||
|
lapack_int* info );
|
||||||
|
|
||||||
|
+#define LAPACK_sggsvd LAPACK_GLOBAL(sggsvd,SGGSVD)
|
||||||
|
+lapack_int LAPACKE_sggsvd( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int n, lapack_int p,
|
||||||
|
+ lapack_int* k, lapack_int* l, float* a,
|
||||||
|
+ lapack_int lda, float* b, lapack_int ldb,
|
||||||
|
+ float* alpha, float* beta, float* u, lapack_int ldu,
|
||||||
|
+ float* v, lapack_int ldv, float* q, lapack_int ldq,
|
||||||
|
+ lapack_int* iwork );
|
||||||
|
+
|
||||||
|
+#define LAPACK_dggsvd LAPACK_GLOBAL(dggsvd,DGGSVD)
|
||||||
|
+lapack_int LAPACKE_dggsvd( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int n, lapack_int p,
|
||||||
|
+ lapack_int* k, lapack_int* l, double* a,
|
||||||
|
+ lapack_int lda, double* b, lapack_int ldb,
|
||||||
|
+ double* alpha, double* beta, double* u,
|
||||||
|
+ lapack_int ldu, double* v, lapack_int ldv, double* q,
|
||||||
|
+ lapack_int ldq, lapack_int* iwork );
|
||||||
|
+
|
||||||
|
+#define LAPACK_cggsvd LAPACK_GLOBAL(cggsvd,CGGSVD)
|
||||||
|
+lapack_int LAPACKE_cggsvd( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int n, lapack_int p,
|
||||||
|
+ lapack_int* k, lapack_int* l,
|
||||||
|
+ lapack_complex_float* a, lapack_int lda,
|
||||||
|
+ lapack_complex_float* b, lapack_int ldb,
|
||||||
|
+ float* alpha, float* beta, lapack_complex_float* u,
|
||||||
|
+ lapack_int ldu, lapack_complex_float* v,
|
||||||
|
+ lapack_int ldv, lapack_complex_float* q,
|
||||||
|
+ lapack_int ldq, lapack_int* iwork );
|
||||||
|
+
|
||||||
|
+#define LAPACK_zggsvd LAPACK_GLOBAL(zggsvd,ZGGSVD)
|
||||||
|
+lapack_int LAPACKE_zggsvd( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int n, lapack_int p,
|
||||||
|
+ lapack_int* k, lapack_int* l,
|
||||||
|
+ lapack_complex_double* a, lapack_int lda,
|
||||||
|
+ lapack_complex_double* b, lapack_int ldb,
|
||||||
|
+ double* alpha, double* beta,
|
||||||
|
+ lapack_complex_double* u, lapack_int ldu,
|
||||||
|
+ lapack_complex_double* v, lapack_int ldv,
|
||||||
|
+ lapack_complex_double* q, lapack_int ldq,
|
||||||
|
+ lapack_int* iwork );
|
||||||
|
+
|
||||||
|
#define LAPACK_cggsvd3 LAPACK_GLOBAL(cggsvd3,CGGSVD3)
|
||||||
|
void LAPACK_cggsvd3(
|
||||||
|
char const* jobu, char const* jobv, char const* jobq,
|
||||||
|
@@ -3679,6 +3742,43 @@ void LAPACK_zggsvd3(
|
||||||
|
lapack_int* iwork,
|
||||||
|
lapack_int* info );
|
||||||
|
|
||||||
|
+#define LAPACK_sggsvp LAPACK_GLOBAL(sggsvp,SGGSVP)
|
||||||
|
+lapack_int LAPACKE_sggsvp( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int p, lapack_int n, float* a,
|
||||||
|
+ lapack_int lda, float* b, lapack_int ldb, float tola,
|
||||||
|
+ float tolb, lapack_int* k, lapack_int* l, float* u,
|
||||||
|
+ lapack_int ldu, float* v, lapack_int ldv, float* q,
|
||||||
|
+ lapack_int ldq );
|
||||||
|
+
|
||||||
|
+#define LAPACK_dggsvp LAPACK_GLOBAL(dggsvp,DGGSVP)
|
||||||
|
+lapack_int LAPACKE_dggsvp( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int p, lapack_int n, double* a,
|
||||||
|
+ lapack_int lda, double* b, lapack_int ldb,
|
||||||
|
+ double tola, double tolb, lapack_int* k,
|
||||||
|
+ lapack_int* l, double* u, lapack_int ldu, double* v,
|
||||||
|
+ lapack_int ldv, double* q, lapack_int ldq );
|
||||||
|
+
|
||||||
|
+#define LAPACK_cggsvp LAPACK_GLOBAL(cggsvp,CGGSVP)
|
||||||
|
+lapack_int LAPACKE_cggsvp( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int p, lapack_int n,
|
||||||
|
+ lapack_complex_float* a, lapack_int lda,
|
||||||
|
+ lapack_complex_float* b, lapack_int ldb, float tola,
|
||||||
|
+ float tolb, lapack_int* k, lapack_int* l,
|
||||||
|
+ lapack_complex_float* u, lapack_int ldu,
|
||||||
|
+ lapack_complex_float* v, lapack_int ldv,
|
||||||
|
+ lapack_complex_float* q, lapack_int ldq );
|
||||||
|
+
|
||||||
|
+#define LAPACK_zggsvp LAPACK_GLOBAL(zggsvp,ZGGSVP)
|
||||||
|
+lapack_int LAPACKE_zggsvp( int matrix_layout, char jobu, char jobv, char jobq,
|
||||||
|
+ lapack_int m, lapack_int p, lapack_int n,
|
||||||
|
+ lapack_complex_double* a, lapack_int lda,
|
||||||
|
+ lapack_complex_double* b, lapack_int ldb,
|
||||||
|
+ double tola, double tolb, lapack_int* k,
|
||||||
|
+ lapack_int* l, lapack_complex_double* u,
|
||||||
|
+ lapack_int ldu, lapack_complex_double* v,
|
||||||
|
+ lapack_int ldv, lapack_complex_double* q,
|
||||||
|
+ lapack_int ldq );
|
||||||
|
+
|
||||||
|
#define LAPACK_cggsvp3 LAPACK_GLOBAL(cggsvp3,CGGSVP3)
|
||||||
|
void LAPACK_cggsvp3(
|
||||||
|
char const* jobu, char const* jobv, char const* jobq,
|
@ -1,7 +1,7 @@
|
|||||||
OBJCOPY = objcopy
|
OBJCOPY = objcopy
|
||||||
|
|
||||||
ifndef SYMBOLPREFIX
|
ifndef SYMBOLSUFFIX
|
||||||
SYMBOLPREFIX =
|
SYMBOLSUFFIX =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -56,29 +56,29 @@ OBJS= $(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
|
|||||||
$(ALLBLAS)
|
$(ALLBLAS)
|
||||||
|
|
||||||
static: $(OBJS)
|
static: $(OBJS)
|
||||||
ifeq "$(SYMBOLPREFIX)" ""
|
ifeq "$(SYMBOLSUFFIX)" ""
|
||||||
ar ruv libblas.a $(OBJS)
|
ar ruv libblas.a $(OBJS)
|
||||||
ranlib libblas.a
|
ranlib libblas.a
|
||||||
else
|
else
|
||||||
ar ruv libblas$(SYMBOLPREFIX).a $(OBJS)
|
ar ruv libblas$(SYMBOLSUFFIX).a $(OBJS)
|
||||||
ranlib libblas$(SYMBOLPREFIX).a
|
ranlib libblas$(SYMBOLSUFFIX).a
|
||||||
for i in `nm libblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty
|
for i in `nm libblas$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty
|
||||||
sort -n blas-static-prefix.def.dirty | uniq > blas-static-prefix.def
|
sort -n blas-static-prefix.def.dirty | uniq > blas-static-prefix.def
|
||||||
$(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLPREFIX).a libblas$(SYMBOLPREFIX).a.fixed
|
$(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLSUFFIX).a libblas$(SYMBOLSUFFIX).a.fixed
|
||||||
rm -rf libblas$(SYMBOLPREFIX).a
|
rm -rf libblas$(SYMBOLSUFFIX).a
|
||||||
mv libblas$(SYMBOLPREFIX).a.fixed libblas$(SYMBOLPREFIX).a
|
mv libblas$(SYMBOLSUFFIX).a.fixed libblas$(SYMBOLSUFFIX).a
|
||||||
endif
|
endif
|
||||||
|
|
||||||
shared: $(OBJS)
|
shared: $(OBJS)
|
||||||
ifeq "$(SYMBOLPREFIX)" ""
|
ifeq "$(SYMBOLSUFFIX)" ""
|
||||||
# No renaming needed
|
# No renaming needed
|
||||||
cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
|
cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
|
||||||
else
|
else
|
||||||
cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLPREFIX).so.@SHORTVER@ -o libblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
|
cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
|
||||||
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX
|
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
|
||||||
for i in `readelf -Ws libblas$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > blas-prefix.def.dirty
|
for i in `readelf -Ws libblas$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > blas-prefix.def.dirty
|
||||||
sort -n blas-prefix.def.dirty | uniq > blas-prefix.def
|
sort -n blas-prefix.def.dirty | uniq > blas-prefix.def
|
||||||
$(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLPREFIX).so.@LONGVER@ libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed
|
$(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLSUFFIX).so.@LONGVER@ libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed
|
||||||
rm -rf libblas$(SYMBOLPREFIX).so.@LONGVER@
|
rm -rf libblas$(SYMBOLSUFFIX).so.@LONGVER@
|
||||||
mv libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libblas$(SYMBOLPREFIX).so.@LONGVER@
|
mv libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libblas$(SYMBOLSUFFIX).so.@LONGVER@
|
||||||
endif
|
endif
|
@ -1,7 +1,7 @@
|
|||||||
OBJCOPY = objcopy
|
OBJCOPY = objcopy
|
||||||
|
|
||||||
ifndef SYMBOLPREFIX
|
ifndef SYMBOLSUFFIX
|
||||||
SYMBOLPREFIX =
|
SYMBOLSUFFIX =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -70,30 +70,30 @@ OBJS= $(SLEV1) $(DLEV1) $(CLEV1) $(ZLEV1) $(SCLEV1) $(SLEV2) $(DLEV2) $(CLEV2) \
|
|||||||
$(ZLEV2) $(SLEV3) $(DLEV3) $(CLEV3) $(ZLEV3) $(ERRHAND)
|
$(ZLEV2) $(SLEV3) $(DLEV3) $(CLEV3) $(ZLEV3) $(ERRHAND)
|
||||||
|
|
||||||
static: $(OBJS)
|
static: $(OBJS)
|
||||||
ifeq "$(SYMBOLPREFIX)" ""
|
ifeq "$(SYMBOLSUFFIX)" ""
|
||||||
ar ruv libcblas.a $(OBJS)
|
ar ruv libcblas.a $(OBJS)
|
||||||
ranlib libcblas.a
|
ranlib libcblas.a
|
||||||
else
|
else
|
||||||
ar ruv libcblas$(SYMBOLPREFIX).a $(OBJS)
|
ar ruv libcblas$(SYMBOLSUFFIX).a $(OBJS)
|
||||||
ranlib libcblas$(SYMBOLPREFIX).a
|
ranlib libcblas$(SYMBOLSUFFIX).a
|
||||||
for i in `nm libcblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty
|
for i in `nm libcblas$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty
|
||||||
sort -n cblas-static-prefix.def.dirty | uniq > cblas-static-prefix.def
|
sort -n cblas-static-prefix.def.dirty | uniq > cblas-static-prefix.def
|
||||||
$(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLPREFIX).a libcblas$(SYMBOLPREFIX).a.fixed
|
$(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLSUFFIX).a libcblas$(SYMBOLSUFFIX).a.fixed
|
||||||
rm -rf libcblas$(SYMBOLPREFIX).a
|
rm -rf libcblas$(SYMBOLSUFFIX).a
|
||||||
mv libcblas$(SYMBOLPREFIX).a.fixed libcblas$(SYMBOLPREFIX).a
|
mv libcblas$(SYMBOLSUFFIX).a.fixed libcblas$(SYMBOLSUFFIX).a
|
||||||
endif
|
endif
|
||||||
|
|
||||||
shared: $(OBJS)
|
shared: $(OBJS)
|
||||||
ifeq "$(SYMBOLPREFIX)" ""
|
ifeq "$(SYMBOLSUFFIX)" ""
|
||||||
# No renaming needed
|
# No renaming needed
|
||||||
cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../../ -lblas -lm -lgfortran -lc
|
cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../../ -lblas -lm -lgfortran -lc
|
||||||
else
|
else
|
||||||
cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLPREFIX).so.@SHORTVER@ -o libcblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc
|
cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libcblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc
|
||||||
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX
|
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
|
||||||
for i in `readelf -Ws libcblas$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > cblas-prefix.def.dirty
|
for i in `readelf -Ws libcblas$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > cblas-prefix.def.dirty
|
||||||
sort -n cblas-prefix.def.dirty | uniq > cblas-prefix.def
|
sort -n cblas-prefix.def.dirty | uniq > cblas-prefix.def
|
||||||
$(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLPREFIX).so.@LONGVER@ libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed
|
$(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLSUFFIX).so.@LONGVER@ libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed
|
||||||
rm -rf libcblas$(SYMBOLPREFIX).so.@LONGVER@
|
rm -rf libcblas$(SYMBOLSUFFIX).so.@LONGVER@
|
||||||
mv libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libcblas$(SYMBOLPREFIX).so.@LONGVER@
|
mv libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libcblas$(SYMBOLSUFFIX).so.@LONGVER@
|
||||||
endif
|
endif
|
||||||
|
|
@ -2,8 +2,8 @@ include ../make.inc
|
|||||||
|
|
||||||
OBJCOPY = objcopy
|
OBJCOPY = objcopy
|
||||||
|
|
||||||
ifndef SYMBOLPREFIX
|
ifndef SYMBOLSUFFIX
|
||||||
SYMBOLPREFIX =
|
SYMBOLSUFFIX =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -38,7 +38,7 @@ SLASRC = sbdsvdx.o sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
|
|||||||
slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o \
|
slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o \
|
||||||
slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \
|
slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \
|
||||||
sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \
|
sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \
|
||||||
sorgrq.o sorgtr.o sorm2l.o sorm2r.o sorm22.o \
|
sorgrq.o sorgtr.o sorgtsqr.o sorm2l.o sorm2r.o sorm22.o \
|
||||||
sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \
|
sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \
|
||||||
sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \
|
sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \
|
||||||
spbstf.o spbsv.o spbsvx.o \
|
spbstf.o spbsv.o spbsvx.o \
|
||||||
@ -80,9 +80,11 @@ SLASRC = sbdsvdx.o sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
|
|||||||
sgetsls.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o \
|
sgetsls.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o \
|
||||||
sgelq.o slaswlq.o slamswlq.o sgemlq.o \
|
sgelq.o slaswlq.o slamswlq.o sgemlq.o \
|
||||||
stplqt.o stplqt2.o stpmlqt.o \
|
stplqt.o stplqt2.o stpmlqt.o \
|
||||||
|
sorhr_col.o slaorhr_col_getrfnp.o slaorhr_col_getrfnp2.o \
|
||||||
ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \
|
ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \
|
||||||
ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \
|
ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \
|
||||||
ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o \
|
ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o \
|
||||||
|
sgesvdq.o scombssq.o \
|
||||||
DEPRECATED/sgegs.o DEPRECATED/sgegv.o DEPRECATED/sgeqpf.o DEPRECATED/sgelsx.o \
|
DEPRECATED/sgegs.o DEPRECATED/sgegv.o DEPRECATED/sgeqpf.o DEPRECATED/sgelsx.o \
|
||||||
DEPRECATED/sggsvd.o DEPRECATED/sggsvp.o DEPRECATED/slahrd.o DEPRECATED/slatzm.o \
|
DEPRECATED/sggsvd.o DEPRECATED/sggsvp.o DEPRECATED/slahrd.o DEPRECATED/slatzm.o \
|
||||||
DEPRECATED/stzrqf.o
|
DEPRECATED/stzrqf.o
|
||||||
@ -159,7 +161,7 @@ CLASRC = cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
|
|||||||
ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \
|
ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \
|
||||||
ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o \
|
ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o \
|
||||||
cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \
|
cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \
|
||||||
cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \
|
cungrq.o cungtr.o cungtsqr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \
|
||||||
cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \
|
cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \
|
||||||
cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \
|
cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \
|
||||||
chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \
|
chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \
|
||||||
@ -173,9 +175,11 @@ CLASRC = cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
|
|||||||
cgetsls.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o \
|
cgetsls.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o \
|
||||||
cgelq.o claswlq.o clamswlq.o cgemlq.o \
|
cgelq.o claswlq.o clamswlq.o cgemlq.o \
|
||||||
ctplqt.o ctplqt2.o ctpmlqt.o \
|
ctplqt.o ctplqt2.o ctpmlqt.o \
|
||||||
|
cunhr_col.o claunhr_col_getrfnp.o claunhr_col_getrfnp2.o \
|
||||||
chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o \
|
chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o \
|
||||||
cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \
|
cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \
|
||||||
chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o \
|
chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o \
|
||||||
|
cgesvdq.o \
|
||||||
DEPRECATED/cgegs.o DEPRECATED/cgegv.o \
|
DEPRECATED/cgegs.o DEPRECATED/cgegv.o \
|
||||||
DEPRECATED/cgeqpf.o DEPRECATED/cgelsx.o DEPRECATED/cggsvd.o \
|
DEPRECATED/cgeqpf.o DEPRECATED/cgelsx.o DEPRECATED/cggsvd.o \
|
||||||
DEPRECATED/cggsvp.o DEPRECATED/clahrd.o DEPRECATED/clatzm.o DEPRECATED/ctzrqf.o
|
DEPRECATED/cggsvp.o DEPRECATED/clahrd.o DEPRECATED/clatzm.o DEPRECATED/ctzrqf.o
|
||||||
@ -209,7 +213,7 @@ DLASRC = dbdsvdx.o dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
|
|||||||
dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlauu2.o \
|
dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlauu2.o \
|
||||||
dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \
|
dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \
|
||||||
dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \
|
dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \
|
||||||
dorgrq.o dorgtr.o dorm2l.o dorm2r.o dorm22.o \
|
dorgrq.o dorgtr.o dorgtsqr.o dorm2l.o dorm2r.o dorm22.o \
|
||||||
dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \
|
dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \
|
||||||
dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \
|
dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \
|
||||||
dpbstf.o dpbsv.o dpbsvx.o \
|
dpbstf.o dpbsv.o dpbsvx.o \
|
||||||
@ -253,9 +257,11 @@ DLASRC = dbdsvdx.o dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
|
|||||||
dgetsls.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o \
|
dgetsls.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o \
|
||||||
dgelq.o dlaswlq.o dlamswlq.o dgemlq.o \
|
dgelq.o dlaswlq.o dlamswlq.o dgemlq.o \
|
||||||
dtplqt.o dtplqt2.o dtpmlqt.o \
|
dtplqt.o dtplqt2.o dtpmlqt.o \
|
||||||
|
dorhr_col.o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp2.o \
|
||||||
dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \
|
dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \
|
||||||
dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \
|
dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \
|
||||||
dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o \
|
dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o \
|
||||||
|
dgesvdq.o dcombssq.o \
|
||||||
DEPRECATED/dgegs.o DEPRECATED/dgegv.o \
|
DEPRECATED/dgegs.o DEPRECATED/dgegv.o \
|
||||||
DEPRECATED/dgeqpf.o DEPRECATED/dgelsx.o DEPRECATED/dggsvd.o \
|
DEPRECATED/dgeqpf.o DEPRECATED/dgelsx.o DEPRECATED/dggsvd.o \
|
||||||
DEPRECATED/dggsvp.o DEPRECATED/dlahrd.o DEPRECATED/dlatzm.o DEPRECATED/dtzrqf.o
|
DEPRECATED/dggsvp.o DEPRECATED/dlahrd.o DEPRECATED/dlatzm.o DEPRECATED/dtzrqf.o
|
||||||
@ -332,7 +338,7 @@ ZLASRC = zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
|
|||||||
ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \
|
ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \
|
||||||
ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o \
|
ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o \
|
||||||
zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \
|
zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \
|
||||||
zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \
|
zungrq.o zungtr.o zungtsqr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \
|
||||||
zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \
|
zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \
|
||||||
zunmtr.o zupgtr.o \
|
zunmtr.o zupgtr.o \
|
||||||
zupmtr.o izmax1.o dzsum1.o zstemr.o \
|
zupmtr.o izmax1.o dzsum1.o zstemr.o \
|
||||||
@ -348,9 +354,11 @@ ZLASRC = zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
|
|||||||
zgelqt.o zgelqt3.o zgemlqt.o \
|
zgelqt.o zgelqt3.o zgemlqt.o \
|
||||||
zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o \
|
zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o \
|
||||||
zgelq.o zlaswlq.o zlamswlq.o zgemlq.o \
|
zgelq.o zlaswlq.o zlamswlq.o zgemlq.o \
|
||||||
|
zunhr_col.o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp2.o \
|
||||||
zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o \
|
zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o \
|
||||||
zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \
|
zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \
|
||||||
zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o \
|
zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o \
|
||||||
|
zgesvdq.o \
|
||||||
|
|
||||||
SCLAUX = sbdsdc.o \
|
SCLAUX = sbdsdc.o \
|
||||||
sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \
|
sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \
|
||||||
@ -442,29 +450,29 @@ ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
static: $(ALLOBJ) $(ALLXOBJ)
|
static: $(ALLOBJ) $(ALLXOBJ)
|
||||||
ifeq "$(SYMBOLPREFIX)" ""
|
ifeq "$(SYMBOLSUFFIX)" ""
|
||||||
ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ)
|
ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ)
|
||||||
ranlib liblapack.a
|
ranlib liblapack.a
|
||||||
else
|
else
|
||||||
ar ruv liblapack$(SYMBOLPREFIX).a $(ALLOBJ) $(ALLXOBJ)
|
ar ruv liblapack$(SYMBOLSUFFIX).a $(ALLOBJ) $(ALLXOBJ)
|
||||||
ranlib liblapack$(SYMBOLPREFIX).a
|
ranlib liblapack$(SYMBOLSUFFIX).a
|
||||||
for i in `nm liblapack$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty
|
for i in `nm liblapack$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty
|
||||||
sort -n lapack-static-prefix.def.dirty | uniq > lapack-static-prefix.def
|
sort -n lapack-static-prefix.def.dirty | uniq > lapack-static-prefix.def
|
||||||
$(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLPREFIX).a liblapack$(SYMBOLPREFIX).a.fixed
|
$(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLSUFFIX).a liblapack$(SYMBOLSUFFIX).a.fixed
|
||||||
rm -rf liblapack$(SYMBOLPREFIX).a
|
rm -rf liblapack$(SYMBOLSUFFIX).a
|
||||||
mv liblapack$(SYMBOLPREFIX).a.fixed liblapack$(SYMBOLPREFIX).a
|
mv liblapack$(SYMBOLSUFFIX).a.fixed liblapack$(SYMBOLSUFFIX).a
|
||||||
endif
|
endif
|
||||||
|
|
||||||
shared: $(ALLOBJ) $(ALLXOBJ)
|
shared: $(ALLOBJ) $(ALLXOBJ)
|
||||||
ifeq "$(SYMBOLPREFIX)" ""
|
ifeq "$(SYMBOLSUFFIX)" ""
|
||||||
# No renaming needed
|
# No renaming needed
|
||||||
cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
|
cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
|
||||||
else
|
else
|
||||||
cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLPREFIX).so.@SHORTVER@ -o liblapack$(SYMBOLPREFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
|
cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLSUFFIX).so.@SHORTVER@ -o liblapack$(SYMBOLSUFFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
|
||||||
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX
|
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
|
||||||
for i in `readelf -Ws liblapack$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > lapack-prefix.def.dirty
|
for i in `readelf -Ws liblapack$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > lapack-prefix.def.dirty
|
||||||
sort -n lapack-prefix.def.dirty | uniq > lapack-prefix.def
|
sort -n lapack-prefix.def.dirty | uniq > lapack-prefix.def
|
||||||
$(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLPREFIX).so.@LONGVER@ liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed
|
$(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLSUFFIX).so.@LONGVER@ liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed
|
||||||
rm -rf liblapack$(SYMBOLPREFIX).so.@LONGVER@
|
rm -rf liblapack$(SYMBOLSUFFIX).so.@LONGVER@
|
||||||
mv liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed liblapack$(SYMBOLPREFIX).so.@LONGVER@
|
mv liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed liblapack$(SYMBOLSUFFIX).so.@LONGVER@
|
||||||
endif
|
endif
|
801
blas-bz143340.patch
Normal file
801
blas-bz143340.patch
Normal file
@ -0,0 +1,801 @@
|
|||||||
|
--- LAPACK/BLAS/SRC/drotmg.f.BAD 2005-09-28 17:59:56.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/drotmg.f 2005-09-28 18:01:04.000000000 -0500
|
||||||
|
@@ -0,0 +1,169 @@
|
||||||
|
+ SUBROUTINE DROTMG (DD1,DD2,DX1,DY1,DPARAM)
|
||||||
|
+C
|
||||||
|
+C CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS
|
||||||
|
+C THE SECOND COMPONENT OF THE 2-VECTOR (DSQRT(DD1)*DX1,DSQRT(DD2)*
|
||||||
|
+C DY2)**T.
|
||||||
|
+C WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
|
||||||
|
+C
|
||||||
|
+C DFLAG=-1.D0 DFLAG=0.D0 DFLAG=1.D0 DFLAG=-2.D0
|
||||||
|
+C
|
||||||
|
+C (DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0)
|
||||||
|
+C H=( ) ( ) ( ) ( )
|
||||||
|
+C (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0).
|
||||||
|
+C LOCATIONS 2-4 OF DPARAM CONTAIN DH11, DH21, DH12, AND DH22
|
||||||
|
+C RESPECTIVELY. (VALUES OF 1.D0, -1.D0, OR 0.D0 IMPLIED BY THE
|
||||||
|
+C VALUE OF DPARAM(1) ARE NOT STORED IN DPARAM.)
|
||||||
|
+C
|
||||||
|
+C THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE
|
||||||
|
+C INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE
|
||||||
|
+C OF DD1 AND DD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
|
||||||
|
+C
|
||||||
|
+ DOUBLE PRECISION GAM,ONE,RGAMSQ,DD2,DH11,DH21,DPARAM,DP2,
|
||||||
|
+ 1 DQ2,DU,DY1,ZERO,GAMSQ,DD1,DFLAG,DH12,DH22,DP1,DQ1,
|
||||||
|
+ 2 DTEMP,DX1,TWO
|
||||||
|
+ DIMENSION DPARAM(5)
|
||||||
|
+C
|
||||||
|
+ DATA ZERO,ONE,TWO /0.D0,1.D0,2.D0/
|
||||||
|
+ DATA GAM,GAMSQ,RGAMSQ/4096.D0,16777216.D0,5.9604645D-8/
|
||||||
|
+ IF(.NOT. DD1 .LT. ZERO) GO TO 10
|
||||||
|
+C GO ZERO-H-D-AND-DX1..
|
||||||
|
+ GO TO 60
|
||||||
|
+ 10 CONTINUE
|
||||||
|
+C CASE-DD1-NONNEGATIVE
|
||||||
|
+ DP2=DD2*DY1
|
||||||
|
+ IF(.NOT. DP2 .EQ. ZERO) GO TO 20
|
||||||
|
+ DFLAG=-TWO
|
||||||
|
+ GO TO 260
|
||||||
|
+C REGULAR-CASE..
|
||||||
|
+ 20 CONTINUE
|
||||||
|
+ DP1=DD1*DX1
|
||||||
|
+ DQ2=DP2*DY1
|
||||||
|
+ DQ1=DP1*DX1
|
||||||
|
+C
|
||||||
|
+ IF(.NOT. DABS(DQ1) .GT. DABS(DQ2)) GO TO 40
|
||||||
|
+ DH21=-DY1/DX1
|
||||||
|
+ DH12=DP2/DP1
|
||||||
|
+C
|
||||||
|
+ DU=ONE-DH12*DH21
|
||||||
|
+C
|
||||||
|
+ IF(.NOT. DU .LE. ZERO) GO TO 30
|
||||||
|
+C GO ZERO-H-D-AND-DX1..
|
||||||
|
+ GO TO 60
|
||||||
|
+ 30 CONTINUE
|
||||||
|
+ DFLAG=ZERO
|
||||||
|
+ DD1=DD1/DU
|
||||||
|
+ DD2=DD2/DU
|
||||||
|
+ DX1=DX1*DU
|
||||||
|
+C GO SCALE-CHECK..
|
||||||
|
+ GO TO 100
|
||||||
|
+ 40 CONTINUE
|
||||||
|
+ IF(.NOT. DQ2 .LT. ZERO) GO TO 50
|
||||||
|
+C GO ZERO-H-D-AND-DX1..
|
||||||
|
+ GO TO 60
|
||||||
|
+ 50 CONTINUE
|
||||||
|
+ DFLAG=ONE
|
||||||
|
+ DH11=DP1/DP2
|
||||||
|
+ DH22=DX1/DY1
|
||||||
|
+ DU=ONE+DH11*DH22
|
||||||
|
+ DTEMP=DD2/DU
|
||||||
|
+ DD2=DD1/DU
|
||||||
|
+ DD1=DTEMP
|
||||||
|
+ DX1=DY1*DU
|
||||||
|
+C GO SCALE-CHECK
|
||||||
|
+ GO TO 100
|
||||||
|
+C PROCEDURE..ZERO-H-D-AND-DX1..
|
||||||
|
+ 60 CONTINUE
|
||||||
|
+ DFLAG=-ONE
|
||||||
|
+ DH11=ZERO
|
||||||
|
+ DH12=ZERO
|
||||||
|
+ DH21=ZERO
|
||||||
|
+ DH22=ZERO
|
||||||
|
+C
|
||||||
|
+ DD1=ZERO
|
||||||
|
+ DD2=ZERO
|
||||||
|
+ DX1=ZERO
|
||||||
|
+C RETURN..
|
||||||
|
+ GO TO 220
|
||||||
|
+C PROCEDURE..FIX-H..
|
||||||
|
+ 70 CONTINUE
|
||||||
|
+ IF(.NOT. DFLAG .GE. ZERO) GO TO 90
|
||||||
|
+C
|
||||||
|
+ IF(.NOT. DFLAG .EQ. ZERO) GO TO 80
|
||||||
|
+ DH11=ONE
|
||||||
|
+ DH22=ONE
|
||||||
|
+ DFLAG=-ONE
|
||||||
|
+ GO TO 90
|
||||||
|
+ 80 CONTINUE
|
||||||
|
+ DH21=-ONE
|
||||||
|
+ DH12=ONE
|
||||||
|
+ DFLAG=-ONE
|
||||||
|
+ 90 CONTINUE
|
||||||
|
+ GO TO IGO,(120,150,180,210)
|
||||||
|
+C PROCEDURE..SCALE-CHECK
|
||||||
|
+ 100 CONTINUE
|
||||||
|
+ 110 CONTINUE
|
||||||
|
+ IF(.NOT. DD1 .LE. RGAMSQ) GO TO 130
|
||||||
|
+ IF(DD1 .EQ. ZERO) GO TO 160
|
||||||
|
+ ASSIGN 120 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 120 CONTINUE
|
||||||
|
+ DD1=DD1*GAM**2
|
||||||
|
+ DX1=DX1/GAM
|
||||||
|
+ DH11=DH11/GAM
|
||||||
|
+ DH12=DH12/GAM
|
||||||
|
+ GO TO 110
|
||||||
|
+ 130 CONTINUE
|
||||||
|
+ 140 CONTINUE
|
||||||
|
+ IF(.NOT. DD1 .GE. GAMSQ) GO TO 160
|
||||||
|
+ ASSIGN 150 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 150 CONTINUE
|
||||||
|
+ DD1=DD1/GAM**2
|
||||||
|
+ DX1=DX1*GAM
|
||||||
|
+ DH11=DH11*GAM
|
||||||
|
+ DH12=DH12*GAM
|
||||||
|
+ GO TO 140
|
||||||
|
+ 160 CONTINUE
|
||||||
|
+ 170 CONTINUE
|
||||||
|
+ IF(.NOT. DABS(DD2) .LE. RGAMSQ) GO TO 190
|
||||||
|
+ IF(DD2 .EQ. ZERO) GO TO 220
|
||||||
|
+ ASSIGN 180 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 180 CONTINUE
|
||||||
|
+ DD2=DD2*GAM**2
|
||||||
|
+ DH21=DH21/GAM
|
||||||
|
+ DH22=DH22/GAM
|
||||||
|
+ GO TO 170
|
||||||
|
+ 190 CONTINUE
|
||||||
|
+ 200 CONTINUE
|
||||||
|
+ IF(.NOT. DABS(DD2) .GE. GAMSQ) GO TO 220
|
||||||
|
+ ASSIGN 210 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 210 CONTINUE
|
||||||
|
+ DD2=DD2/GAM**2
|
||||||
|
+ DH21=DH21*GAM
|
||||||
|
+ DH22=DH22*GAM
|
||||||
|
+ GO TO 200
|
||||||
|
+ 220 CONTINUE
|
||||||
|
+ IF(DFLAG)250,230,240
|
||||||
|
+ 230 CONTINUE
|
||||||
|
+ DPARAM(3)=DH21
|
||||||
|
+ DPARAM(4)=DH12
|
||||||
|
+ GO TO 260
|
||||||
|
+ 240 CONTINUE
|
||||||
|
+ DPARAM(2)=DH11
|
||||||
|
+ DPARAM(5)=DH22
|
||||||
|
+ GO TO 260
|
||||||
|
+ 250 CONTINUE
|
||||||
|
+ DPARAM(2)=DH11
|
||||||
|
+ DPARAM(3)=DH21
|
||||||
|
+ DPARAM(4)=DH12
|
||||||
|
+ DPARAM(5)=DH22
|
||||||
|
+ 260 CONTINUE
|
||||||
|
+ DPARAM(1)=DFLAG
|
||||||
|
+ RETURN
|
||||||
|
+ END
|
||||||
|
--- LAPACK/BLAS/SRC/sdsdot.f.BAD 2005-09-28 18:00:11.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/sdsdot.f 2005-09-28 18:01:23.000000000 -0500
|
||||||
|
@@ -0,0 +1,78 @@
|
||||||
|
+*DECK SDSDOT
|
||||||
|
+ REAL FUNCTION SDSDOT (N, SB, SX, INCX, SY, INCY)
|
||||||
|
+C***BEGIN PROLOGUE SDSDOT
|
||||||
|
+C***PURPOSE Compute the inner product of two vectors with extended
|
||||||
|
+C precision accumulation.
|
||||||
|
+C***LIBRARY SLATEC (BLAS)
|
||||||
|
+C***CATEGORY D1A4
|
||||||
|
+C***TYPE SINGLE PRECISION (SDSDOT-S, CDCDOT-C)
|
||||||
|
+C***KEYWORDS BLAS, DOT PRODUCT, INNER PRODUCT, LINEAR ALGEBRA, VECTOR
|
||||||
|
+C***AUTHOR Lawson, C. L., (JPL)
|
||||||
|
+C Hanson, R. J., (SNLA)
|
||||||
|
+C Kincaid, D. R., (U. of Texas)
|
||||||
|
+C Krogh, F. T., (JPL)
|
||||||
|
+C***DESCRIPTION
|
||||||
|
+C
|
||||||
|
+C B L A S Subprogram
|
||||||
|
+C Description of Parameters
|
||||||
|
+C
|
||||||
|
+C --Input--
|
||||||
|
+C N number of elements in input vector(s)
|
||||||
|
+C SB single precision scalar to be added to inner product
|
||||||
|
+C SX single precision vector with N elements
|
||||||
|
+C INCX storage spacing between elements of SX
|
||||||
|
+C SY single precision vector with N elements
|
||||||
|
+C INCY storage spacing between elements of SY
|
||||||
|
+C
|
||||||
|
+C --Output--
|
||||||
|
+C SDSDOT single precision dot product (SB if N .LE. 0)
|
||||||
|
+C
|
||||||
|
+C Returns S.P. result with dot product accumulated in D.P.
|
||||||
|
+C SDSDOT = SB + sum for I = 0 to N-1 of SX(LX+I*INCX)*SY(LY+I*INCY),
|
||||||
|
+C where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
|
||||||
|
+C defined in a similar way using INCY.
|
||||||
|
+C
|
||||||
|
+C***REFERENCES C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
|
||||||
|
+C Krogh, Basic linear algebra subprograms for Fortran
|
||||||
|
+C usage, Algorithm No. 539, Transactions on Mathematical
|
||||||
|
+C Software 5, 3 (September 1979), pp. 308-323.
|
||||||
|
+C***ROUTINES CALLED (NONE)
|
||||||
|
+C***REVISION HISTORY (YYMMDD)
|
||||||
|
+C 791001 DATE WRITTEN
|
||||||
|
+C 890531 Changed all specific intrinsics to generic. (WRB)
|
||||||
|
+C 890831 Modified array declarations. (WRB)
|
||||||
|
+C 890831 REVISION DATE from Version 3.2
|
||||||
|
+C 891214 Prologue converted to Version 4.0 format. (BAB)
|
||||||
|
+C 920310 Corrected definition of LX in DESCRIPTION. (WRB)
|
||||||
|
+C 920501 Reformatted the REFERENCES section. (WRB)
|
||||||
|
+C***END PROLOGUE SDSDOT
|
||||||
|
+ REAL SX(*), SY(*), SB
|
||||||
|
+ DOUBLE PRECISION DSDOT
|
||||||
|
+C***FIRST EXECUTABLE STATEMENT SDSDOT
|
||||||
|
+ DSDOT = SB
|
||||||
|
+ IF (N .LE. 0) GO TO 30
|
||||||
|
+ IF (INCX.EQ.INCY .AND. INCX.GT.0) GO TO 40
|
||||||
|
+C
|
||||||
|
+C Code for unequal or nonpositive increments.
|
||||||
|
+C
|
||||||
|
+ KX = 1
|
||||||
|
+ KY = 1
|
||||||
|
+ IF (INCX .LT. 0) KX = 1+(1-N)*INCX
|
||||||
|
+ IF (INCY .LT. 0) KY = 1+(1-N)*INCY
|
||||||
|
+ DO 10 I = 1,N
|
||||||
|
+ DSDOT = DSDOT + DBLE(SX(KX))*DBLE(SY(KY))
|
||||||
|
+ KX = KX + INCX
|
||||||
|
+ KY = KY + INCY
|
||||||
|
+ 10 CONTINUE
|
||||||
|
+ 30 SDSDOT = DSDOT
|
||||||
|
+ RETURN
|
||||||
|
+C
|
||||||
|
+C Code for equal and positive increments.
|
||||||
|
+C
|
||||||
|
+ 40 NS = N*INCX
|
||||||
|
+ DO 50 I = 1,NS,INCX
|
||||||
|
+ DSDOT = DSDOT + DBLE(SX(I))*DBLE(SY(I))
|
||||||
|
+ 50 CONTINUE
|
||||||
|
+ SDSDOT = DSDOT
|
||||||
|
+ RETURN
|
||||||
|
+ END
|
||||||
|
--- LAPACK/BLAS/SRC/csrot.f.BAD 2005-09-28 17:59:45.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/csrot.f 2005-09-28 18:00:41.000000000 -0500
|
||||||
|
@@ -0,0 +1,38 @@
|
||||||
|
+ subroutine csrot (n,cx,incx,cy,incy,c,s)
|
||||||
|
+c
|
||||||
|
+c applies a plane rotation, where the cos and sin (c and s) are real
|
||||||
|
+c and the vectors cx and cy are complex.
|
||||||
|
+c jack dongarra, linpack, 3/11/78.
|
||||||
|
+c
|
||||||
|
+ complex cx(1),cy(1),ctemp
|
||||||
|
+ real c,s
|
||||||
|
+ integer i,incx,incy,ix,iy,n
|
||||||
|
+c
|
||||||
|
+ if(n.le.0)return
|
||||||
|
+ if(incx.eq.1.and.incy.eq.1)go to 20
|
||||||
|
+c
|
||||||
|
+c code for unequal increments or equal increments not equal
|
||||||
|
+c to 1
|
||||||
|
+c
|
||||||
|
+ ix = 1
|
||||||
|
+ iy = 1
|
||||||
|
+ if(incx.lt.0)ix = (-n+1)*incx + 1
|
||||||
|
+ if(incy.lt.0)iy = (-n+1)*incy + 1
|
||||||
|
+ do 10 i = 1,n
|
||||||
|
+ ctemp = c*cx(ix) + s*cy(iy)
|
||||||
|
+ cy(iy) = c*cy(iy) - s*cx(ix)
|
||||||
|
+ cx(ix) = ctemp
|
||||||
|
+ ix = ix + incx
|
||||||
|
+ iy = iy + incy
|
||||||
|
+ 10 continue
|
||||||
|
+ return
|
||||||
|
+c
|
||||||
|
+c code for both increments equal to 1
|
||||||
|
+c
|
||||||
|
+ 20 do 30 i = 1,n
|
||||||
|
+ ctemp = c*cx(i) + s*cy(i)
|
||||||
|
+ cy(i) = c*cy(i) - s*cx(i)
|
||||||
|
+ cx(i) = ctemp
|
||||||
|
+ 30 continue
|
||||||
|
+ return
|
||||||
|
+ end
|
||||||
|
--- LAPACK/BLAS/SRC/srotmg.f.BAD 2005-09-28 18:00:24.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/srotmg.f 2005-09-28 18:01:45.000000000 -0500
|
||||||
|
@@ -0,0 +1,166 @@
|
||||||
|
+ SUBROUTINE SROTMG (SD1,SD2,SX1,SY1,SPARAM)
|
||||||
|
+C
|
||||||
|
+C CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS
|
||||||
|
+C THE SECOND COMPONENT OF THE 2-VECTOR (SQRT(SD1)*SX1,SQRT(SD2)*
|
||||||
|
+C SY2)**T.
|
||||||
|
+C WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
|
||||||
|
+C
|
||||||
|
+C SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0
|
||||||
|
+C
|
||||||
|
+C (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0)
|
||||||
|
+C H=( ) ( ) ( ) ( )
|
||||||
|
+C (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0).
|
||||||
|
+C LOCATIONS 2-4 OF SPARAM CONTAIN SH11,SH21,SH12, AND SH22
|
||||||
|
+C RESPECTIVELY. (VALUES OF 1.E0, -1.E0, OR 0.E0 IMPLIED BY THE
|
||||||
|
+C VALUE OF SPARAM(1) ARE NOT STORED IN SPARAM.)
|
||||||
|
+C
|
||||||
|
+C THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE
|
||||||
|
+C INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE
|
||||||
|
+C OF SD1 AND SD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
|
||||||
|
+C
|
||||||
|
+ DIMENSION SPARAM(5)
|
||||||
|
+C
|
||||||
|
+ DATA ZERO,ONE,TWO /0.E0,1.E0,2.E0/
|
||||||
|
+ DATA GAM,GAMSQ,RGAMSQ/4096.E0,1.67772E7,5.96046E-8/
|
||||||
|
+ IF(.NOT. SD1 .LT. ZERO) GO TO 10
|
||||||
|
+C GO ZERO-H-D-AND-SX1..
|
||||||
|
+ GO TO 60
|
||||||
|
+ 10 CONTINUE
|
||||||
|
+C CASE-SD1-NONNEGATIVE
|
||||||
|
+ SP2=SD2*SY1
|
||||||
|
+ IF(.NOT. SP2 .EQ. ZERO) GO TO 20
|
||||||
|
+ SFLAG=-TWO
|
||||||
|
+ GO TO 260
|
||||||
|
+C REGULAR-CASE..
|
||||||
|
+ 20 CONTINUE
|
||||||
|
+ SP1=SD1*SX1
|
||||||
|
+ SQ2=SP2*SY1
|
||||||
|
+ SQ1=SP1*SX1
|
||||||
|
+C
|
||||||
|
+ IF(.NOT. ABS(SQ1) .GT. ABS(SQ2)) GO TO 40
|
||||||
|
+ SH21=-SY1/SX1
|
||||||
|
+ SH12=SP2/SP1
|
||||||
|
+C
|
||||||
|
+ SU=ONE-SH12*SH21
|
||||||
|
+C
|
||||||
|
+ IF(.NOT. SU .LE. ZERO) GO TO 30
|
||||||
|
+C GO ZERO-H-D-AND-SX1..
|
||||||
|
+ GO TO 60
|
||||||
|
+ 30 CONTINUE
|
||||||
|
+ SFLAG=ZERO
|
||||||
|
+ SD1=SD1/SU
|
||||||
|
+ SD2=SD2/SU
|
||||||
|
+ SX1=SX1*SU
|
||||||
|
+C GO SCALE-CHECK..
|
||||||
|
+ GO TO 100
|
||||||
|
+ 40 CONTINUE
|
||||||
|
+ IF(.NOT. SQ2 .LT. ZERO) GO TO 50
|
||||||
|
+C GO ZERO-H-D-AND-SX1..
|
||||||
|
+ GO TO 60
|
||||||
|
+ 50 CONTINUE
|
||||||
|
+ SFLAG=ONE
|
||||||
|
+ SH11=SP1/SP2
|
||||||
|
+ SH22=SX1/SY1
|
||||||
|
+ SU=ONE+SH11*SH22
|
||||||
|
+ STEMP=SD2/SU
|
||||||
|
+ SD2=SD1/SU
|
||||||
|
+ SD1=STEMP
|
||||||
|
+ SX1=SY1*SU
|
||||||
|
+C GO SCALE-CHECK
|
||||||
|
+ GO TO 100
|
||||||
|
+C PROCEDURE..ZERO-H-D-AND-SX1..
|
||||||
|
+ 60 CONTINUE
|
||||||
|
+ SFLAG=-ONE
|
||||||
|
+ SH11=ZERO
|
||||||
|
+ SH12=ZERO
|
||||||
|
+ SH21=ZERO
|
||||||
|
+ SH22=ZERO
|
||||||
|
+C
|
||||||
|
+ SD1=ZERO
|
||||||
|
+ SD2=ZERO
|
||||||
|
+ SX1=ZERO
|
||||||
|
+C RETURN..
|
||||||
|
+ GO TO 220
|
||||||
|
+C PROCEDURE..FIX-H..
|
||||||
|
+ 70 CONTINUE
|
||||||
|
+ IF(.NOT. SFLAG .GE. ZERO) GO TO 90
|
||||||
|
+C
|
||||||
|
+ IF(.NOT. SFLAG .EQ. ZERO) GO TO 80
|
||||||
|
+ SH11=ONE
|
||||||
|
+ SH22=ONE
|
||||||
|
+ SFLAG=-ONE
|
||||||
|
+ GO TO 90
|
||||||
|
+ 80 CONTINUE
|
||||||
|
+ SH21=-ONE
|
||||||
|
+ SH12=ONE
|
||||||
|
+ SFLAG=-ONE
|
||||||
|
+ 90 CONTINUE
|
||||||
|
+ GO TO IGO,(120,150,180,210)
|
||||||
|
+C PROCEDURE..SCALE-CHECK
|
||||||
|
+ 100 CONTINUE
|
||||||
|
+ 110 CONTINUE
|
||||||
|
+ IF(.NOT. SD1 .LE. RGAMSQ) GO TO 130
|
||||||
|
+ IF(SD1 .EQ. ZERO) GO TO 160
|
||||||
|
+ ASSIGN 120 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 120 CONTINUE
|
||||||
|
+ SD1=SD1*GAM**2
|
||||||
|
+ SX1=SX1/GAM
|
||||||
|
+ SH11=SH11/GAM
|
||||||
|
+ SH12=SH12/GAM
|
||||||
|
+ GO TO 110
|
||||||
|
+ 130 CONTINUE
|
||||||
|
+ 140 CONTINUE
|
||||||
|
+ IF(.NOT. SD1 .GE. GAMSQ) GO TO 160
|
||||||
|
+ ASSIGN 150 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 150 CONTINUE
|
||||||
|
+ SD1=SD1/GAM**2
|
||||||
|
+ SX1=SX1*GAM
|
||||||
|
+ SH11=SH11*GAM
|
||||||
|
+ SH12=SH12*GAM
|
||||||
|
+ GO TO 140
|
||||||
|
+ 160 CONTINUE
|
||||||
|
+ 170 CONTINUE
|
||||||
|
+ IF(.NOT. ABS(SD2) .LE. RGAMSQ) GO TO 190
|
||||||
|
+ IF(SD2 .EQ. ZERO) GO TO 220
|
||||||
|
+ ASSIGN 180 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 180 CONTINUE
|
||||||
|
+ SD2=SD2*GAM**2
|
||||||
|
+ SH21=SH21/GAM
|
||||||
|
+ SH22=SH22/GAM
|
||||||
|
+ GO TO 170
|
||||||
|
+ 190 CONTINUE
|
||||||
|
+ 200 CONTINUE
|
||||||
|
+ IF(.NOT. ABS(SD2) .GE. GAMSQ) GO TO 220
|
||||||
|
+ ASSIGN 210 TO IGO
|
||||||
|
+C FIX-H..
|
||||||
|
+ GO TO 70
|
||||||
|
+ 210 CONTINUE
|
||||||
|
+ SD2=SD2/GAM**2
|
||||||
|
+ SH21=SH21*GAM
|
||||||
|
+ SH22=SH22*GAM
|
||||||
|
+ GO TO 200
|
||||||
|
+ 220 CONTINUE
|
||||||
|
+ IF(SFLAG)250,230,240
|
||||||
|
+ 230 CONTINUE
|
||||||
|
+ SPARAM(3)=SH21
|
||||||
|
+ SPARAM(4)=SH12
|
||||||
|
+ GO TO 260
|
||||||
|
+ 240 CONTINUE
|
||||||
|
+ SPARAM(2)=SH11
|
||||||
|
+ SPARAM(5)=SH22
|
||||||
|
+ GO TO 260
|
||||||
|
+ 250 CONTINUE
|
||||||
|
+ SPARAM(2)=SH11
|
||||||
|
+ SPARAM(3)=SH21
|
||||||
|
+ SPARAM(4)=SH12
|
||||||
|
+ SPARAM(5)=SH22
|
||||||
|
+ 260 CONTINUE
|
||||||
|
+ SPARAM(1)=SFLAG
|
||||||
|
+ RETURN
|
||||||
|
+ END
|
||||||
|
--- LAPACK/BLAS/SRC/dsdot.f.BAD 2005-09-28 18:00:03.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/dsdot.f 2005-09-28 18:01:11.000000000 -0500
|
||||||
|
@@ -0,0 +1,74 @@
|
||||||
|
+*DECK DSDOT
|
||||||
|
+ DOUBLE PRECISION FUNCTION DSDOT (N, SX, INCX, SY, INCY)
|
||||||
|
+C***BEGIN PROLOGUE DSDOT
|
||||||
|
+C***PURPOSE Compute the inner product of two vectors with extended
|
||||||
|
+C precision accumulation and result.
|
||||||
|
+C***LIBRARY SLATEC (BLAS)
|
||||||
|
+C***CATEGORY D1A4
|
||||||
|
+C***TYPE DOUBLE PRECISION (DSDOT-D, DCDOT-C)
|
||||||
|
+C***KEYWORDS BLAS, COMPLEX VECTORS, DOT PRODUCT, INNER PRODUCT,
|
||||||
|
+C LINEAR ALGEBRA, VECTOR
|
||||||
|
+C***AUTHOR Lawson, C. L., (JPL)
|
||||||
|
+C Hanson, R. J., (SNLA)
|
||||||
|
+C Kincaid, D. R., (U. of Texas)
|
||||||
|
+C Krogh, F. T., (JPL)
|
||||||
|
+C***DESCRIPTION
|
||||||
|
+C
|
||||||
|
+C B L A S Subprogram
|
||||||
|
+C Description of Parameters
|
||||||
|
+C
|
||||||
|
+C --Input--
|
||||||
|
+C N number of elements in input vector(s)
|
||||||
|
+C SX single precision vector with N elements
|
||||||
|
+C INCX storage spacing between elements of SX
|
||||||
|
+C SY single precision vector with N elements
|
||||||
|
+C INCY storage spacing between elements of SY
|
||||||
|
+C
|
||||||
|
+C --Output--
|
||||||
|
+C DSDOT double precision dot product (zero if N.LE.0)
|
||||||
|
+C
|
||||||
|
+C Returns D.P. dot product accumulated in D.P., for S.P. SX and SY
|
||||||
|
+C DSDOT = sum for I = 0 to N-1 of SX(LX+I*INCX) * SY(LY+I*INCY),
|
||||||
|
+C where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
|
||||||
|
+C defined in a similar way using INCY.
|
||||||
|
+C
|
||||||
|
+C***REFERENCES C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
|
||||||
|
+C Krogh, Basic linear algebra subprograms for Fortran
|
||||||
|
+C usage, Algorithm No. 539, Transactions on Mathematical
|
||||||
|
+C Software 5, 3 (September 1979), pp. 308-323.
|
||||||
|
+C***ROUTINES CALLED (NONE)
|
||||||
|
+C***REVISION HISTORY (YYMMDD)
|
||||||
|
+C 791001 DATE WRITTEN
|
||||||
|
+C 890831 Modified array declarations. (WRB)
|
||||||
|
+C 890831 REVISION DATE from Version 3.2
|
||||||
|
+C 891214 Prologue converted to Version 4.0 format. (BAB)
|
||||||
|
+C 920310 Corrected definition of LX in DESCRIPTION. (WRB)
|
||||||
|
+C 920501 Reformatted the REFERENCES section. (WRB)
|
||||||
|
+C***END PROLOGUE DSDOT
|
||||||
|
+ REAL SX(*),SY(*)
|
||||||
|
+C***FIRST EXECUTABLE STATEMENT DSDOT
|
||||||
|
+ DSDOT = 0.0D0
|
||||||
|
+ IF (N .LE. 0) RETURN
|
||||||
|
+ IF (INCX.EQ.INCY .AND. INCX.GT.0) GO TO 20
|
||||||
|
+C
|
||||||
|
+C Code for unequal or nonpositive increments.
|
||||||
|
+C
|
||||||
|
+ KX = 1
|
||||||
|
+ KY = 1
|
||||||
|
+ IF (INCX .LT. 0) KX = 1+(1-N)*INCX
|
||||||
|
+ IF (INCY .LT. 0) KY = 1+(1-N)*INCY
|
||||||
|
+ DO 10 I = 1,N
|
||||||
|
+ DSDOT = DSDOT + DBLE(SX(KX))*DBLE(SY(KY))
|
||||||
|
+ KX = KX + INCX
|
||||||
|
+ KY = KY + INCY
|
||||||
|
+ 10 CONTINUE
|
||||||
|
+ RETURN
|
||||||
|
+C
|
||||||
|
+C Code for equal, positive, non-unit increments.
|
||||||
|
+C
|
||||||
|
+ 20 NS = N*INCX
|
||||||
|
+ DO 30 I = 1,NS,INCX
|
||||||
|
+ DSDOT = DSDOT + DBLE(SX(I))*DBLE(SY(I))
|
||||||
|
+ 30 CONTINUE
|
||||||
|
+ RETURN
|
||||||
|
+ END
|
||||||
|
--- LAPACK/BLAS/SRC/srotm.f.BAD 2005-09-28 18:00:17.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/srotm.f 2005-09-28 18:01:34.000000000 -0500
|
||||||
|
@@ -0,0 +1,106 @@
|
||||||
|
+ SUBROUTINE SROTM (N,SX,INCX,SY,INCY,SPARAM)
|
||||||
|
+C
|
||||||
|
+C APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
|
||||||
|
+C
|
||||||
|
+C (SX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF SX ARE IN
|
||||||
|
+C (DX**T)
|
||||||
|
+C
|
||||||
|
+C SX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE
|
||||||
|
+C LX = (-INCX)*N, AND SIMILARLY FOR SY USING USING LY AND INCY.
|
||||||
|
+C WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
|
||||||
|
+C
|
||||||
|
+C SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0
|
||||||
|
+C
|
||||||
|
+C (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0)
|
||||||
|
+C H=( ) ( ) ( ) ( )
|
||||||
|
+C (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0).
|
||||||
|
+C SEE SROTMG FOR A DESCRIPTION OF DATA STORAGE IN SPARAM.
|
||||||
|
+C
|
||||||
|
+ DIMENSION SX(1),SY(1),SPARAM(5)
|
||||||
|
+ DATA ZERO,TWO/0.E0,2.E0/
|
||||||
|
+C
|
||||||
|
+ SFLAG=SPARAM(1)
|
||||||
|
+ IF(N .LE. 0 .OR.(SFLAG+TWO.EQ.ZERO)) GO TO 140
|
||||||
|
+ IF(.NOT.(INCX.EQ.INCY.AND. INCX .GT.0)) GO TO 70
|
||||||
|
+C
|
||||||
|
+ NSTEPS=N*INCX
|
||||||
|
+ IF(SFLAG) 50,10,30
|
||||||
|
+ 10 CONTINUE
|
||||||
|
+ SH12=SPARAM(4)
|
||||||
|
+ SH21=SPARAM(3)
|
||||||
|
+ DO 20 I=1,NSTEPS,INCX
|
||||||
|
+ W=SX(I)
|
||||||
|
+ Z=SY(I)
|
||||||
|
+ SX(I)=W+Z*SH12
|
||||||
|
+ SY(I)=W*SH21+Z
|
||||||
|
+ 20 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 30 CONTINUE
|
||||||
|
+ SH11=SPARAM(2)
|
||||||
|
+ SH22=SPARAM(5)
|
||||||
|
+ DO 40 I=1,NSTEPS,INCX
|
||||||
|
+ W=SX(I)
|
||||||
|
+ Z=SY(I)
|
||||||
|
+ SX(I)=W*SH11+Z
|
||||||
|
+ SY(I)=-W+SH22*Z
|
||||||
|
+ 40 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 50 CONTINUE
|
||||||
|
+ SH11=SPARAM(2)
|
||||||
|
+ SH12=SPARAM(4)
|
||||||
|
+ SH21=SPARAM(3)
|
||||||
|
+ SH22=SPARAM(5)
|
||||||
|
+ DO 60 I=1,NSTEPS,INCX
|
||||||
|
+ W=SX(I)
|
||||||
|
+ Z=SY(I)
|
||||||
|
+ SX(I)=W*SH11+Z*SH12
|
||||||
|
+ SY(I)=W*SH21+Z*SH22
|
||||||
|
+ 60 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 70 CONTINUE
|
||||||
|
+ KX=1
|
||||||
|
+ KY=1
|
||||||
|
+ IF(INCX .LT. 0) KX=1+(1-N)*INCX
|
||||||
|
+ IF(INCY .LT. 0) KY=1+(1-N)*INCY
|
||||||
|
+C
|
||||||
|
+ IF(SFLAG)120,80,100
|
||||||
|
+ 80 CONTINUE
|
||||||
|
+ SH12=SPARAM(4)
|
||||||
|
+ SH21=SPARAM(3)
|
||||||
|
+ DO 90 I=1,N
|
||||||
|
+ W=SX(KX)
|
||||||
|
+ Z=SY(KY)
|
||||||
|
+ SX(KX)=W+Z*SH12
|
||||||
|
+ SY(KY)=W*SH21+Z
|
||||||
|
+ KX=KX+INCX
|
||||||
|
+ KY=KY+INCY
|
||||||
|
+ 90 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 100 CONTINUE
|
||||||
|
+ SH11=SPARAM(2)
|
||||||
|
+ SH22=SPARAM(5)
|
||||||
|
+ DO 110 I=1,N
|
||||||
|
+ W=SX(KX)
|
||||||
|
+ Z=SY(KY)
|
||||||
|
+ SX(KX)=W*SH11+Z
|
||||||
|
+ SY(KY)=-W+SH22*Z
|
||||||
|
+ KX=KX+INCX
|
||||||
|
+ KY=KY+INCY
|
||||||
|
+ 110 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 120 CONTINUE
|
||||||
|
+ SH11=SPARAM(2)
|
||||||
|
+ SH12=SPARAM(4)
|
||||||
|
+ SH21=SPARAM(3)
|
||||||
|
+ SH22=SPARAM(5)
|
||||||
|
+ DO 130 I=1,N
|
||||||
|
+ W=SX(KX)
|
||||||
|
+ Z=SY(KY)
|
||||||
|
+ SX(KX)=W*SH11+Z*SH12
|
||||||
|
+ SY(KY)=W*SH21+Z*SH22
|
||||||
|
+ KX=KX+INCX
|
||||||
|
+ KY=KY+INCY
|
||||||
|
+ 130 CONTINUE
|
||||||
|
+ 140 CONTINUE
|
||||||
|
+ RETURN
|
||||||
|
+ END
|
||||||
|
--- LAPACK/BLAS/SRC/zdrot.f.BAD 2005-09-28 18:00:31.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/zdrot.f 2005-09-28 18:02:00.000000000 -0500
|
||||||
|
@@ -0,0 +1,38 @@
|
||||||
|
+ subroutine zdrot (n,zx,incx,zy,incy,c,s)
|
||||||
|
+c
|
||||||
|
+c applies a plane rotation, where the cos and sin (c and s) are
|
||||||
|
+c double precision and the vectors zx and zy are double complex.
|
||||||
|
+c jack dongarra, linpack, 3/11/78.
|
||||||
|
+c
|
||||||
|
+ double complex zx(1),zy(1),ztemp
|
||||||
|
+ double precision c,s
|
||||||
|
+ integer i,incx,incy,ix,iy,n
|
||||||
|
+c
|
||||||
|
+ if(n.le.0)return
|
||||||
|
+ if(incx.eq.1.and.incy.eq.1)go to 20
|
||||||
|
+c
|
||||||
|
+c code for unequal increments or equal increments not equal
|
||||||
|
+c to 1
|
||||||
|
+c
|
||||||
|
+ ix = 1
|
||||||
|
+ iy = 1
|
||||||
|
+ if(incx.lt.0)ix = (-n+1)*incx + 1
|
||||||
|
+ if(incy.lt.0)iy = (-n+1)*incy + 1
|
||||||
|
+ do 10 i = 1,n
|
||||||
|
+ ztemp = c*zx(ix) + s*zy(iy)
|
||||||
|
+ zy(iy) = c*zy(iy) - s*zx(ix)
|
||||||
|
+ zx(ix) = ztemp
|
||||||
|
+ ix = ix + incx
|
||||||
|
+ iy = iy + incy
|
||||||
|
+ 10 continue
|
||||||
|
+ return
|
||||||
|
+c
|
||||||
|
+c code for both increments equal to 1
|
||||||
|
+c
|
||||||
|
+ 20 do 30 i = 1,n
|
||||||
|
+ ztemp = c*zx(i) + s*zy(i)
|
||||||
|
+ zy(i) = c*zy(i) - s*zx(i)
|
||||||
|
+ zx(i) = ztemp
|
||||||
|
+ 30 continue
|
||||||
|
+ return
|
||||||
|
+ end
|
||||||
|
--- LAPACK/BLAS/SRC/drotm.f.BAD 2005-09-28 17:59:52.000000000 -0500
|
||||||
|
+++ LAPACK/BLAS/SRC/drotm.f 2005-09-28 18:00:50.000000000 -0500
|
||||||
|
@@ -0,0 +1,108 @@
|
||||||
|
+ SUBROUTINE DROTM (N,DX,INCX,DY,INCY,DPARAM)
|
||||||
|
+C
|
||||||
|
+C APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
|
||||||
|
+C
|
||||||
|
+C (DX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF DX ARE IN
|
||||||
|
+C (DY**T)
|
||||||
|
+C
|
||||||
|
+C DX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE
|
||||||
|
+C LX = (-INCX)*N, AND SIMILARLY FOR SY USING LY AND INCY.
|
||||||
|
+C WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
|
||||||
|
+C
|
||||||
|
+C DFLAG=-1.D0 DFLAG=0.D0 DFLAG=1.D0 DFLAG=-2.D0
|
||||||
|
+C
|
||||||
|
+C (DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0)
|
||||||
|
+C H=( ) ( ) ( ) ( )
|
||||||
|
+C (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0).
|
||||||
|
+C SEE DROTMG FOR A DESCRIPTION OF DATA STORAGE IN DPARAM.
|
||||||
|
+C
|
||||||
|
+ DOUBLE PRECISION DFLAG,DH12,DH22,DX,TWO,Z,DH11,DH21,
|
||||||
|
+ 1 DPARAM,DY,W,ZERO
|
||||||
|
+ DIMENSION DX(1),DY(1),DPARAM(5)
|
||||||
|
+ DATA ZERO,TWO/0.D0,2.D0/
|
||||||
|
+C
|
||||||
|
+ DFLAG=DPARAM(1)
|
||||||
|
+ IF(N .LE. 0 .OR.(DFLAG+TWO.EQ.ZERO)) GO TO 140
|
||||||
|
+ IF(.NOT.(INCX.EQ.INCY.AND. INCX .GT.0)) GO TO 70
|
||||||
|
+C
|
||||||
|
+ NSTEPS=N*INCX
|
||||||
|
+ IF(DFLAG) 50,10,30
|
||||||
|
+ 10 CONTINUE
|
||||||
|
+ DH12=DPARAM(4)
|
||||||
|
+ DH21=DPARAM(3)
|
||||||
|
+ DO 20 I=1,NSTEPS,INCX
|
||||||
|
+ W=DX(I)
|
||||||
|
+ Z=DY(I)
|
||||||
|
+ DX(I)=W+Z*DH12
|
||||||
|
+ DY(I)=W*DH21+Z
|
||||||
|
+ 20 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 30 CONTINUE
|
||||||
|
+ DH11=DPARAM(2)
|
||||||
|
+ DH22=DPARAM(5)
|
||||||
|
+ DO 40 I=1,NSTEPS,INCX
|
||||||
|
+ W=DX(I)
|
||||||
|
+ Z=DY(I)
|
||||||
|
+ DX(I)=W*DH11+Z
|
||||||
|
+ DY(I)=-W+DH22*Z
|
||||||
|
+ 40 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 50 CONTINUE
|
||||||
|
+ DH11=DPARAM(2)
|
||||||
|
+ DH12=DPARAM(4)
|
||||||
|
+ DH21=DPARAM(3)
|
||||||
|
+ DH22=DPARAM(5)
|
||||||
|
+ DO 60 I=1,NSTEPS,INCX
|
||||||
|
+ W=DX(I)
|
||||||
|
+ Z=DY(I)
|
||||||
|
+ DX(I)=W*DH11+Z*DH12
|
||||||
|
+ DY(I)=W*DH21+Z*DH22
|
||||||
|
+ 60 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 70 CONTINUE
|
||||||
|
+ KX=1
|
||||||
|
+ KY=1
|
||||||
|
+ IF(INCX .LT. 0) KX=1+(1-N)*INCX
|
||||||
|
+ IF(INCY .LT. 0) KY=1+(1-N)*INCY
|
||||||
|
+C
|
||||||
|
+ IF(DFLAG)120,80,100
|
||||||
|
+ 80 CONTINUE
|
||||||
|
+ DH12=DPARAM(4)
|
||||||
|
+ DH21=DPARAM(3)
|
||||||
|
+ DO 90 I=1,N
|
||||||
|
+ W=DX(KX)
|
||||||
|
+ Z=DY(KY)
|
||||||
|
+ DX(KX)=W+Z*DH12
|
||||||
|
+ DY(KY)=W*DH21+Z
|
||||||
|
+ KX=KX+INCX
|
||||||
|
+ KY=KY+INCY
|
||||||
|
+ 90 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 100 CONTINUE
|
||||||
|
+ DH11=DPARAM(2)
|
||||||
|
+ DH22=DPARAM(5)
|
||||||
|
+ DO 110 I=1,N
|
||||||
|
+ W=DX(KX)
|
||||||
|
+ Z=DY(KY)
|
||||||
|
+ DX(KX)=W*DH11+Z
|
||||||
|
+ DY(KY)=-W+DH22*Z
|
||||||
|
+ KX=KX+INCX
|
||||||
|
+ KY=KY+INCY
|
||||||
|
+ 110 CONTINUE
|
||||||
|
+ GO TO 140
|
||||||
|
+ 120 CONTINUE
|
||||||
|
+ DH11=DPARAM(2)
|
||||||
|
+ DH12=DPARAM(4)
|
||||||
|
+ DH21=DPARAM(3)
|
||||||
|
+ DH22=DPARAM(5)
|
||||||
|
+ DO 130 I=1,N
|
||||||
|
+ W=DX(KX)
|
||||||
|
+ Z=DY(KY)
|
||||||
|
+ DX(KX)=W*DH11+Z*DH12
|
||||||
|
+ DY(KY)=W*DH21+Z*DH22
|
||||||
|
+ KX=KX+INCX
|
||||||
|
+ KY=KY+INCY
|
||||||
|
+ 130 CONTINUE
|
||||||
|
+ 140 CONTINUE
|
||||||
|
+ RETURN
|
||||||
|
+ END
|
24100
lapack-20010525.patch
Normal file
24100
lapack-20010525.patch
Normal file
File diff suppressed because it is too large
Load Diff
29
lapack-3.1.0-make.inc.patch
Normal file
29
lapack-3.1.0-make.inc.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
--- lapack-3.1.0/make.inc.BAD 2006-11-14 15:58:41.000000000 -0600
|
||||||
|
+++ lapack-3.1.0/make.inc 2006-11-14 16:00:03.000000000 -0600
|
||||||
|
@@ -10,7 +10,7 @@
|
||||||
|
#
|
||||||
|
# The machine (platform) identifier to append to the library names
|
||||||
|
#
|
||||||
|
-PLAT = _LINUX
|
||||||
|
+PLAT =
|
||||||
|
#
|
||||||
|
# Modify the FORTRAN and OPTS definitions to refer to the
|
||||||
|
# compiler and desired compiler options for your machine. NOOPT
|
||||||
|
@@ -18,12 +18,13 @@
|
||||||
|
# selected. Define LOADER and LOADOPTS to refer to the loader and
|
||||||
|
# desired load options for your machine.
|
||||||
|
#
|
||||||
|
-FORTRAN = g77
|
||||||
|
-OPTS = -funroll-all-loops -O3 -Wimplicit -Wno-globals -Wunused
|
||||||
|
+FORTRAN = gfortran
|
||||||
|
+#OPTS = -funroll-all-loops -O3 -Wimplicit -Wno-globals -Wunused
|
||||||
|
#OPTS = -O0 -g -Wall
|
||||||
|
DRVOPTS = $(OPTS)
|
||||||
|
-NOOPT = -Wimplicit -Wno-globals -Wunused
|
||||||
|
-LOADER = g77
|
||||||
|
+# NOOPT = -Wimplicit -Wno-globals -Wunused
|
||||||
|
+NOOPT =
|
||||||
|
+LOADER = gfortran
|
||||||
|
LOADOPTS =
|
||||||
|
#
|
||||||
|
# The archiver and the flag(s) to use when building archive (library)
|
20
lapack-3.1.0-no-external-etime.patch
Normal file
20
lapack-3.1.0-no-external-etime.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
--- lapack-3.1.0/INSTALL/dsecnd.f.BAD 2007-01-05 20:35:09.000000000 -0600
|
||||||
|
+++ lapack-3.1.0/INSTALL/dsecnd.f 2007-01-05 20:35:16.000000000 -0600
|
||||||
|
@@ -20,7 +20,6 @@
|
||||||
|
* ..
|
||||||
|
* .. External Functions ..
|
||||||
|
REAL ETIME
|
||||||
|
- EXTERNAL ETIME
|
||||||
|
* ..
|
||||||
|
* .. Executable Statements ..
|
||||||
|
*
|
||||||
|
--- lapack-3.1.0/INSTALL/second.f.BAD 2007-01-05 20:35:39.000000000 -0600
|
||||||
|
+++ lapack-3.1.0/INSTALL/second.f 2007-01-05 20:35:45.000000000 -0600
|
||||||
|
@@ -20,7 +20,6 @@
|
||||||
|
* ..
|
||||||
|
* .. External Functions ..
|
||||||
|
REAL ETIME
|
||||||
|
- EXTERNAL ETIME
|
||||||
|
* ..
|
||||||
|
* .. Executable Statements ..
|
||||||
|
*
|
23
lapack-3.1.1-make.inc.patch
Normal file
23
lapack-3.1.1-make.inc.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
--- lapack-3.1.1/INSTALL/make.inc.gfortran.BAD 2007-05-25 15:34:55.000000000 -0500
|
||||||
|
+++ lapack-3.1.1/INSTALL/make.inc.gfortran 2007-05-25 15:35:51.000000000 -0500
|
||||||
|
@@ -8,7 +8,7 @@ SHELL = /bin/sh
|
||||||
|
#
|
||||||
|
# The machine (platform) identifier to append to the library names
|
||||||
|
#
|
||||||
|
-PLAT = _LINUX
|
||||||
|
+PLAT =
|
||||||
|
#
|
||||||
|
# Modify the FORTRAN and OPTS definitions to refer to the
|
||||||
|
# compiler and desired compiler options for your machine. NOOPT
|
||||||
|
@@ -17,9 +17,9 @@ PLAT = _LINUX
|
||||||
|
# desired load options for your machine.
|
||||||
|
#
|
||||||
|
FORTRAN = gfortran
|
||||||
|
-OPTS = -O2
|
||||||
|
+#OPTS = -O2
|
||||||
|
DRVOPTS = $(OPTS)
|
||||||
|
-NOOPT = -O0
|
||||||
|
+NOOPT =
|
||||||
|
LOADER = gfortran
|
||||||
|
LOADOPTS =
|
||||||
|
#
|
15
lapack-3.4.0-make.inc.patch
Normal file
15
lapack-3.4.0-make.inc.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -up lapack-3.4.0/INSTALL/make.inc.gfortran.orig lapack-3.4.0/INSTALL/make.inc.gfortran
|
||||||
|
--- lapack-3.4.0/INSTALL/make.inc.gfortran.orig 2011-11-11 16:08:04.000000000 -0500
|
||||||
|
+++ lapack-3.4.0/INSTALL/make.inc.gfortran 2011-11-28 14:56:08.990672240 -0500
|
||||||
|
@@ -13,9 +13,9 @@ SHELL = /bin/sh
|
||||||
|
# desired load options for your machine.
|
||||||
|
#
|
||||||
|
FORTRAN = gfortran
|
||||||
|
-OPTS = -O2 -frecursive
|
||||||
|
+#OPTS = -O2 -frecursive
|
||||||
|
DRVOPTS = $(OPTS)
|
||||||
|
-NOOPT = -O0 -frecursive
|
||||||
|
+NOOPT =
|
||||||
|
LOADER = gfortran
|
||||||
|
LOADOPTS =
|
||||||
|
#
|
21
lapack-3.4.1-lapacke-shared.patch
Normal file
21
lapack-3.4.1-lapacke-shared.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
diff -up lapack-3.4.1/INSTALL/make.inc.gfortran.shared lapack-3.4.1/INSTALL/make.inc.gfortran
|
||||||
|
--- lapack-3.4.1/INSTALL/make.inc.gfortran.shared 2012-09-06 21:55:01.659280432 -0600
|
||||||
|
+++ lapack-3.4.1/INSTALL/make.inc.gfortran 2012-09-06 22:04:04.936732440 -0600
|
||||||
|
@@ -73,3 +73,4 @@ BLASLIB = ../../librefblas.a
|
||||||
|
LAPACKLIB = liblapack.a
|
||||||
|
TMGLIB = libtmglib.a
|
||||||
|
LAPACKELIB = liblapacke.a
|
||||||
|
+SHLIB_LAPACKE = liblapacke.so
|
||||||
|
diff -up lapack-3.4.1/LAPACKE/Makefile.shared lapack-3.4.1/LAPACKE/Makefile
|
||||||
|
--- lapack-3.4.1/LAPACKE/Makefile.shared 2012-04-12 17:05:47.000000000 -0600
|
||||||
|
+++ lapack-3.4.1/LAPACKE/Makefile 2012-09-06 21:55:01.851271802 -0600
|
||||||
|
@@ -49,6 +49,9 @@ lapacke:
|
||||||
|
cd src && $(MAKE)
|
||||||
|
cd utils && $(MAKE)
|
||||||
|
|
||||||
|
+shlib: lapacke
|
||||||
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc
|
||||||
|
+
|
||||||
|
lapacke_example:
|
||||||
|
cd example && $(MAKE)
|
||||||
|
|
99
lapack-3.5.0-R-blas-fixes.patch
Normal file
99
lapack-3.5.0-R-blas-fixes.patch
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
diff -up lapack-3.5.0/BLAS/SRC/dgbmv.f.R lapack-3.5.0/BLAS/SRC/dgbmv.f
|
||||||
|
--- lapack-3.5.0/BLAS/SRC/dgbmv.f.R 2011-11-03 16:32:56.000000000 -0400
|
||||||
|
+++ lapack-3.5.0/BLAS/SRC/dgbmv.f 2014-07-07 11:50:48.257175853 -0400
|
||||||
|
@@ -312,18 +312,18 @@
|
||||||
|
JX = KX
|
||||||
|
IF (INCY.EQ.1) THEN
|
||||||
|
DO 60 J = 1,N
|
||||||
|
- IF (X(JX).NE.ZERO) THEN
|
||||||
|
+c IF (X(JX).NE.ZERO) THEN
|
||||||
|
TEMP = ALPHA*X(JX)
|
||||||
|
K = KUP1 - J
|
||||||
|
DO 50 I = MAX(1,J-KU),MIN(M,J+KL)
|
||||||
|
Y(I) = Y(I) + TEMP*A(K+I,J)
|
||||||
|
50 CONTINUE
|
||||||
|
- END IF
|
||||||
|
+c END IF
|
||||||
|
JX = JX + INCX
|
||||||
|
60 CONTINUE
|
||||||
|
ELSE
|
||||||
|
DO 80 J = 1,N
|
||||||
|
- IF (X(JX).NE.ZERO) THEN
|
||||||
|
+c IF (X(JX).NE.ZERO) THEN
|
||||||
|
TEMP = ALPHA*X(JX)
|
||||||
|
IY = KY
|
||||||
|
K = KUP1 - J
|
||||||
|
@@ -331,7 +331,7 @@
|
||||||
|
Y(IY) = Y(IY) + TEMP*A(K+I,J)
|
||||||
|
IY = IY + INCY
|
||||||
|
70 CONTINUE
|
||||||
|
- END IF
|
||||||
|
+c END IF
|
||||||
|
JX = JX + INCX
|
||||||
|
IF (J.GT.KU) KY = KY + INCY
|
||||||
|
80 CONTINUE
|
||||||
|
diff -up lapack-3.5.0/BLAS/SRC/dgemm.f.R lapack-3.5.0/BLAS/SRC/dgemm.f
|
||||||
|
--- lapack-3.5.0/BLAS/SRC/dgemm.f.R 2011-11-03 16:32:56.000000000 -0400
|
||||||
|
+++ lapack-3.5.0/BLAS/SRC/dgemm.f 2014-07-07 11:50:48.257175853 -0400
|
||||||
|
@@ -311,12 +311,12 @@
|
||||||
|
60 CONTINUE
|
||||||
|
END IF
|
||||||
|
DO 80 L = 1,K
|
||||||
|
- IF (B(L,J).NE.ZERO) THEN
|
||||||
|
+c IF (B(L,J).NE.ZERO) THEN
|
||||||
|
TEMP = ALPHA*B(L,J)
|
||||||
|
DO 70 I = 1,M
|
||||||
|
C(I,J) = C(I,J) + TEMP*A(I,L)
|
||||||
|
70 CONTINUE
|
||||||
|
- END IF
|
||||||
|
+c END IF
|
||||||
|
80 CONTINUE
|
||||||
|
90 CONTINUE
|
||||||
|
ELSE
|
||||||
|
@@ -353,12 +353,12 @@
|
||||||
|
140 CONTINUE
|
||||||
|
END IF
|
||||||
|
DO 160 L = 1,K
|
||||||
|
- IF (B(J,L).NE.ZERO) THEN
|
||||||
|
+c IF (B(J,L).NE.ZERO) THEN
|
||||||
|
TEMP = ALPHA*B(J,L)
|
||||||
|
DO 150 I = 1,M
|
||||||
|
C(I,J) = C(I,J) + TEMP*A(I,L)
|
||||||
|
150 CONTINUE
|
||||||
|
- END IF
|
||||||
|
+c END IF
|
||||||
|
160 CONTINUE
|
||||||
|
170 CONTINUE
|
||||||
|
ELSE
|
||||||
|
diff -up lapack-3.5.0/BLAS/SRC/dgemv.f.R lapack-3.5.0/BLAS/SRC/dgemv.f
|
||||||
|
--- lapack-3.5.0/BLAS/SRC/dgemv.f.R 2011-11-03 16:32:56.000000000 -0400
|
||||||
|
+++ lapack-3.5.0/BLAS/SRC/dgemv.f 2014-07-07 11:50:48.257175853 -0400
|
||||||
|
@@ -278,24 +278,24 @@
|
||||||
|
JX = KX
|
||||||
|
IF (INCY.EQ.1) THEN
|
||||||
|
DO 60 J = 1,N
|
||||||
|
- IF (X(JX).NE.ZERO) THEN
|
||||||
|
+c IF (X(JX).NE.ZERO) THEN
|
||||||
|
TEMP = ALPHA*X(JX)
|
||||||
|
DO 50 I = 1,M
|
||||||
|
Y(I) = Y(I) + TEMP*A(I,J)
|
||||||
|
50 CONTINUE
|
||||||
|
- END IF
|
||||||
|
+c END IF
|
||||||
|
JX = JX + INCX
|
||||||
|
60 CONTINUE
|
||||||
|
ELSE
|
||||||
|
DO 80 J = 1,N
|
||||||
|
- IF (X(JX).NE.ZERO) THEN
|
||||||
|
+c IF (X(JX).NE.ZERO) THEN
|
||||||
|
TEMP = ALPHA*X(JX)
|
||||||
|
IY = KY
|
||||||
|
DO 70 I = 1,M
|
||||||
|
Y(IY) = Y(IY) + TEMP*A(I,J)
|
||||||
|
IY = IY + INCY
|
||||||
|
70 CONTINUE
|
||||||
|
- END IF
|
||||||
|
+c END IF
|
||||||
|
JX = JX + INCX
|
||||||
|
80 CONTINUE
|
||||||
|
END IF
|
36
lapack-3.5.0-lapacke-tmglib.patch
Normal file
36
lapack-3.5.0-lapacke-tmglib.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
diff -up lapack-3.5.0/LAPACKE/Makefile.tmglib lapack-3.5.0/LAPACKE/Makefile
|
||||||
|
--- lapack-3.5.0/LAPACKE/Makefile.tmglib 2014-06-18 14:21:50.057725467 -0400
|
||||||
|
+++ lapack-3.5.0/LAPACKE/Makefile 2014-06-18 14:22:29.360436295 -0400
|
||||||
|
@@ -50,7 +50,7 @@ lapacke:
|
||||||
|
cd utils && $(MAKE)
|
||||||
|
|
||||||
|
shlib: lapacke
|
||||||
|
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc
|
||||||
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o
|
||||||
|
|
||||||
|
lapacke_example:
|
||||||
|
cd example && $(MAKE)
|
||||||
|
diff -up lapack-3.5.0/LAPACKE/src/Makefile.tmglib lapack-3.5.0/LAPACKE/src/Makefile
|
||||||
|
--- lapack-3.5.0/LAPACKE/src/Makefile.tmglib 2014-06-18 14:21:50.056725474 -0400
|
||||||
|
+++ lapack-3.5.0/LAPACKE/src/Makefile 2014-06-18 14:21:50.057725467 -0400
|
||||||
|
@@ -2073,7 +2073,7 @@ OBJ_FILES := $(C_FILES:.o=.o)
|
||||||
|
all: ../../$(LAPACKELIB)
|
||||||
|
|
||||||
|
../../$(LAPACKELIB): $(ALLOBJ) $(ALLXOBJ)
|
||||||
|
- $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ)
|
||||||
|
+ $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) ../../TESTING/MATGEN/*.o
|
||||||
|
$(RANLIB) ../../$(LAPACKELIB)
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
diff -up lapack-3.5.0/Makefile.tmglib lapack-3.5.0/Makefile
|
||||||
|
--- lapack-3.5.0/Makefile.tmglib 2012-04-13 14:22:32.000000000 -0400
|
||||||
|
+++ lapack-3.5.0/Makefile 2014-06-18 14:21:50.058725460 -0400
|
||||||
|
@@ -23,7 +23,7 @@ blaslib:
|
||||||
|
lapacklib: lapack_install
|
||||||
|
( cd SRC; $(MAKE) )
|
||||||
|
|
||||||
|
-lapackelib: lapacklib
|
||||||
|
+lapackelib: tmglib lapacklib
|
||||||
|
( cd lapacke; $(MAKE) )
|
||||||
|
|
||||||
|
lapacke_example: lapackelib
|
36
lapack-3.6.0-lapacke-tmglib.patch
Normal file
36
lapack-3.6.0-lapacke-tmglib.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
diff -up lapack-3.6.0/LAPACKE/Makefile.tmglib lapack-3.6.0/LAPACKE/Makefile
|
||||||
|
--- lapack-3.6.0/LAPACKE/Makefile.tmglib 2015-12-02 10:01:15.639679177 -0500
|
||||||
|
+++ lapack-3.6.0/LAPACKE/Makefile 2015-12-02 10:01:15.660679035 -0500
|
||||||
|
@@ -50,7 +50,7 @@ lapacke:
|
||||||
|
cd utils && $(MAKE)
|
||||||
|
|
||||||
|
shlib: lapacke
|
||||||
|
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc
|
||||||
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o
|
||||||
|
|
||||||
|
lapacke_example:
|
||||||
|
cd example && $(MAKE)
|
||||||
|
diff -up lapack-3.6.0/LAPACKE/src/Makefile.tmglib lapack-3.6.0/LAPACKE/src/Makefile
|
||||||
|
--- lapack-3.6.0/LAPACKE/src/Makefile.tmglib 2015-12-03 12:18:04.216900463 -0500
|
||||||
|
+++ lapack-3.6.0/LAPACKE/src/Makefile 2015-12-03 12:18:15.638838677 -0500
|
||||||
|
@@ -2204,7 +2204,7 @@ OBJ_FILES := $(C_FILES:.o=.o)
|
||||||
|
all: ../../$(LAPACKELIB)
|
||||||
|
|
||||||
|
../../$(LAPACKELIB): $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
|
||||||
|
- $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
|
||||||
|
+ $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED) ../../TESTING/MATGEN/*.o
|
||||||
|
$(RANLIB) ../../$(LAPACKELIB)
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
diff -up lapack-3.6.0/Makefile.tmglib lapack-3.6.0/Makefile
|
||||||
|
--- lapack-3.6.0/Makefile.tmglib 2015-11-01 11:21:47.000000000 -0500
|
||||||
|
+++ lapack-3.6.0/Makefile 2015-12-02 10:01:15.647679123 -0500
|
||||||
|
@@ -26,7 +26,7 @@ cblaslib:
|
||||||
|
lapacklib: lapack_install
|
||||||
|
( cd SRC; $(MAKE) )
|
||||||
|
|
||||||
|
-lapackelib: lapacklib
|
||||||
|
+lapackelib: tmglib lapacklib
|
||||||
|
( cd LAPACKE; $(MAKE) )
|
||||||
|
|
||||||
|
cblas_example: cblaslib blaslib
|
15
lapack-3.6.0-make.inc.patch
Normal file
15
lapack-3.6.0-make.inc.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -up lapack-3.6.0/INSTALL/make.inc.gfortran.fedora lapack-3.6.0/INSTALL/make.inc.gfortran
|
||||||
|
--- lapack-3.6.0/INSTALL/make.inc.gfortran.fedora 2015-11-17 11:25:02.789918460 -0500
|
||||||
|
+++ lapack-3.6.0/INSTALL/make.inc.gfortran 2015-11-17 11:26:45.806115209 -0500
|
||||||
|
@@ -17,9 +17,9 @@ SHELL = /bin/sh
|
||||||
|
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
|
||||||
|
#
|
||||||
|
FORTRAN = gfortran
|
||||||
|
-OPTS = -O2 -frecursive
|
||||||
|
+#OPTS = -O2 -frecursive
|
||||||
|
DRVOPTS = $(OPTS)
|
||||||
|
-NOOPT = -O0 -frecursive
|
||||||
|
+NOOPT =
|
||||||
|
LOADER = gfortran
|
||||||
|
LOADOPTS =
|
||||||
|
#
|
@ -14,7 +14,7 @@ diff -up lapack-3.7.1/LAPACKE/Makefile.shared lapack-3.7.1/LAPACKE/Makefile
|
|||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
+shlib: lapacke
|
+shlib: lapacke
|
||||||
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack
|
||||||
+
|
+
|
||||||
lapacke_example: lapacke
|
lapacke_example: lapacke
|
||||||
$(MAKE) -C example
|
$(MAKE) -C example
|
@ -5,8 +5,8 @@ diff -up lapack-3.7.1/LAPACKE/Makefile.tmglib lapack-3.7.1/LAPACKE/Makefile
|
|||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
shlib: lapacke
|
shlib: lapacke
|
||||||
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc
|
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack
|
||||||
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack ../TESTING/MATGEN/*.o
|
||||||
|
|
||||||
lapacke_example: lapacke
|
lapacke_example: lapacke
|
||||||
$(MAKE) -C example
|
$(MAKE) -C example
|
21
lapack-3.9.0-lapacke-shared.patch
Normal file
21
lapack-3.9.0-lapacke-shared.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
diff -up lapack-3.9.0/INSTALL/make.inc.gfortran.shared lapack-3.9.0/INSTALL/make.inc.gfortran
|
||||||
|
--- lapack-3.9.0/INSTALL/make.inc.gfortran.shared 2019-11-26 09:19:38.689118934 -0500
|
||||||
|
+++ lapack-3.9.0/INSTALL/make.inc.gfortran 2019-11-26 09:20:52.442628214 -0500
|
||||||
|
@@ -81,3 +81,4 @@ CBLASLIB = $(TOPSRCDIR)/libcblas.a
|
||||||
|
LAPACKLIB = $(TOPSRCDIR)/liblapack.a
|
||||||
|
TMGLIB = $(TOPSRCDIR)/libtmglib.a
|
||||||
|
LAPACKELIB = $(TOPSRCDIR)/liblapacke.a
|
||||||
|
+SHLIB_LAPACKE = $(TOPSRCDIR)/liblapacke.so
|
||||||
|
diff -up lapack-3.9.0/LAPACKE/Makefile.shared lapack-3.9.0/LAPACKE/Makefile
|
||||||
|
--- lapack-3.9.0/LAPACKE/Makefile.shared 2019-11-26 09:19:38.689118934 -0500
|
||||||
|
+++ lapack-3.9.0/LAPACKE/Makefile 2019-11-26 09:21:59.977268139 -0500
|
||||||
|
@@ -54,6 +54,9 @@ lapacke: include/lapacke_mangling.h
|
||||||
|
include/lapacke_mangling.h: include/lapacke_mangling_with_flags.h.in
|
||||||
|
cp include/lapacke_mangling_with_flags.h.in $@
|
||||||
|
|
||||||
|
+shlib: lapacke
|
||||||
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,liblapacke.so.@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack
|
||||||
|
+
|
||||||
|
.PHONY: lapacke_example
|
||||||
|
lapacke_example: lapacke
|
||||||
|
$(MAKE) -C example
|
24
lapack-3.9.0-lapacke-tmglib.patch
Normal file
24
lapack-3.9.0-lapacke-tmglib.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up lapack-3.9.0/LAPACKE/Makefile.tmglib lapack-3.9.0/LAPACKE/Makefile
|
||||||
|
--- lapack-3.9.0/LAPACKE/Makefile.tmglib 2019-11-26 09:22:35.406554632 -0500
|
||||||
|
+++ lapack-3.9.0/LAPACKE/Makefile 2019-11-26 09:24:06.927711490 -0500
|
||||||
|
@@ -55,7 +55,7 @@ include/lapacke_mangling.h: include/lapa
|
||||||
|
cp include/lapacke_mangling_with_flags.h.in $@
|
||||||
|
|
||||||
|
shlib: lapacke
|
||||||
|
- $(CC) $(CFLAGS) -shared -Wl,-soname,liblapacke.so.@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack
|
||||||
|
+ $(CC) $(CFLAGS) -shared -Wl,-soname,liblapacke.so.@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack ../TESTING/MATGEN/*.o
|
||||||
|
|
||||||
|
.PHONY: lapacke_example
|
||||||
|
lapacke_example: lapacke
|
||||||
|
diff -up lapack-3.9.0/Makefile.tmglib lapack-3.9.0/Makefile
|
||||||
|
--- lapack-3.9.0/Makefile.tmglib 2019-11-26 09:22:35.408554591 -0500
|
||||||
|
+++ lapack-3.9.0/Makefile 2019-11-26 09:48:23.173944899 -0500
|
||||||
|
@@ -27,7 +27,7 @@ lapacklib:
|
||||||
|
$(MAKE) -C SRC
|
||||||
|
|
||||||
|
.PHONY: lapackelib
|
||||||
|
-lapackelib:
|
||||||
|
+lapackelib: tmglib
|
||||||
|
$(MAKE) -C LAPACKE
|
||||||
|
|
||||||
|
.PHONY: blaspplib
|
15
lapack-3.9.0-make.inc.patch
Normal file
15
lapack-3.9.0-make.inc.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -up lapack-3.9.0/INSTALL/make.inc.gfortran.fedora lapack-3.9.0/INSTALL/make.inc.gfortran
|
||||||
|
--- lapack-3.9.0/INSTALL/make.inc.gfortran.fedora 2019-11-26 09:18:42.671256080 -0500
|
||||||
|
+++ lapack-3.9.0/INSTALL/make.inc.gfortran 2019-11-26 09:19:09.296715591 -0500
|
||||||
|
@@ -20,9 +20,9 @@ CFLAGS = -O3
|
||||||
|
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
|
||||||
|
#
|
||||||
|
FC = gfortran
|
||||||
|
-FFLAGS = -O2 -frecursive
|
||||||
|
+FFLAGS =
|
||||||
|
FFLAGS_DRV = $(FFLAGS)
|
||||||
|
-FFLAGS_NOOPT = -O0 -frecursive
|
||||||
|
+FFLAGS_NOOPT =
|
||||||
|
|
||||||
|
# Define LDFLAGS to the desired linker options for your machine.
|
||||||
|
#
|
40
lapack-fixlwork.patch
Normal file
40
lapack-fixlwork.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
--- LAPACK/SRC/dgesdd.f.BAD 2005-10-06 22:53:05.000000000 -0500
|
||||||
|
+++ LAPACK/SRC/dgesdd.f 2005-10-06 22:55:17.000000000 -0500
|
||||||
|
@@ -294,6 +294,8 @@
|
||||||
|
*
|
||||||
|
WRKBL = 3*N + ( M+N )*ILAENV( 1, 'DGEBRD', ' ', M, N, -1,
|
||||||
|
$ -1 )
|
||||||
|
+ MAXWRK = MAX( WRKBL, BDSPAC )
|
||||||
|
+ MINWRK = BDSPAC
|
||||||
|
IF( WNTQO ) THEN
|
||||||
|
WRKBL = MAX( WRKBL, 3*N+N*
|
||||||
|
$ ILAENV( 1, 'DORMBR', 'QLN', M, N, N, -1 ) )
|
||||||
|
@@ -390,6 +392,8 @@
|
||||||
|
*
|
||||||
|
WRKBL = 3*M + ( M+N )*ILAENV( 1, 'DGEBRD', ' ', M, N, -1,
|
||||||
|
$ -1 )
|
||||||
|
+ MAXWRK = MAX( WRKBL, BDSPAC )
|
||||||
|
+ MINWRK = BDSPAC
|
||||||
|
IF( WNTQO ) THEN
|
||||||
|
WRKBL = MAX( WRKBL, 3*M+M*
|
||||||
|
$ ILAENV( 1, 'DORMBR', 'QLN', M, M, N, -1 ) )
|
||||||
|
--- LAPACK/SRC/sgesdd.f.BAD 2005-10-06 22:55:41.000000000 -0500
|
||||||
|
+++ LAPACK/SRC/sgesdd.f 2005-10-06 22:56:50.000000000 -0500
|
||||||
|
@@ -294,6 +294,8 @@
|
||||||
|
*
|
||||||
|
WRKBL = 3*N + ( M+N )*ILAENV( 1, 'SGEBRD', ' ', M, N, -1,
|
||||||
|
$ -1 )
|
||||||
|
+ MAXWRK = MAX( WRKBL, BDSPAC )
|
||||||
|
+ MINWRK = BDSPAC
|
||||||
|
IF( WNTQO ) THEN
|
||||||
|
WRKBL = MAX( WRKBL, 3*N+N*
|
||||||
|
$ ILAENV( 1, 'SORMBR', 'QLN', M, N, N, -1 ) )
|
||||||
|
@@ -390,6 +392,8 @@
|
||||||
|
*
|
||||||
|
WRKBL = 3*M + ( M+N )*ILAENV( 1, 'SGEBRD', ' ', M, N, -1,
|
||||||
|
$ -1 )
|
||||||
|
+ MAXWRK = MAX( WRKBL, BDSPAC )
|
||||||
|
+ MINWRK = BDSPAC
|
||||||
|
IF( WNTQO ) THEN
|
||||||
|
WRKBL = MAX( WRKBL, 3*M+M*
|
||||||
|
$ ILAENV( 1, 'SORMBR', 'QLN', M, M, N, -1 ) )
|
@ -1,5 +1,8 @@
|
|||||||
|
# Something in the debuginfo process is stripping the custom 64_ symbols out of lapack64_ and blas64_
|
||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
%global shortver 3
|
%global shortver 3
|
||||||
%global mediumver %{shortver}.8
|
%global mediumver %{shortver}.12
|
||||||
|
|
||||||
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
|
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
|
||||||
%global arch64 1
|
%global arch64 1
|
||||||
@ -10,27 +13,20 @@
|
|||||||
Summary: Numerical linear algebra package libraries
|
Summary: Numerical linear algebra package libraries
|
||||||
Name: lapack
|
Name: lapack
|
||||||
Version: %{mediumver}.0
|
Version: %{mediumver}.0
|
||||||
Release: 8%{?dist}
|
Release: 5%{?dist}
|
||||||
License: BSD
|
License: BSD-3-Clause-Open-MPI
|
||||||
Group: System Environment/Libraries
|
|
||||||
URL: http://www.netlib.org/lapack/
|
URL: http://www.netlib.org/lapack/
|
||||||
Source0: http://www.netlib.org/lapack/lapack-%{version}.tar.gz
|
Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{mediumver}.0.tar.gz
|
||||||
Source1: http://www.netlib.org/lapack/manpages.tgz
|
Source1: http://www.netlib.org/lapack/manpages.tgz
|
||||||
Source2: Makefile.blas
|
|
||||||
Source3: Makefile.lapack
|
|
||||||
Source4: http://www.netlib.org/lapack/lapackqref.ps
|
Source4: http://www.netlib.org/lapack/lapackqref.ps
|
||||||
Source5: http://www.netlib.org/blas/blasqr.ps
|
Source5: http://www.netlib.org/blas/blasqr.ps
|
||||||
Source6: Makefile.cblas
|
|
||||||
Patch3: lapack-3.7.1-make.inc.patch
|
|
||||||
Patch4: lapack-3.7.1-lapacke-shared.patch
|
|
||||||
Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
|
|
||||||
Patch6: lapack-3.5.0-lapacke-matgenobj.patch
|
|
||||||
Patch7: lapack-3.7.1-lapacke-tmglib.patch
|
|
||||||
Patch8: lapack-3.8.0-missing-aawork.patch
|
|
||||||
BuildRequires: gcc-gfortran, gawk
|
BuildRequires: gcc-gfortran, gawk
|
||||||
|
BuildRequires: make, cmake
|
||||||
|
# There isn't any c++ code here, but cmake checks for a working c++ compiler?
|
||||||
|
BuildRequires: gcc-c++
|
||||||
Requires: blas%{?_isa} = %{version}-%{release}
|
Requires: blas%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description
|
%global _description_lapack %{expand:
|
||||||
LAPACK (Linear Algebra PACKage) is a standard library for numerical
|
LAPACK (Linear Algebra PACKage) is a standard library for numerical
|
||||||
linear algebra. LAPACK provides routines for solving systems of
|
linear algebra. LAPACK provides routines for solving systems of
|
||||||
simultaneous linear equations, least-squares solutions of linear
|
simultaneous linear equations, least-squares solutions of linear
|
||||||
@ -42,10 +38,17 @@ are also included. LAPACK can handle dense and banded matrices, but
|
|||||||
not general sparse matrices. Similar functionality is provided for
|
not general sparse matrices. Similar functionality is provided for
|
||||||
real and complex matrices in both single and double precision. LAPACK
|
real and complex matrices in both single and double precision. LAPACK
|
||||||
is coded in Fortran90 and built with gcc.
|
is coded in Fortran90 and built with gcc.
|
||||||
|
}
|
||||||
|
|
||||||
|
%global _description_blas %{expand:
|
||||||
|
BLAS (Basic Linear Algebra Subprograms) is a standard library which
|
||||||
|
provides a number of basic algorithms for numerical algebra.
|
||||||
|
}
|
||||||
|
|
||||||
|
%description %_description_lapack
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: LAPACK development libraries
|
Summary: LAPACK development libraries
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
Requires: blas-devel%{?_isa} = %{version}-%{release}
|
Requires: blas-devel%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
@ -54,7 +57,6 @@ LAPACK development libraries (shared).
|
|||||||
|
|
||||||
%package static
|
%package static
|
||||||
Summary: LAPACK static libraries
|
Summary: LAPACK static libraries
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: lapack-devel%{?_isa} = %{version}-%{release}
|
Requires: lapack-devel%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description static
|
%description static
|
||||||
@ -62,15 +64,11 @@ LAPACK static libraries.
|
|||||||
|
|
||||||
%package -n blas
|
%package -n blas
|
||||||
Summary: The Basic Linear Algebra Subprograms library
|
Summary: The Basic Linear Algebra Subprograms library
|
||||||
Group: System Environment/Libraries
|
|
||||||
|
|
||||||
%description -n blas
|
%description -n blas %_description_blas
|
||||||
BLAS (Basic Linear Algebra Subprograms) is a standard library which
|
|
||||||
provides a number of basic algorithms for numerical algebra.
|
|
||||||
|
|
||||||
%package -n blas-devel
|
%package -n blas-devel
|
||||||
Summary: BLAS development libraries
|
Summary: BLAS development libraries
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: blas%{?_isa} = %{version}-%{release}
|
Requires: blas%{?_isa} = %{version}-%{release}
|
||||||
Requires: gcc-gfortran
|
Requires: gcc-gfortran
|
||||||
|
|
||||||
@ -79,7 +77,6 @@ BLAS development libraries (shared).
|
|||||||
|
|
||||||
%package -n blas-static
|
%package -n blas-static
|
||||||
Summary: BLAS static libraries
|
Summary: BLAS static libraries
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: blas-devel%{?_isa} = %{version}-%{release}
|
Requires: blas-devel%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description -n blas-static
|
%description -n blas-static
|
||||||
@ -88,262 +85,163 @@ BLAS static libraries.
|
|||||||
%if 0%{?arch64}
|
%if 0%{?arch64}
|
||||||
%package -n lapack64
|
%package -n lapack64
|
||||||
Summary: Numerical linear algebra package libraries
|
Summary: Numerical linear algebra package libraries
|
||||||
Group: System Environment/Libraries
|
|
||||||
Requires: blas64%{?_isa} = %{version}-%{release}
|
Requires: blas64%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description -n lapack64
|
%description -n lapack64 %_description_lapack
|
||||||
LAPACK (Linear Algebra PACKage) is a standard library for numerical
|
|
||||||
linear algebra. LAPACK provides routines for solving systems of
|
|
||||||
simultaneous linear equations, least-squares solutions of linear
|
|
||||||
systems of equations, eigenvalue problems, and singular value
|
|
||||||
problems. Associated matrix factorizations (LU, Cholesky, QR, SVD,
|
|
||||||
Schur, and generalized Schur) and related computations (i.e.,
|
|
||||||
reordering of Schur factorizations and estimating condition numbers)
|
|
||||||
are also included. LAPACK can handle dense and banded matrices, but
|
|
||||||
not general sparse matrices. Similar functionality is provided for
|
|
||||||
real and complex matrices in both single and double precision. LAPACK
|
|
||||||
is coded in Fortran90 and built with gcc.
|
|
||||||
This build has 64bit INTEGER support.
|
This build has 64bit INTEGER support.
|
||||||
|
|
||||||
%package -n lapack64-devel
|
|
||||||
Summary: LAPACK development libraries (64bit INTEGER)
|
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: lapack64%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: lapack-devel%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: blas64-devel%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description -n lapack64-devel
|
|
||||||
LAPACK development libraries (shared, 64bit INTEGER).
|
|
||||||
|
|
||||||
%package -n lapack64-static
|
|
||||||
Summary: LAPACK static libraries (64bit INTEGER)
|
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: lapack64-devel%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description -n lapack64-static
|
|
||||||
LAPACK static libraries (64bit INTEGER).
|
|
||||||
|
|
||||||
%package -n blas64
|
%package -n blas64
|
||||||
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
|
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
|
||||||
Group: System Environment/Libraries
|
|
||||||
|
|
||||||
%description -n blas64
|
%description -n blas64 %_description_blas
|
||||||
BLAS (Basic Linear Algebra Subprograms) is a standard library which
|
This build has 64bit INTEGER support.
|
||||||
provides a number of basic algorithms for numerical algebra. This build
|
|
||||||
has 64bit INTEGER support.
|
|
||||||
|
|
||||||
%package -n blas64-devel
|
%package -n lapack64_
|
||||||
Summary: BLAS development libraries
|
Summary: Numerical linear algebra package libraries
|
||||||
Group: Development/Libraries
|
Requires: blas64_%{?_isa} = %{version}-%{release}
|
||||||
Requires: blas64%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: blas-devel%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: gcc-gfortran
|
|
||||||
|
|
||||||
%description -n blas64-devel
|
%description -n lapack64_ %_description_lapack
|
||||||
BLAS development libraries (shared).
|
This build has 64bit INTEGER support and a symbol name suffix.
|
||||||
|
|
||||||
%package -n blas64-static
|
%package -n blas64_
|
||||||
Summary: BLAS static libraries (64bit INTEGER)
|
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: blas64-devel%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description -n blas64-static
|
%description -n blas64_ %_description_blas
|
||||||
BLAS static libraries (64bit INTEGER).
|
This build has 64bit INTEGER support and a symbol name suffix.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q -n %{name}-%{mediumver}.0
|
||||||
%setup -q -D -T -a1
|
%setup -q -n %{name}-%{mediumver}.0 -D -T -a1
|
||||||
%patch3 -p1 -b .fedora
|
|
||||||
%patch4 -p1 -b .shared
|
|
||||||
# %patch5 -p1 -b .disable-functions
|
|
||||||
# %patch6 -p1 -b .matgenobj
|
|
||||||
%patch7 -p1 -b .tmglib
|
|
||||||
%patch8 -p1 -b .missing-aawork
|
|
||||||
|
|
||||||
mkdir manpages
|
mkdir manpages
|
||||||
mv man/ manpages/
|
mv man/ manpages/
|
||||||
|
|
||||||
cp -f INSTALL/make.inc.gfortran make.inc
|
# clean up weird mac osx barf
|
||||||
cp -f %{SOURCE2} BLAS/SRC/Makefile
|
rm -rf manpages/man/man3/.*.3
|
||||||
cp -f %{SOURCE3} SRC/Makefile
|
|
||||||
cp -f %{SOURCE6} CBLAS/src/Makefile
|
|
||||||
|
|
||||||
sed -i "s|@SHORTVER@|%{shortver}|g" BLAS/SRC/Makefile
|
|
||||||
sed -i "s|@SHORTVER@|%{shortver}|g" SRC/Makefile
|
|
||||||
sed -i "s|@SHORTVER@|%{shortver}|g" LAPACKE/Makefile
|
|
||||||
sed -i "s|@SHORTVER@|%{shortver}|g" CBLAS/src/Makefile
|
|
||||||
sed -i "s|@LONGVER@|%{version}|g" BLAS/SRC/Makefile
|
|
||||||
sed -i "s|@LONGVER@|%{version}|g" SRC/Makefile
|
|
||||||
sed -i "s|@LONGVER@|%{version}|g" LAPACKE/Makefile
|
|
||||||
sed -i "s|@LONGVER@|%{version}|g" CBLAS/src/Makefile
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -frecursive"
|
%global optflags %{optflags} -frecursive --no-optimize-sibling-calls
|
||||||
RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
|
|
||||||
export FC=gfortran
|
|
||||||
|
|
||||||
# Build BLAS
|
# shared normal
|
||||||
pushd BLAS/SRC
|
%cmake -DCMAKE_SKIP_RPATH:BOOL=ON -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=ON -DLAPACKE=ON -DLAPACKE_WITH_TMG=ON -DCBLAS=ON
|
||||||
FFLAGS="$RPM_OPT_O_FLAGS" make dcabs1.o
|
%cmake_build
|
||||||
FFLAGS="$RPM_OPT_FLAGS" CFLAGS="$RPM_OPT_FLAGS" make static
|
mv %_vpath_builddir %_vpath_builddir-SHARED
|
||||||
cp libblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
make clean
|
|
||||||
FFLAGS="$RPM_OPT_O_FLAGS -fPIC" make dcabs1.o
|
|
||||||
FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
|
|
||||||
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
%if 0%{?arch64}
|
|
||||||
make clean
|
|
||||||
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
|
|
||||||
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
|
|
||||||
cp libblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.a
|
|
||||||
make clean
|
|
||||||
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
|
|
||||||
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
|
|
||||||
cp libblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.so.%{version}
|
|
||||||
%endif
|
|
||||||
popd
|
|
||||||
|
|
||||||
ln -s libblas.so.%{version} libblas.so
|
# static normal
|
||||||
%if 0%{?arch64}
|
%cmake -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=OFF -DLAPACKE=ON -DLAPACKE_WITH_TMG=ON -DCBLAS=ON
|
||||||
ln -s libblas64_.so.%{version} libblas64_.so
|
%cmake_build
|
||||||
%endif
|
mv %_vpath_builddir %_vpath_builddir-STATIC
|
||||||
|
|
||||||
# Build CBLAS
|
|
||||||
cp CBLAS/include/cblas_mangling_with_flags.h.in CBLAS/include/cblas_mangling.h
|
|
||||||
pushd CBLAS/src
|
|
||||||
FFLAGS="$RPM_OPT_FLAGS" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
|
|
||||||
cp libcblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
make clean
|
|
||||||
FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
|
|
||||||
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
%if 0%{?arch64}
|
|
||||||
make clean
|
|
||||||
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
|
|
||||||
cp libcblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.a
|
|
||||||
make clean
|
|
||||||
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
|
|
||||||
cp libcblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.so.%{version}
|
|
||||||
%endif
|
|
||||||
popd
|
|
||||||
|
|
||||||
ln -s libcblas.so.%{version} libcblas.so
|
|
||||||
%if 0%{?arch64}
|
|
||||||
ln -s libcblas64_.so.%{version} libcblas64_.so
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Build the static dlamch, dsecnd, lsame, second, slamch bits
|
|
||||||
pushd INSTALL
|
|
||||||
make NOOPT="$RPM_OPT_O_FLAGS" OPTS="$RPM_OPT_FLAGS"
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Build the static lapack library
|
|
||||||
pushd SRC
|
|
||||||
make FFLAGS="$RPM_OPT_FLAGS" CFLAGS="$RPM_OPT_FLAGS" static
|
|
||||||
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits
|
|
||||||
pushd INSTALL
|
|
||||||
make clean
|
|
||||||
make NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC"
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Build the static with pic lapack library
|
|
||||||
pushd SRC
|
|
||||||
make clean
|
|
||||||
make FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
|
|
||||||
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic.a
|
|
||||||
popd
|
|
||||||
|
|
||||||
%if 0%{?arch64}
|
%if 0%{?arch64}
|
||||||
# Build the static dlamch, dsecnd, lsame, second, slamch bits
|
# shared 64
|
||||||
pushd INSTALL
|
%cmake -DCMAKE_SKIP_RPATH:BOOL=ON -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=ON -DBUILD_INDEX64=ON -DLAPACKE=OFF -DCBLAS=ON
|
||||||
make NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fdefault-integer-8"
|
%cmake_build
|
||||||
popd
|
mv %_vpath_builddir %_vpath_builddir-SHARED64
|
||||||
|
|
||||||
# Build the static lapack library
|
# static 64
|
||||||
pushd SRC
|
%cmake -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_INDEX64=ON -DLAPACKE=OFF -DCBLAS=ON
|
||||||
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
|
%cmake_build
|
||||||
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.a
|
mv %_vpath_builddir %_vpath_builddir-STATIC64
|
||||||
popd
|
|
||||||
|
|
||||||
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
|
# This is not an Easter Egg. Just a scrambled egg.
|
||||||
pushd INSTALL
|
# The first person to see this scrambled egg and point it out to spot@fedoraproject.org explicitly will get $20 USD.
|
||||||
make clean
|
|
||||||
make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Build the static with pic lapack library (64bit INTEGER)
|
# shared 64 SUFFIX
|
||||||
pushd SRC
|
sed -i 's|64"|64_"|g' CMakeLists.txt
|
||||||
make clean
|
%cmake -DCMAKE_SKIP_RPATH:BOOL=ON -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=ON -DBUILD_INDEX64=ON -DLAPACKE=OFF -DCBLAS=ON
|
||||||
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
|
%cmake_build
|
||||||
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_pic.a
|
mv %_vpath_builddir %_vpath_builddir-SHARED64SUFFIX
|
||||||
popd
|
|
||||||
|
# static 64 SUFFIX
|
||||||
|
%cmake -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_INDEX64=ON -DLAPACKE=OFF -DCBLAS=ON
|
||||||
|
%cmake_build
|
||||||
|
mv %_vpath_builddir %_vpath_builddir-STATIC64SUFFIX
|
||||||
|
|
||||||
|
# Undo the 64_ suffix
|
||||||
|
sed -i 's|64_"|64"|g' CMakeLists.txt
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Build the shared dlamch, dsecnd, lsame, second, slamch bits
|
%global optflags %{optflags} -frecursive --no-optimize-sibling-calls -fPIC
|
||||||
pushd INSTALL
|
# static normal lapack FPIC
|
||||||
make clean
|
%cmake -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=OFF -DLAPACKE=OFF -DCBLAS=OFF
|
||||||
make NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC"
|
%cmake_build
|
||||||
popd
|
mv %_vpath_builddir %_vpath_builddir-STATICFPIC
|
||||||
|
mv %_vpath_builddir-STATICFPIC/lib/liblapack.a %_vpath_builddir-STATICFPIC/lib/liblapack_pic.a
|
||||||
# Build the shared lapack library
|
|
||||||
pushd SRC
|
|
||||||
make clean
|
|
||||||
make FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" shared
|
|
||||||
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
popd
|
|
||||||
|
|
||||||
%if 0%{?arch64}
|
%if 0%{?arch64}
|
||||||
# Build the shared dlamch, dsecnd, lsame, second, slamch bits
|
# static 64 lapack FPIC
|
||||||
pushd INSTALL
|
%cmake -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_INDEX64=ON -DLAPACKE=OFF -DCBLAS=OFF
|
||||||
make clean
|
%cmake_build
|
||||||
make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
|
mv %_vpath_builddir %_vpath_builddir-STATIC64FPIC
|
||||||
popd
|
mv %_vpath_builddir-STATIC64FPIC/lib/liblapack64.a %_vpath_builddir-STATIC64FPIC/lib/liblapack_pic64.a
|
||||||
|
|
||||||
# Build the shared lapack library
|
# static 64 lapack suffix FPIC
|
||||||
pushd SRC
|
sed -i 's|64"|64_"|g' CMakeLists.txt
|
||||||
make clean
|
%cmake -DBUILD_DEPRECATED=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_INDEX64=ON -DLAPACKE=OFF -DCBLAS=OFF
|
||||||
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
|
%cmake_build
|
||||||
cp liblapack64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.so.%{version}
|
mv %_vpath_builddir %_vpath_builddir-STATIC64SUFFIXFPIC
|
||||||
popd
|
mv %_vpath_builddir-STATIC64SUFFIXFPIC/lib/liblapack64_.a %_vpath_builddir-STATIC64SUFFIXFPIC/lib/liblapack_pic64_.a
|
||||||
|
|
||||||
|
# Undo the 64_ suffix
|
||||||
|
sed -i 's|64_"|64"|g' CMakeLists.txt
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
ln -s liblapack.so.%{version} liblapack.so
|
|
||||||
|
|
||||||
%if 0%{?arch64}
|
|
||||||
ln -s liblapack64_.so.%{version} liblapack64_.so
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Build the lapacke libraries
|
|
||||||
make OPTS="$RPM_OPT_FLAGS -fPIC" NOOPT="$RPM_OPT_O_FLAGS -fPIC" tmglib
|
|
||||||
pushd LAPACKE
|
|
||||||
make clean
|
|
||||||
make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke
|
|
||||||
make clean
|
|
||||||
make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" LDFLAGS="%{build_ldflags}" shlib
|
|
||||||
cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
|
|
||||||
popd
|
|
||||||
|
|
||||||
cp -p %{SOURCE4} lapackqref.ps
|
cp -p %{SOURCE4} lapackqref.ps
|
||||||
cp -p %{SOURCE5} blasqr.ps
|
cp -p %{SOURCE5} blasqr.ps
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
|
%if 0%{?arch64}
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man3
|
for t in SHARED STATIC SHARED64 STATIC64; do
|
||||||
chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/man3
|
%else
|
||||||
|
for t in SHARED STATIC; do
|
||||||
for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do
|
%endif
|
||||||
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
|
mv %_vpath_builddir-$t %_vpath_builddir
|
||||||
|
%cmake_install
|
||||||
|
mv %_vpath_builddir %_vpath_builddir-$t
|
||||||
done
|
done
|
||||||
|
|
||||||
%if 0%{?arch64}
|
%if 0%{?arch64}
|
||||||
for f in liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} libblas64_.a libcblas64_.a liblapack64_.a liblapack64_pic.a; do
|
# Set the suffix
|
||||||
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
|
sed -i 's|64"|64_"|g' CMakeLists.txt
|
||||||
|
for t in SHARED64SUFFIX STATIC64SUFFIX; do
|
||||||
|
mv %_vpath_builddir-$t %_vpath_builddir
|
||||||
|
%cmake_install
|
||||||
|
mv %_vpath_builddir %_vpath_builddir-$t
|
||||||
done
|
done
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
install -m0644 %_vpath_builddir-STATICFPIC/lib/liblapack_pic.a %{buildroot}%{_libdir}
|
||||||
|
%if 0%{?arch64}
|
||||||
|
install -m0644 %_vpath_builddir-STATIC64FPIC/lib/liblapack_pic64.a %{buildroot}%{_libdir}
|
||||||
|
install -m0644 %_vpath_builddir-STATIC64SUFFIXFPIC/lib/liblapack_pic64_.a %{buildroot}%{_libdir}
|
||||||
|
|
||||||
|
pushd %{buildroot}%{_libdir}
|
||||||
|
for name in blas cblas lapack; do
|
||||||
|
for i in `readelf -Ws lib${name}64_.so.%{version} | awk '{print $8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$i" "64_$i"; done > ${name}-prefix.def.dirty
|
||||||
|
sort -n ${name}-prefix.def.dirty | uniq > ${name}-prefix.def
|
||||||
|
objcopy --redefine-syms ${name}-prefix.def lib${name}64_.so.%{version} lib${name}64_.so.%{version}.fixed
|
||||||
|
rm -rf lib${name}64_.so.%{version}
|
||||||
|
mv lib${name}64_.so.%{version}.fixed lib${name}64_.so.%{version}
|
||||||
|
done
|
||||||
|
|
||||||
|
for name in blas cblas lapack lapack_pic; do
|
||||||
|
for i in `nm lib${name}64_.a |grep " T " | awk '{print $3}'`; do echo "$i" "64_$i"; done > ${name}-static-prefix.def.dirty
|
||||||
|
sort -n ${name}-static-prefix.def.dirty | uniq > ${name}-static-prefix.def
|
||||||
|
objcopy --redefine-syms ${name}-static-prefix.def lib${name}64_.a lib${name}64_.a.fixed
|
||||||
|
rm -rf lib${name}64_.a
|
||||||
|
mv lib${name}64_.a.fixed lib${name}64_.a
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
# cleanup defs
|
||||||
|
rm -rf %{buildroot}%{_libdir}/*.def*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_mandir}/man3
|
||||||
|
chmod 755 %{buildroot}%{_mandir}/man3
|
||||||
|
|
||||||
# Blas manpages
|
# Blas manpages
|
||||||
pushd manpages/
|
pushd manpages/
|
||||||
mkdir -p blas/man/man3
|
mkdir -p blas/man/man3
|
||||||
@ -351,22 +249,22 @@ cd man/man3/
|
|||||||
mv caxpy.f.3 caxpy.3 ccopy.f.3 ccopy.3 cdotc.f.3 cdotc.3 cdotu.f.3 cdotu.3 cgbmv.f.3 cgbmv.3 \
|
mv caxpy.f.3 caxpy.3 ccopy.f.3 ccopy.3 cdotc.f.3 cdotc.3 cdotu.f.3 cdotu.3 cgbmv.f.3 cgbmv.3 \
|
||||||
cgemm.f.3 cgemm.3 cgemv.f.3 cgemv.3 cgerc.f.3 cgerc.3 cgeru.f.3 cgeru.3 chbmv.f.3 chbmv.3 \
|
cgemm.f.3 cgemm.3 cgemv.f.3 cgemv.3 cgerc.f.3 cgerc.3 cgeru.f.3 cgeru.3 chbmv.f.3 chbmv.3 \
|
||||||
chemm.f.3 chemm.3 chemv.f.3 chemv.3 cher.f.3 cher.3 cher2.f.3 cher2.3 cher2k.f.3 cher2k.3 \
|
chemm.f.3 chemm.3 chemv.f.3 chemv.3 cher.f.3 cher.3 cher2.f.3 cher2.3 cher2k.f.3 cher2k.3 \
|
||||||
cherk.f.3 cherk.3 chpmv.f.3 chpmv.3 chpr.f.3 chpr.3 chpr2.f.3 chpr2.3 crotg.f.3 crotg.3 \
|
cherk.f.3 cherk.3 chpmv.f.3 chpmv.3 chpr.f.3 chpr.3 chpr2.f.3 chpr2.3 \
|
||||||
cscal.f.3 cscal.3 csrot.f.3 csrot.3 csscal.f.3 csscal.3 cswap.f.3 cswap.3 csymm.f.3 \
|
cscal.f.3 cscal.3 csrot.f.3 csrot.3 csscal.f.3 csscal.3 cswap.f.3 cswap.3 csymm.f.3 \
|
||||||
csymm.3 csyr2k.f.3 csyr2k.3 csyrk.f.3 csyrk.3 ctbmv.f.3 ctbmv.3 ctbsv.f.3 ctbsv.3 ctpmv.f.3 \
|
csymm.3 csyr2k.f.3 csyr2k.3 csyrk.f.3 csyrk.3 ctbmv.f.3 ctbmv.3 ctbsv.f.3 ctbsv.3 ctpmv.f.3 \
|
||||||
ctpmv.3 ctpsv.f.3 ctpsv.3 ctrmm.f.3 ctrmm.3 ctrmv.f.3 ctrmv.3 ctrsm.f.3 ctrsm.3 ctrsv.f.3 \
|
ctpmv.3 ctpsv.f.3 ctpsv.3 ctrmm.f.3 ctrmm.3 ctrmv.f.3 ctrmv.3 ctrsm.f.3 ctrsm.3 ctrsv.f.3 \
|
||||||
ctrsv.3 dasum.f.3 dasum.3 daxpy.f.3 daxpy.3 dcabs1.f.3 dcabs1.3 dcopy.f.3 dcopy.3 ddot.f.3 \
|
ctrsv.3 dasum.f.3 dasum.3 daxpy.f.3 daxpy.3 dcabs1.f.3 dcabs1.3 dcopy.f.3 dcopy.3 ddot.f.3 \
|
||||||
ddot.3 dgbmv.f.3 dgbmv.3 dgemm.f.3 dgemm.3 dgemv.f.3 dgemv.3 dger.f.3 dger.3 dnrm2.f.3 \
|
ddot.3 dgbmv.f.3 dgbmv.3 dgemm.f.3 dgemm.3 dgemv.f.3 dgemv.3 dger.f.3 dger.3 \
|
||||||
dnrm2.3 drot.f.3 drot.3 drotg.f.3 drotg.3 drotm.f.3 drotm.3 drotmg.f.3 drotmg.3 dsbmv.f.3 \
|
drot.f.3 drot.3 drotm.f.3 drotm.3 drotmg.f.3 drotmg.3 dsbmv.f.3 \
|
||||||
dsbmv.3 dscal.f.3 dscal.3 dsdot.f.3 dsdot.3 dspmv.f.3 dspmv.3 dspr.f.3 dspr.3 dspr2.f.3 \
|
dsbmv.3 dscal.f.3 dscal.3 dsdot.f.3 dsdot.3 dspmv.f.3 dspmv.3 dspr.f.3 dspr.3 dspr2.f.3 \
|
||||||
dspr2.3 dswap.f.3 dswap.3 dsymm.f.3 dsymm.3 dsymv.f.3 dsymv.3 dsyr.f.3 dsyr.3 dsyr2.f.3 \
|
dspr2.3 dswap.f.3 dswap.3 dsymm.f.3 dsymm.3 dsymv.f.3 dsymv.3 dsyr.f.3 dsyr.3 dsyr2.f.3 \
|
||||||
dsyr2.3 dsyr2k.f.3 dsyr2k.3 dsyrk.f.3 dsyrk.3 dtbmv.f.3 dtbmv.3 dtbsv.f.3 dtbsv.3 dtpmv.f.3 \
|
dsyr2.3 dsyr2k.f.3 dsyr2k.3 dsyrk.f.3 dsyrk.3 dtbmv.f.3 dtbmv.3 dtbsv.f.3 dtbsv.3 dtpmv.f.3 \
|
||||||
dtpmv.3 dtpsv.f.3 dtpsv.3 dtrmm.f.3 dtrmm.3 dtrmv.f.3 dtrmv.3 dtrsm.f.3 dtrsm.3 dtrsv.f.3 \
|
dtpmv.3 dtpsv.f.3 dtpsv.3 dtrmm.f.3 dtrmm.3 dtrmv.f.3 dtrmv.3 dtrsm.f.3 dtrsm.3 dtrsv.f.3 \
|
||||||
dtrsv.3 dzasum.f.3 dzasum.3 dznrm2.f.3 dznrm2.3 icamax.f.3 icamax.3 idamax.f.3 idamax.3 \
|
dtrsv.3 dzasum.f.3 dzasum.3 icamax.f.3 icamax.3 idamax.f.3 idamax.3 \
|
||||||
isamax.f.3 isamax.3 izamax.f.3 izamax.3 lsame.3 sasum.f.3 sasum.3 saxpy.f.3 saxpy.3 \
|
isamax.f.3 isamax.3 izamax.f.3 izamax.3 lsame.3 sasum.f.3 sasum.3 saxpy.f.3 saxpy.3 \
|
||||||
scabs1.f.3 scabs1.3 scasum.f.3 scasum.3 scnrm2.f.3 scnrm2.3 scopy.f.3 scopy.3 sdot.f.3 sdot.3 \
|
scabs1.f.3 scabs1.3 scasum.f.3 scasum.3 scopy.f.3 scopy.3 sdot.f.3 sdot.3 \
|
||||||
sdsdot.f.3 sdsdot.3 sgbmv.f.3 sgbmv.3 sgemm.f.3 sgemm.3 sgemv.f.3 sgemv.3 sger.f.3 sger.3 \
|
sdsdot.f.3 sdsdot.3 sgbmv.f.3 sgbmv.3 sgemm.f.3 sgemm.3 sgemv.f.3 sgemv.3 sger.f.3 sger.3 \
|
||||||
snrm2.f.3 snrm2.3 srot.f.3 srot.3 srotg.f.3 srotg.3 srotm.f.3 srotm.3 srotmg.f.3 srotmg.3 \
|
srot.f.3 srot.3 srotm.f.3 srotm.3 srotmg.f.3 srotmg.3 \
|
||||||
ssbmv.f.3 ssbmv.3 sscal.f.3 sscal.3 sspmv.f.3 sspmv.3 sspr.f.3 sspr.3 sspr2.f.3 sspr2.3 \
|
ssbmv.f.3 ssbmv.3 sscal.f.3 sscal.3 sspmv.f.3 sspmv.3 sspr.f.3 sspr.3 sspr2.f.3 sspr2.3 \
|
||||||
sswap.f.3 sswap.3 ssymm.f.3 ssymm.3 ssymv.f.3 ssymv.3 ssyr.f.3 ssyr.3 ssyr2.f.3 ssyr2.3 \
|
sswap.f.3 sswap.3 ssymm.f.3 ssymm.3 ssymv.f.3 ssymv.3 ssyr.f.3 ssyr.3 ssyr2.f.3 ssyr2.3 \
|
||||||
ssyr2k.f.3 ssyr2k.3 ssyrk.f.3 ssyrk.3 stbmv.f.3 stbmv.3 stbsv.f.3 stbsv.3 stpmv.f.3 stpmv.3 \
|
ssyr2k.f.3 ssyr2k.3 ssyrk.f.3 ssyrk.3 stbmv.f.3 stbmv.3 stbsv.f.3 stbsv.3 stpmv.f.3 stpmv.3 \
|
||||||
@ -375,7 +273,7 @@ xerbla.3 xerbla_array.3 zaxpy.f.3 zaxpy.3 zcopy.f.3 zcopy.3 \
|
|||||||
zdotc.f.3 zdotc.3 zdotu.f.3 zdotu.3 zdrot.f.3 zdrot.3 zdscal.f.3 zdscal.3 zgbmv.f.3 zgbmv.3 \
|
zdotc.f.3 zdotc.3 zdotu.f.3 zdotu.3 zdrot.f.3 zdrot.3 zdscal.f.3 zdscal.3 zgbmv.f.3 zgbmv.3 \
|
||||||
zgemm.f.3 zgemm.3 zgemv.f.3 zgemv.3 zgerc.f.3 zgerc.3 zgeru.f.3 zgeru.3 zhbmv.f.3 zhbmv.3 \
|
zgemm.f.3 zgemm.3 zgemv.f.3 zgemv.3 zgerc.f.3 zgerc.3 zgeru.f.3 zgeru.3 zhbmv.f.3 zhbmv.3 \
|
||||||
zhemm.f.3 zhemm.3 zhemv.f.3 zhemv.3 zher.f.3 zher.3 zher2.f.3 zher2.3 zher2k.f.3 zher2k.3 \
|
zhemm.f.3 zhemm.3 zhemv.f.3 zhemv.3 zher.f.3 zher.3 zher2.f.3 zher2.3 zher2k.f.3 zher2k.3 \
|
||||||
zherk.f.3 zherk.3 zhpmv.f.3 zhpmv.3 zhpr.f.3 zhpr.3 zhpr2.f.3 zhpr2.3 zrotg.f.3 zrotg.3 \
|
zherk.f.3 zherk.3 zhpmv.f.3 zhpmv.3 zhpr.f.3 zhpr.3 zhpr2.f.3 zhpr2.3 \
|
||||||
zscal.f.3 zscal.3 zswap.f.3 zswap.3 zsymm.f.3 zsymm.3 zsyr2k.f.3 zsyr2k.3 zsyrk.f.3 zsyrk.3 \
|
zscal.f.3 zscal.3 zswap.f.3 zswap.3 zsymm.f.3 zsymm.3 zsyr2k.f.3 zsyr2k.3 zsyrk.f.3 zsyrk.3 \
|
||||||
ztbmv.f.3 ztbmv.3 ztbsv.f.3 ztbsv.3 ztpmv.f.3 ztpmv.3 ztpsv.f.3 ztpsv.3 ztrmm.f.3 ztrmm.3 \
|
ztbmv.f.3 ztbmv.3 ztbsv.f.3 ztbsv.3 ztpmv.f.3 ztpmv.3 ztpsv.f.3 ztpsv.3 ztrmm.f.3 ztrmm.3 \
|
||||||
ztrmv.f.3 ztrmv.3 ztrsm.f.3 ztrsm.3 ztrsv.f.3 ztrsv.3 ../../blas/man/man3
|
ztrmv.f.3 ztrmv.3 ztrsm.f.3 ztrsm.3 ztrsv.f.3 ztrsv.3 ../../blas/man/man3
|
||||||
@ -389,112 +287,62 @@ pushd manpages/man/man3
|
|||||||
rm -rf _Users_julie*
|
rm -rf _Users_julie*
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
# rename conflicting man pages
|
||||||
|
pushd manpages/man/man3
|
||||||
|
mv isnan.3 lapack-isnan.3
|
||||||
|
popd
|
||||||
|
|
||||||
find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans
|
find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans
|
||||||
|
|
||||||
cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
|
cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
|
||||||
cp -f manpages/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
|
cp -f manpages/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
|
||||||
|
|
||||||
# Cblas headers
|
%ldconfig_scriptlets
|
||||||
mkdir -p %{buildroot}%{_includedir}/cblas/
|
|
||||||
cp -a CBLAS/include/*.h %{buildroot}%{_includedir}/cblas/
|
|
||||||
|
|
||||||
# Lapacke headers
|
%ldconfig_scriptlets -n blas
|
||||||
mkdir -p %{buildroot}%{_includedir}/lapacke/
|
|
||||||
cp -a LAPACKE/include/*.h %{buildroot}%{_includedir}/lapacke/
|
|
||||||
|
|
||||||
pushd ${RPM_BUILD_ROOT}%{_libdir}
|
|
||||||
ln -sf liblapack.so.%{version} liblapack.so
|
|
||||||
ln -sf liblapack.so.%{version} liblapack.so.%{shortver}
|
|
||||||
ln -sf liblapack.so.%{version} liblapack.so.%{mediumver}
|
|
||||||
ln -sf libblas.so.%{version} libblas.so
|
|
||||||
ln -sf libblas.so.%{version} libblas.so.%{shortver}
|
|
||||||
ln -sf libblas.so.%{version} libblas.so.%{mediumver}
|
|
||||||
ln -sf libcblas.so.%{version} libcblas.so
|
|
||||||
ln -sf libcblas.so.%{version} libcblas.so.%{shortver}
|
|
||||||
ln -sf libcblas.so.%{version} libcblas.so.%{mediumver}
|
|
||||||
ln -sf liblapacke.so.%{version} liblapacke.so
|
|
||||||
ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver}
|
|
||||||
ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
|
|
||||||
%if 0%{?arch64}
|
|
||||||
ln -sf liblapack64_.so.%{version} liblapack64_.so
|
|
||||||
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{shortver}
|
|
||||||
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver}
|
|
||||||
ln -sf libblas64_.so.%{version} libblas64_.so
|
|
||||||
ln -sf libblas64_.so.%{version} libblas64_.so.%{shortver}
|
|
||||||
ln -sf libblas64_.so.%{version} libblas64_.so.%{mediumver}
|
|
||||||
ln -sf libcblas64_.so.%{version} libcblas64_.so
|
|
||||||
ln -sf libcblas64_.so.%{version} libcblas64_.so.%{shortver}
|
|
||||||
ln -sf libcblas64_.so.%{version} libcblas64_.so.%{mediumver}
|
|
||||||
%endif
|
|
||||||
popd
|
|
||||||
|
|
||||||
# pkgconfig
|
|
||||||
mkdir -p %{buildroot}%{_libdir}/pkgconfig/
|
|
||||||
cp -a lapack.pc.in %{buildroot}%{_libdir}/pkgconfig/lapack.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc
|
|
||||||
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc
|
|
||||||
%if 0%{?arch64}
|
|
||||||
cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
|
|
||||||
sed -i 's|-llapack|-llapack64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
|
|
||||||
sed -i 's|blas|blas64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
|
|
||||||
%endif
|
|
||||||
cp -a BLAS/blas.pc.in %{buildroot}%{_libdir}/pkgconfig/blas.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
|
|
||||||
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
|
|
||||||
%if 0%{?arch64}
|
|
||||||
cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64.pc
|
|
||||||
sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc
|
|
||||||
%endif
|
|
||||||
cp -a LAPACKE/lapacke.pc.in %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}/lapacke|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
|
|
||||||
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
|
|
||||||
cp -a CBLAS/cblas.pc.in %{buildroot}%{_libdir}/pkgconfig/cblas.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc
|
|
||||||
sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}/cblas|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc
|
|
||||||
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc
|
|
||||||
%if 0%{?arch64}
|
|
||||||
cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
|
|
||||||
sed -i 's|-lcblas|-lcblas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
|
|
||||||
sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%post -n blas -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%postun -n blas -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%if 0%{?arch64}
|
%if 0%{?arch64}
|
||||||
%post -n lapack64 -p /sbin/ldconfig
|
%ldconfig_scriptlets -n lapack64
|
||||||
|
%ldconfig_scriptlets -n lapack64_
|
||||||
|
|
||||||
%postun -n lapack64 -p /sbin/ldconfig
|
%ldconfig_scriptlets -n blas64
|
||||||
|
%ldconfig_scriptlets -n blas64_
|
||||||
%post -n blas64 -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%postun -n blas64 -p /sbin/ldconfig
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files -f lapackmans
|
%files -f lapackmans
|
||||||
%doc README.md LICENSE lapackqref.ps
|
%doc README.md LICENSE lapackqref.ps
|
||||||
%{_libdir}/liblapack.so.*
|
%{_libdir}/liblapack.so.*
|
||||||
%{_libdir}/liblapacke.so.*
|
%{_libdir}/liblapacke.so.*
|
||||||
|
%{_libdir}/libtmglib.so.*
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_includedir}/lapacke/
|
%{_includedir}/lapack*.h
|
||||||
%{_libdir}/liblapack.so
|
%{_libdir}/liblapack.so
|
||||||
%{_libdir}/liblapacke.so
|
%{_libdir}/liblapacke.so
|
||||||
|
%{_libdir}/libtmglib.so
|
||||||
|
%{_libdir}/cmake/lapack-*
|
||||||
|
%{_libdir}/cmake/lapacke-*
|
||||||
%{_libdir}/pkgconfig/lapack.pc
|
%{_libdir}/pkgconfig/lapack.pc
|
||||||
%{_libdir}/pkgconfig/lapacke.pc
|
%{_libdir}/pkgconfig/lapacke.pc
|
||||||
|
%if 0%{?arch64}
|
||||||
|
%{_libdir}/liblapack64.so
|
||||||
|
%{_libdir}/cmake/lapack64*
|
||||||
|
%{_libdir}/pkgconfig/lapack64.pc
|
||||||
|
%{_libdir}/liblapack64_.so
|
||||||
|
%{_libdir}/pkgconfig/lapack64_.pc
|
||||||
|
%endif
|
||||||
|
|
||||||
%files static
|
%files static
|
||||||
%{_libdir}/liblapack.a
|
%{_libdir}/liblapack.a
|
||||||
%{_libdir}/liblapack_pic.a
|
%{_libdir}/liblapack_pic.a
|
||||||
%{_libdir}/liblapacke.a
|
%{_libdir}/liblapacke.a
|
||||||
|
%{_libdir}/libtmglib.a
|
||||||
|
%if 0%{?arch64}
|
||||||
|
%{_libdir}/liblapack64.a
|
||||||
|
%{_libdir}/liblapack_pic64.a
|
||||||
|
%{_libdir}/liblapack64_.a
|
||||||
|
%{_libdir}/liblapack_pic64_.a
|
||||||
|
%endif
|
||||||
|
|
||||||
%files -n blas -f blasmans
|
%files -n blas -f blasmans
|
||||||
%doc blasqr.ps LICENSE
|
%doc blasqr.ps LICENSE
|
||||||
@ -502,46 +350,143 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd
|
|||||||
%{_libdir}/libcblas.so.*
|
%{_libdir}/libcblas.so.*
|
||||||
|
|
||||||
%files -n blas-devel
|
%files -n blas-devel
|
||||||
%{_includedir}/cblas/
|
%{_includedir}/cblas*.h
|
||||||
%{_libdir}/libblas.so
|
%{_libdir}/libblas.so
|
||||||
%{_libdir}/libcblas.so
|
%{_libdir}/libcblas.so
|
||||||
|
%{_libdir}/cmake/cblas-*
|
||||||
%{_libdir}/pkgconfig/blas.pc
|
%{_libdir}/pkgconfig/blas.pc
|
||||||
%{_libdir}/pkgconfig/cblas.pc
|
%{_libdir}/pkgconfig/cblas.pc
|
||||||
|
%if 0%{?arch64}
|
||||||
|
%{_libdir}/libblas64.so
|
||||||
|
%{_libdir}/libcblas64.so
|
||||||
|
%{_libdir}/cmake/cblas64*
|
||||||
|
%{_libdir}/pkgconfig/blas64.pc
|
||||||
|
%{_libdir}/pkgconfig/cblas64.pc
|
||||||
|
%{_libdir}/libblas64_.so
|
||||||
|
%{_libdir}/libcblas64_.so
|
||||||
|
%{_libdir}/pkgconfig/blas64_.pc
|
||||||
|
%{_libdir}/pkgconfig/cblas64_.pc
|
||||||
|
%endif
|
||||||
|
|
||||||
%files -n blas-static
|
%files -n blas-static
|
||||||
%{_libdir}/libblas.a
|
%{_libdir}/libblas.a
|
||||||
%{_libdir}/libcblas.a
|
%{_libdir}/libcblas.a
|
||||||
|
%if 0%{?arch64}
|
||||||
|
%{_libdir}/libblas64.a
|
||||||
|
%{_libdir}/libcblas64.a
|
||||||
|
%{_libdir}/libblas64_.a
|
||||||
|
%{_libdir}/libcblas64_.a
|
||||||
|
%endif
|
||||||
|
|
||||||
%if 0%{?arch64}
|
%if 0%{?arch64}
|
||||||
%files -n blas64
|
%files -n blas64
|
||||||
%doc LICENSE
|
%doc LICENSE
|
||||||
%{_libdir}/libblas64_.so.*
|
%{_libdir}/libblas64.so.*
|
||||||
%{_libdir}/libcblas64_.so.*
|
%{_libdir}/libcblas64.so.*
|
||||||
|
|
||||||
%files -n blas64-devel
|
|
||||||
%{_libdir}/libblas64_.so
|
|
||||||
%{_libdir}/libcblas64_.so
|
|
||||||
%{_libdir}/pkgconfig/blas64.pc
|
|
||||||
%{_libdir}/pkgconfig/cblas64.pc
|
|
||||||
|
|
||||||
%files -n blas64-static
|
|
||||||
%{_libdir}/libblas64_.a
|
|
||||||
%{_libdir}/libcblas64_.a
|
|
||||||
|
|
||||||
%files -n lapack64
|
%files -n lapack64
|
||||||
%doc README.md LICENSE
|
%doc README.md LICENSE
|
||||||
|
%{_libdir}/liblapack64.so.*
|
||||||
|
|
||||||
|
%files -n blas64_
|
||||||
|
%doc LICENSE
|
||||||
|
%{_libdir}/libblas64_.so.*
|
||||||
|
%{_libdir}/libcblas64_.so.*
|
||||||
|
|
||||||
|
%files -n lapack64_
|
||||||
|
%doc README.md LICENSE
|
||||||
%{_libdir}/liblapack64_.so.*
|
%{_libdir}/liblapack64_.so.*
|
||||||
|
|
||||||
%files -n lapack64-devel
|
|
||||||
%{_libdir}/liblapack64_.so
|
|
||||||
%{_libdir}/pkgconfig/lapack64.pc
|
|
||||||
|
|
||||||
%files -n lapack64-static
|
|
||||||
%{_libdir}/liblapack64_.a
|
|
||||||
%{_libdir}/liblapack64_pic.a
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.12.0-5
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.12.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.12.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 11 2024 Tom Callaway <spot@fedoraproject.org> - 3.12.0-2
|
||||||
|
- rename isnan.3 to lapack-isnan.3 to avoid conflict with man-pages package
|
||||||
|
|
||||||
|
* Thu Jan 4 2024 Tom Callaway <spot@fedoraproject.org> - 3.12.0-1
|
||||||
|
- update to 3.12.0
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 1 2023 Tom Callaway <spot@fedoraproject.org> - 3.11.0-4
|
||||||
|
- apply upstream fix to https://github.com/Reference-LAPACK/lapack/issues/763
|
||||||
|
|
||||||
|
* Fri May 19 2023 Iñaki Úcar <iucar@fedoraproject.org> - 3.11.0-3
|
||||||
|
- Adapt license tag to SPDX
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.11.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Nov 14 2022 Tom Callaway <spot@fedoraproject.org> - 3.11.0-1
|
||||||
|
- update to 3.11.0
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Apr 24 2022 Tom Callaway <spot@fedoraproject.org> - 3.10.1-1
|
||||||
|
- update to 3.10.1
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Dec 8 2021 Tom Callaway <spot@fedoraproject.org> - 3.10.0-4
|
||||||
|
- Fix out of bounds read in *larrv, CVE-2021-4048
|
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 1 2021 Tom Callaway <spot@fedoraproject.org> - 3.10.0-2
|
||||||
|
- rename conflicting manpages (bz1978346)
|
||||||
|
|
||||||
|
* Wed Jun 30 2021 Tom Callaway <spot@fedoraproject.org> - 3.10.0-1
|
||||||
|
- update to 3.10.0
|
||||||
|
|
||||||
|
* Fri Apr 9 2021 Tom Callaway <spot@fedoraproject.org> - 3.9.1-1
|
||||||
|
- 3.9.1
|
||||||
|
- use upstream cmake build (no more hacked up Makefiles, huzzah)
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jun 21 2020 Iñaki Úcar <iucar@fedoraproject.org> - 3.9.0-4
|
||||||
|
- make separate packages for 64-bit versions with and without suffix (bz1295965)
|
||||||
|
|
||||||
|
* Thu Mar 19 2020 Tom Callaway <spot@fedoraproject.org> - 3.9.0-3
|
||||||
|
- apply upstream fix for accidental removal of deprecated symbols from header file
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Nov 26 2019 Tom Callaway <spot@fedoraproject.org> - 3.9.0-1
|
||||||
|
- update to 3.9.0
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-13
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 29 2019 Tom Callaway <spot@fedoraproject.org> - 3.8.0-12
|
||||||
|
- use --no-optimize-sibling-calls to work around gfortran issues
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-11
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-10
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 19 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-9
|
||||||
|
- explicitly link liblapacke.so with liblapack to remove undefined-non-weak-symbols
|
||||||
|
|
||||||
* Mon Mar 5 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-8
|
* Mon Mar 5 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-8
|
||||||
- use LDFLAGS for shared libs
|
- use LDFLAGS for shared libs
|
||||||
|
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SHA512 (manpages.tgz) = 9f669f18220c48236acb9d8ebf5f5eec3313144dfb0e9559dbf7b3b04a0d3b37783dcf83521b8f923ccb70a69de493af8b2b6457af850cd231ca540573f1740b
|
||||||
|
SHA512 (v3.12.0.tar.gz) = f8f3c733a0221be0b3f5618235408ac59cbd4e5f1c4eab5f509b831a6ec6a9ef14b8849aa6ea10810df1aff90186ca454d15e9438d1dd271c2449d42d3da9dda
|
Loading…
Reference in New Issue
Block a user