10#ifndef TLAPACK_LAED4_HH
11#define TLAPACK_LAED4_HH
93template <
class d_t,
class z_t,
class delta_t,
class real_t,
class idx_t>
98 real_t psi,
dpsi,
phi,
dphi,
err,
eta, a,
b, c,
w,
del,
tau,
dltlb,
dltub,
130 for (idx_t j = 0; j < n; j++) {
135 for (idx_t j = 0; j < n - 2; j++) {
141 z[n - 1] *
z[n - 1] /
delta[n - 1];
145 z[n - 1] *
z[n - 1] /
rho;
151 del =
d[n - 1] -
d[n - 2];
152 a = -c *
del +
z[n - 2] *
z[n - 2] +
z[n - 1] *
z[n - 1];
153 b =
z[n - 1] *
z[n - 1] *
del;
157 (sqrt(a * a +
real_t(4.0) *
b * c) - a);
160 tau = (a + sqrt(a * a +
real_t(4.0) *
b * c)) /
172 del =
d[n - 1] -
d[n - 2];
173 a = -c *
del +
z[n - 2] *
z[n - 2] +
z[n - 1] *
z[n - 1];
174 b =
z[n - 1] *
z[n - 1] *
del;
188 for (idx_t j = 0; j < n; j++) {
199 for (idx_t j = 0; j <
ii; j++) {
248 eta = (a + sqrt(abs(a * a -
real_t(4.0) *
b * c))) /
276 for (idx_t j = 0; j < n; j++) {
286 for (idx_t j = 0; j <
ii; j++) {
329 eta = (a + sqrt(abs(a * a -
real_t(4.0) *
b * c))) /
334 (a - sqrt(abs(a * a -
real_t(4.0) *
b * c)));
354 for (idx_t j = 0; j < n; j++) {
364 for (idx_t j = 0; j <
ii; j++) {
396 for (idx_t j = 0; j < n; j++) {
401 for (idx_t j = 0; j < i; j++) {
406 for (idx_t j = n - 1; j >= i + 2; j--) {
426 (a + sqrt(abs(a * a -
real_t(4.0) *
b * c)));
429 tau = (a - sqrt(abs(a * a -
real_t(4.0) *
b * c))) /
444 (a - sqrt(abs(a * a +
real_t(4.0) *
b * c)));
447 tau = -(a + sqrt(abs(a * a +
real_t(4.0) *
b * c))) /
456 for (idx_t j = 0; j < n; j++) {
461 for (idx_t j = 0; j < n; j++) {
483 for (idx_t j = 0; j + 1 <=
ii; j++) {
495 for (idx_t j = n - 1; j >=
iip1; j--) {
520 if (
ii == 0 ||
ii == n - 1) {
580 eta = (a - sqrt(abs(a * a -
real_t(4.0) *
b * c))) /
585 (a + sqrt(abs(a * a -
real_t(4.0) *
b * c)));
638 for (idx_t j = 0; j < n; j++) {
647 for (idx_t j = 0; j + 1 <=
ii; j++) {
658 for (idx_t j = n - 1; j >=
iip1; j--) {
758 eta = (a - sqrt(abs(a * a -
real_t(4.0) *
b * c))) /
763 (a + sqrt(abs(a * a -
real_t(4.0) *
b * c)));
822 for (idx_t j = 0; j < n; j++) {
833 for (idx_t j = 0; j + 1 <=
ii; j++) {
845 for (idx_t j = n - 1; j >=
iip1; j--) {
Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D' ).
Definition arrayTraits.hpp:15
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
int laed6(idx_t kniter, bool &orgati, real_t rho, d_t &d, z_t &z, real_t &finit, real_t &tau)
LAED6 used by STEDC.
Definition laed6.hpp:78
void laed5(idx_t i, d_t &d, z_t &z, delta_t &delta, real_t rho, real_t &dlam)
LAED5 used by STEDC.
Definition laed5.hpp:61
int laed4(idx_t n, idx_t i, d_t &d, z_t &z, delta_t &delta, real_t rho, real_t &dlam)
LAED4 used by STEDC.
Definition laed4.hpp:94