Developer Reference

Contents

?larrb2

Provides limited bisection to locate eigenvalues for more accuracy.

Syntax

void slarrb2
(
MKL_INT*
n
,
float*
d
,
float*
lld
,
MKL_INT*
ifirst
,
MKL_INT*
ilast
,
float*
rtol1
,
float*
rtol2
,
MKL_INT*
offset
,
float*
w
,
float*
wgap
,
float*
werr
,
float*
work
,
MKL_INT*
iwork
,
float*
pivmin
,
float*
lgpvmn
,
float*
lgspdm
,
MKL_INT*
twist
,
MKL_INT*
info
);
void dlarrb2
(
MKL_INT*
n
,
double*
d
,
double*
lld
,
MKL_INT*
ifirst
,
MKL_INT*
ilast
,
double*
rtol1
,
double*
rtol2
,
MKL_INT*
offset
,
double*
w
,
double*
wgap
,
double*
werr
,
double*
work
,
MKL_INT*
iwork
,
double*
pivmin
,
double*
lgpvmn
,
double*
lgspdm
,
MKL_INT*
twist
,
MKL_INT*
info
);
Include Files
  • mkl_scalapack.h
Description
Given the relatively robust representation (RRR)
L
D
L
T
,
?larrb2
does "limited" bisection to refine the eigenvalues of
L
D
L
T
with indices in a given range
to more accuracy. Initial guesses for these eigenvalues are input in
w
, the corresponding estimate of the error in these guesses and their gaps are input in
werr
and
wgap
, respectively. During bisection, intervals [
left
,
right
] are maintained by storing their mid-points and semi-widths in the arrays
w
and
werr
respectively.
The range of indices is specified by the
ifirst
,
ilast
, and
offset
parameters, as explained in Input Parameters.
There are very few minor differences between
larrb
from LAPACK and this current
function
?larrb2
. The most important reason for creating this nearly identical copy is profiling: in the ScaLAPACK MRRR algorithm, eigenvalue computation using
?larrb2
is used for refinement in the construction of the representation tree, as opposed to the initial computation of the eigenvalues for the root RRR which uses
?larrb
. When profiling, this allows an easy quantification of refinement work vs. computing eigenvalues of the root.
Input Parameters
n
The order of the matrix.
d
Array of size
n.
The
n
diagonal elements of the diagonal matrix
D
.
lld
Array of size
n
-1.
The (
n
-1) elements
l
i+1
*
l
i+1
*
d
[
i
],
i
=0, ..., n-2
.
ifirst
The index of the first eigenvalue to be computed.
ilast
The index of the last eigenvalue to be computed.
rtol1
,
rtol2
Tolerance for the convergence of the bisection intervals.
An interval [
left
,
right
] has converged if
right
-
left
< max (
rtol1
*
gap
,
rtol2
* max(|
left
|, |
right
|)) where
gap
is the (estimated) distance to the nearest eigenvalue.
offset
Offset for the arrays
w
,
wgap
and
werr
, i.e., the
elements indexed
ifirst
-
offset
- 1 through
ilast
-
offset
-1
of these arrays are to be used.
w
Array of size
n
On input,
w
[
ifirst
-
offset
- 1] through
w
[
ilast
-
offset
- 1]
are estimates of the eigenvalues of
L
D
L
T
indexed
ifirst
through
ilast
.
wgap
Array of size
n
-1.
On input, the (estimated) gaps between consecutive eigenvalues of
L
D
L
T
, i.e.,
wgap
[
I
-
offset
- 1]
is the gap between eigenvalues
I
and
I
+ 1. Note that if
ifirst
=
ilast
then
wgap
[
ifirst
-
offset
- 1]
must be set to zero.
werr
Array of size
n.
On input,
werr
[
ifirst
-
offset
- 1] through
werr
[
ilast
-
offset
- 1]
are the errors in the estimates of the corresponding elements in
w
.
work
(workspace) array of size 4*
n
.
Workspace.
iwork
(workspace) array of size 2*
n
.
Workspace.
pivmin
The minimum pivot in the Sturm sequence.
lgpvmn
Logarithm of
pivmin
, precomputed.
lgspdm
Logarithm of the spectral diameter, precomputed.
twist
The twist index for the twisted factorization that is used for the
negcount
.
twist
=
n
: Compute
negcount
from
L
D
L
T
-
λ
I
=
L
+
D
+
L
+
T
twist
= 1: Compute
negcount
from
L
D
L
T
-
λ
I
=
U
-
D
-
U
-
T
twist
=
r
, 1 <
r
<
n
: Compute
negcount
from
L
D
L
T
-
λ
I
=
N
r
Δ
r
N
r
T
OUTPUT Parameters
w
On output, the eigenvalue estimates in
w
are refined.
wgap
On output, the eigenvalue gaps in
wgap
are refined.
werr
On output, the errors in
werr
are refined.
info
Error flag.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804