Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/31/2025
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?laeda

Used by ?stedc. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.

Syntax

call slaeda( n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, info )

call dlaeda( n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, info )

Include Files

  • mkl.fi

Description

The routine ?laeda computes the Z vector corresponding to the merge step in the curlvl-th step of the merge process with tlvls steps for the curpbm-th problem.

Input Parameters

n

INTEGER. The dimension of the symmetric tridiagonal matrix (n≥ 0).

tlvls

INTEGER. The total number of merging levels in the overall divide and conquer tree.

curlvl

INTEGER. The current level in the overall merge routine, 0 ≤ curlvl ≤ tlvls .

curpbm

INTEGER. The current problem in the current level in the overall merge routine (counting from upper left to lower right).

prmptr, perm, givptr

INTEGER. Arrays, dimension (n log2n ) each.

The array prmptr(*) contains a list of pointers which indicate where in perm a level's permutation is stored. prmptr(i+1) - prmptr(i) indicates the size of the permutation and also the size of the full, non-deflated problem.

The array perm(*) contains the permutations (from deflation and sorting) to be applied to each eigenblock.

The array givptr(*) contains a list of pointers which indicate where in givcol a level's Givens rotations are stored. givptr(i+1) - givptr(i) indicates the number of Givens rotations.

givcol

INTEGER. Array, dimension (2, n log2n ).

Each pair of numbers indicates a pair of columns to take place in a Givens rotation.

givnum

REAL for slaeda

DOUBLE PRECISION for dlaeda.

Array, dimension (2, n log2n).

Each number indicates the S value to be used in the corresponding Givens rotation.

q

REAL for slaeda

DOUBLE PRECISION for dlaeda.

Array, dimension ( n2).

Contains the square eigenblocks from previous levels, the starting positions for blocks are given by qptr.

qptr

INTEGER. Array, dimension (n+2). Contains a list of pointers which indicate where in q an eigenblock is stored. sqrt( qptr(i+1) - qptr(i)) indicates the size of the block.

ztemp

REAL for slaeda

DOUBLE PRECISION for dlaeda.

Workspace array, dimension (n).

Output Parameters

z

REAL for slaeda

DOUBLE PRECISION for dlaeda.

Array, dimension (n). Contains the updating vector (the last row of the first sub-eigenvector matrix and the first row of the second sub-eigenvector matrix).

info

INTEGER.

If info = 0, the execution is successful.

If info = -i, the i-th parameter had an illegal value.