prevent compilers from using FMA (Reference-LAPACK PR 1033)
This commit is contained in:
parent
14a8a9a43c
commit
c8b4ceca85
|
@ -109,7 +109,7 @@
|
||||||
*> \author Univ. of Colorado Denver
|
*> \author Univ. of Colorado Denver
|
||||||
*> \author NAG Ltd.
|
*> \author NAG Ltd.
|
||||||
*
|
*
|
||||||
*> \ingroup doubleOTHERauxiliary
|
*> \ingroup lanv2
|
||||||
*
|
*
|
||||||
*> \par Further Details:
|
*> \par Further Details:
|
||||||
* =====================
|
* =====================
|
||||||
|
@ -144,7 +144,7 @@
|
||||||
* ..
|
* ..
|
||||||
* .. Local Scalars ..
|
* .. Local Scalars ..
|
||||||
DOUBLE PRECISION AA, BB, BCMAX, BCMIS, CC, CS1, DD, EPS, P, SAB,
|
DOUBLE PRECISION AA, BB, BCMAX, BCMIS, CC, CS1, DD, EPS, P, SAB,
|
||||||
$ SAC, SCALE, SIGMA, SN1, TAU, TEMP, Z, SAFMIN,
|
$ SAC, SCALE, SIGMA, SN1, TAU, TEMP, Z, SAFMIN,
|
||||||
$ SAFMN2, SAFMX2
|
$ SAFMN2, SAFMX2
|
||||||
INTEGER COUNT
|
INTEGER COUNT
|
||||||
* ..
|
* ..
|
||||||
|
@ -248,10 +248,14 @@
|
||||||
*
|
*
|
||||||
* Compute [ A B ] = [ CS SN ] [ AA BB ]
|
* Compute [ A B ] = [ CS SN ] [ AA BB ]
|
||||||
* [ C D ] [-SN CS ] [ CC DD ]
|
* [ C D ] [-SN CS ] [ CC DD ]
|
||||||
|
*
|
||||||
|
* Note: Some of the multiplications are wrapped in parentheses to
|
||||||
|
* prevent compilers from using FMA instructions. See
|
||||||
|
* https://github.com/Reference-LAPACK/lapack/issues/1031.
|
||||||
*
|
*
|
||||||
A = AA*CS + CC*SN
|
A = AA*CS + CC*SN
|
||||||
B = BB*CS + DD*SN
|
B = ( BB*CS ) + ( DD*SN )
|
||||||
C = -AA*SN + CC*CS
|
C = -( AA*SN ) + ( CC*CS )
|
||||||
D = -BB*SN + DD*CS
|
D = -BB*SN + DD*CS
|
||||||
*
|
*
|
||||||
TEMP = HALF*( A+D )
|
TEMP = HALF*( A+D )
|
||||||
|
|
|
@ -109,7 +109,7 @@
|
||||||
*> \author Univ. of Colorado Denver
|
*> \author Univ. of Colorado Denver
|
||||||
*> \author NAG Ltd.
|
*> \author NAG Ltd.
|
||||||
*
|
*
|
||||||
*> \ingroup realOTHERauxiliary
|
*> \ingroup lanv2
|
||||||
*
|
*
|
||||||
*> \par Further Details:
|
*> \par Further Details:
|
||||||
* =====================
|
* =====================
|
||||||
|
@ -144,7 +144,7 @@
|
||||||
* ..
|
* ..
|
||||||
* .. Local Scalars ..
|
* .. Local Scalars ..
|
||||||
REAL AA, BB, BCMAX, BCMIS, CC, CS1, DD, EPS, P, SAB,
|
REAL AA, BB, BCMAX, BCMIS, CC, CS1, DD, EPS, P, SAB,
|
||||||
$ SAC, SCALE, SIGMA, SN1, TAU, TEMP, Z, SAFMIN,
|
$ SAC, SCALE, SIGMA, SN1, TAU, TEMP, Z, SAFMIN,
|
||||||
$ SAFMN2, SAFMX2
|
$ SAFMN2, SAFMX2
|
||||||
INTEGER COUNT
|
INTEGER COUNT
|
||||||
* ..
|
* ..
|
||||||
|
@ -248,10 +248,14 @@
|
||||||
*
|
*
|
||||||
* Compute [ A B ] = [ CS SN ] [ AA BB ]
|
* Compute [ A B ] = [ CS SN ] [ AA BB ]
|
||||||
* [ C D ] [-SN CS ] [ CC DD ]
|
* [ C D ] [-SN CS ] [ CC DD ]
|
||||||
|
*
|
||||||
|
* Note: Some of the multiplications are wrapped in parentheses to
|
||||||
|
* prevent compilers from using FMA instructions. See
|
||||||
|
* https://github.com/Reference-LAPACK/lapack/issues/1031.
|
||||||
*
|
*
|
||||||
A = AA*CS + CC*SN
|
A = AA*CS + CC*SN
|
||||||
B = BB*CS + DD*SN
|
B = ( BB*CS ) + ( DD*SN )
|
||||||
C = -AA*SN + CC*CS
|
C = -( AA*SN ) + ( CC*CS )
|
||||||
D = -BB*SN + DD*CS
|
D = -BB*SN + DD*CS
|
||||||
*
|
*
|
||||||
TEMP = HALF*( A+D )
|
TEMP = HALF*( A+D )
|
||||||
|
|
Loading…
Reference in New Issue