swh:1:snp:bbee81fcdc4b36c131a8db323aa6b1ea43209e9a
Raw File
Tip revision: 1cc05f63437c1a519a5bdc24b3cc669980d81d48 authored by Charles J. Geyer on 13 May 2019, 18:20:03 UTC
version 1.0-3
Tip revision: 1cc05f6
matops.R

 library(aster)

 set.seed(42)

 m <- 10
 n <- 5
 a <- matrix(rnorm(m * n), nrow = m)
 b <- rnorm(n)

 out <- .C(aster:::C_aster_mat_vec_mult,
     nrow = as.integer(m),
     ncol = as.integer(n),
     a = as.double(a),
     b = as.double(b),
     c = double(m))

 all.equal(out$c, as.numeric(a %*% b))

 ##########

 b <- rnorm(m)

 out <- .C(aster:::C_aster_vec_mat_mult,
     nrow = as.integer(m),
     ncol = as.integer(n),
     a = as.double(a),
     b = as.double(b),
     c = double(n))

 all.equal(out$c, as.numeric(b %*% a))

 ##########

 out <- .C(aster:::C_aster_mat_vec_mat_mult,
     nrow = as.integer(m),
     ncol = as.integer(n),
     a = as.double(a),
     b = as.double(b),
     c = matrix(as.double(0), n, n))

 all.equal(out$c, t(a) %*% diag(b) %*% a)

 ##########

 b <- matrix(rnorm(n * n), n)

 out <- .C(aster:::C_aster_diag_mat_mat_mat_mult,
     nrow = as.integer(m),
     ncol = as.integer(n),
     a = as.double(a),
     b = as.double(b),
     c = double(m))

 all.equal(out$c, diag(a %*% b %*% t(a)))

back to top