PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

void CORE_spltmg_fiedler | ( | int | M,
|  | int | N,
|  | const float * | X,
|  | int | incX,
|  | const float * | Y,
|  | int | incY,
|  | float * | A,
|  | int | LDA
| ) |  |

CORE_spltmg_fiedler is a kernel used in fiedler matrix generation

See http://www.mathworks.fr/fr/help/matlab/ref/gallery.html#f84-999960

Fiedler matrix of size n-by-n is defined throug a random vector c of size n, such that each element is equal to abs(n(i)-n(j)).

Matrix A has a dominant positive eigenvalue and all the other eigenvalues are negative.

Explicit formulas for inv(A) and det(A) are given in [Todd, J., Basic Numerical Mathematics, Vol. 2: Numerical Algebra, Birkhauser, Basel, and Academic Press, New York, 1977, p. 159] and attributed to Fiedler. These indicate that inv(A) is tridiagonal except for nonzero (1,n) and (n,1) elements.

Parameters

  [in] | M | The number of rows of the tile A to initialize. M >= 0.
  [in] | N | The number of columns of the tile A to initialize. N >= 0.
  [in] | X | X is a vector of dimension at least: ( 1 + ( M - 1 )*abs( incX ) ) On entry, the vector used to initialize A.
  [in] | incX | On entry, incX specifies the increment for the elements of X. incX != 0.
  [in] | Y | Y is a vector of dimension at least: ( 1 + ( N - 1 )*abs( incY ) ) On entry, the vector used to initialize A.
  [in] | incY | On entry, incY specifies the increment for the elements of Y. incY != 0.
  [out] | A | On entry, the M-by-N tile to be initialized. On exit, each element of A is defined by: A(i,j) = abs( X(i) - Y(j) )
  [in] | LDA | The leading dimension of the tile A. LDA >= max(1,M).