https://github.com/cran/aster
Raw File
Tip revision: aa47935123bfca8a22cbc8345d658d0c1713a289 authored by Charles J. Geyer on 14 December 2023, 15:20:02 UTC
version 1.1-3
Tip revision: aa47935
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