|
109 | 109 | *> \author Univ. of Colorado Denver |
110 | 110 | *> \author NAG Ltd. |
111 | 111 | * |
112 | | -*> \ingroup doubleOTHERauxiliary |
| 112 | +*> \ingroup lanv2 |
113 | 113 | * |
114 | 114 | *> \par Further Details: |
115 | 115 | * ===================== |
@@ -144,7 +144,7 @@ SUBROUTINE DLANV2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN ) |
144 | 144 | * .. |
145 | 145 | * .. Local Scalars .. |
146 | 146 | DOUBLE PRECISION AA, BB, BCMAX, BCMIS, CC, CS1, DD, EPS, P, SAB, |
147 | | - $ SAC, SCALE, SIGMA, SN1, TAU, TEMP, Z, SAFMIN, |
| 147 | + $ SAC, SCALE, SIGMA, SN1, TAU, TEMP, Z, SAFMIN, |
148 | 148 | $ SAFMN2, SAFMX2 |
149 | 149 | INTEGER COUNT |
150 | 150 | * .. |
@@ -248,10 +248,14 @@ SUBROUTINE DLANV2( A, B, C, D, RT1R, RT1I, RT2R, RT2I, CS, SN ) |
248 | 248 | * |
249 | 249 | * Compute [ A B ] = [ CS SN ] [ AA BB ] |
250 | 250 | * [ C D ] [-SN CS ] [ CC DD ] |
| 251 | +* |
| 252 | +* Note: Some of the multiplications are wrapped in parentheses to |
| 253 | +* prevent compilers from using FMA instructions. See |
| 254 | +* https://github.com/Reference-LAPACK/lapack/issues/1031. |
251 | 255 | * |
252 | 256 | A = AA*CS + CC*SN |
253 | | - B = BB*CS + DD*SN |
254 | | - C = -AA*SN + CC*CS |
| 257 | + B = ( BB*CS ) + ( DD*SN ) |
| 258 | + C = -( AA*SN ) + ( CC*CS ) |
255 | 259 | D = -BB*SN + DD*CS |
256 | 260 | * |
257 | 261 | TEMP = HALF*( A+D ) |
|
0 commit comments