2 #include "../gmx_blas.h"
3 #include "../gmx_lapack.h"
6 F77_FUNC(dlasd6
,DLASD6
)(int *icompq
,
33 int givcol_dim1
, givcol_offset
, givnum_dim1
, givnum_offset
,
34 poles_dim1
, poles_offset
, i__1
;
37 int i__
, m
, n
, n1
, n2
, iw
, idx
, idxc
, idxp
, ivfw
, ivlw
;
50 givcol_dim1
= *ldgcol
;
51 givcol_offset
= 1 + givcol_dim1
;
52 givcol
-= givcol_offset
;
54 poles_offset
= 1 + poles_dim1
;
55 poles
-= poles_offset
;
56 givnum_dim1
= *ldgnum
;
57 givnum_offset
= 1 + givnum_dim1
;
58 givnum
-= givnum_offset
;
78 d__1
= std::abs(*alpha
);
79 d__2
= std::abs(*beta
);
80 orgnrm
= (d__1
> d__2
) ? d__1
: d__2
;
83 for (i__
= 1; i__
<= i__1
; ++i__
) {
84 d__1
= std::abs(d__
[i__
]);
88 F77_FUNC(dlascl
,DLASCL
)("G", &c__0
, &c__0
, &orgnrm
, &one
, &n
, &c__1
, &d__
[1], &n
, info
);
92 F77_FUNC(dlasd7
,DLASD7
)(icompq
, nl
, nr
, sqre
, k
, &d__
[1], &z__
[1], &work
[iw
], &vf
[1], &
93 work
[ivfw
], &vl
[1], &work
[ivlw
], alpha
, beta
, &work
[isigma
], &
94 iwork
[idx
], &iwork
[idxp
], &idxq
[1], &perm
[1], givptr
, &givcol
[
95 givcol_offset
], ldgcol
, &givnum
[givnum_offset
], ldgnum
, c__
, s
,
98 F77_FUNC(dlasd8
,DLASD8
)(icompq
, k
, &d__
[1], &z__
[1], &vf
[1], &vl
[1], &difl
[1], &difr
[1],
99 ldgnum
, &work
[isigma
], &work
[iw
], info
);
102 F77_FUNC(dcopy
,DCOPY
)(k
, &d__
[1], &c__1
, &poles
[poles_dim1
+ 1], &c__1
);
103 F77_FUNC(dcopy
,DCOPY
)(k
, &work
[isigma
], &c__1
, &poles
[(poles_dim1
<< 1) + 1], &c__1
);
106 F77_FUNC(dlascl
,DLASCL
)("G", &c__0
, &c__0
, &one
, &orgnrm
, &n
, &c__1
, &d__
[1], &n
, info
);
110 F77_FUNC(dlamrg
,DLAMRG
)(&n1
, &n2
, &d__
[1], &c__1
, &c_n1
, &idxq
[1]);