Subroutine */
| 25646 | } /* dlasd3_ */ |
| 25647 | |
| 25648 | /* Subroutine */ int dlasd4_(integer *n, integer *i__, doublereal *d__, |
| 25649 | doublereal *z__, doublereal *delta, doublereal *rho, doublereal * |
| 25650 | sigma, doublereal *work, integer *info) |
| 25651 | { |
| 25652 | /* System generated locals */ |
| 25653 | integer i__1; |
| 25654 | doublereal d__1; |
| 25655 | |
| 25656 | /* Local variables */ |
| 25657 | static doublereal a, b, c__; |
| 25658 | static integer j; |
| 25659 | static doublereal w, dd[3]; |
| 25660 | static integer ii; |
| 25661 | static doublereal dw, zz[3]; |
| 25662 | static integer ip1; |
| 25663 | static doublereal eta, phi, eps, tau, psi; |
| 25664 | static integer iim1, iip1; |
| 25665 | static doublereal dphi, dpsi; |
| 25666 | static integer iter; |
| 25667 | static doublereal temp, prew, sg2lb, sg2ub, temp1, temp2, dtiim, delsq, |
| 25668 | dtiip; |
| 25669 | static integer niter; |
| 25670 | static doublereal dtisq; |
| 25671 | static logical swtch; |
| 25672 | static doublereal dtnsq; |
| 25673 | extern /* Subroutine */ int dlaed6_(integer *, logical *, doublereal *, |
| 25674 | doublereal *, doublereal *, doublereal *, doublereal *, integer *) |
| 25675 | , dlasd5_(integer *, doublereal *, doublereal *, doublereal *, |
| 25676 | doublereal *, doublereal *, doublereal *); |
| 25677 | static doublereal delsq2, dtnsq1; |
| 25678 | static logical swtch3; |
| 25679 | |
| 25680 | static logical orgati; |
| 25681 | static doublereal erretm, dtipsq, rhoinv; |
| 25682 | |
| 25683 | |
| 25684 | /* |
| 25685 | -- LAPACK auxiliary routine (version 3.2) -- |
| 25686 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 25687 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 25688 | November 2006 |
| 25689 | |
| 25690 | |
| 25691 | Purpose |
| 25692 | ======= |
| 25693 | |
| 25694 | This subroutine computes the square root of the I-th updated |
| 25695 | eigenvalue of a positive symmetric rank-one modification to |
| 25696 | a positive diagonal matrix whose entries are given as the squares |
| 25697 | of the corresponding entries in the array d, and that |
| 25698 | |
| 25699 | 0 <= D(i) < D(j) for i < j |
| 25700 | |
| 25701 | and that RHO > 0. This is arranged by the calling routine, and is |
| 25702 | no loss in generality. The rank-one modified system is thus |
| 25703 | |
| 25704 | diag( D ) * diag( D ) + RHO * Z * Z_transpose. |
| 25705 |