diag: diag

Description Usage Arguments Details Value Examples

Description

Grab diagonal or create distributed diagonal matrix.

Usage

1
2
3
base.ddiagtk(x, descx, proc.dest = "all")

base.ddiagmk(diag, descx)

Arguments

x

Matrix.

descx

ScaLAPACK descriptor array.

proc.dest

Who owns the result.

diag

Diagonal.

Details

For advanced users only. See pbdDMAT for high-level functions.

Value

diagonal elements of matrix or a diagonal matrix

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
spmd.code <- "
  suppressMessages(library(pbdMPI))
  suppressMessages(library(pbdBASE))
  init.grid()

  ### Set data matrix and desc.
  x <- matrix(as.double(1:25), nrow = 5, ncol = 5)
  dim <- dim(x)
  bldim <- c(3L, 3L)
  ldim <- base.numroc(dim = dim, bldim = bldim)
  descx <- base.descinit(dim = dim, bldim = bldim, ldim = ldim)

  ### Get diagonal
  diag.x <- base.ddiagtk(x, descx)
  comm.print(diag.x)

  finalize()
"
pbdMPI::execmpi(spmd.code = spmd.code, nranks = 2L)

spmd.code <- "
  suppressMessages(library(pbdMPI))
  suppressMessages(library(pbdBASE))
  init.grid()

  ### Set data matrix and desc.
  x <- matrix(as.double(1:25), nrow = 5, ncol = 5)
  dim <- dim(x)
  bldim <- c(3L, 3L)
  ldim <- base.numroc(dim = dim, bldim = bldim)
  descx <- base.descinit(dim = dim, bldim = bldim, ldim = ldim)

  ### Set diagonal
  diag.x <- base.ddiagtk(x, descx)
  new.x <- base.ddiagmk(diag.x, descx)
  comm.print(new.x, all.rank = TRUE)

  finalize()
"
pbdMPI::execmpi(spmd.code = spmd.code, nranks = 2L)

RBigData/pbdBASE documentation built on Oct. 29, 2021, 6:19 p.m.