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

- Main Page
- Modules
- Data Types List

void CORE_spltmg_toeppd2 | ( | int | M,
|  | int | N,
|  | int | K,
|  | int | m0,
|  | int | n0,
|  | const float * | W,
|  | float * | A,
|  | int | LDA
| ) |  |

CORE_spltmg_toeppd2 is the first kernel used in toeppd matrix generation.

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

A toeppd matrix is an n-by-n symmetric, positive semi-definite (SPD) Toeplitz matrix composed of the sum of m rank 2 (or, for certain theta, rank 1) SPD Toeplitz matrices. Specifically,

T = w(1)*T(theta(1)) + ... + w(m)*T(theta(m))

where T(theta(k)) has (i,j) element cos(2*pi*theta(k)*(i-j)).

In this matrix generation: w = rand(m,1), and theta = rand(m,1).

This kernel adds to the tile A the local sum of: w(1)*T(theta(1)) + ... + w(K) * T(theta(K))

Parameters

  [in] | M | The number of rows of the tile A. M >= 0.
  [in] | N | The number of columns of the tile A. N >= 0.
  [in] | K | The number of matrices W() * T(theta()) to apply.
  [in] | m0 | The index of the first row of tile A in the full matrix. m0 >= 0.
  [in] | n0 | The index of the first column of tile A in the full matrix. n0 >= 0.
  [in] | W | The 2-by-K array that stores the values of W and 2*pi*Theta. W being stored on the first row, 2*pi*theta on the second.
  [in,out] | A | On entry, the M-by-N tile to be initialized with a partial sum of the Toeppliz matrices. On exit, the M-by-N tile update with the sum of K extra Toepplitz matrices
  [in] | LDA | The leading dimension of the tile A. LDA >= max(1,M).