Есть ли способ реализовать алгоритм Xorshift32 в R? - PullRequest
0 голосов
/ 07 мая 2020

Во-первых, я вообще не специалист по R. Я ищу решение для реализации алгоритма Xorshift32 в R, используя RNGKind, если это возможно.

Моя конечная цель - выполнить тест на случайность алгоритма Xorshift32, используя эту библиотеку https://rdrr.io/cran/CryptRndTest/man/adaptive.chi.square.html

Заранее благодарим за помощь!

1 Ответ

2 голосов
/ 07 мая 2020

Вот R-версия первой реализации C, показанная на странице Википедии об алгоритме xorshift:

xorshift32 <- function(x)
{
  x <- as.integer(x)
  x <- bitwXor(bitwShiftL(x, 13), x)
  x <- bitwXor(bitwShiftR(x, 17), x)
  bitwXor(bitwShiftL(x, 5), x)
}

xorshift32(1)
#> [1] 270369

Однако было бы лучше просто скомпилировать C код, вызываемый напрямую через функцию в R, созданный с помощью Rcpp::cppFunction:

Rcpp::cppFunction("uint32_t xorshift32(uint32_t x){x^=x<<13;x^=x>>17;x^=x<<5;return x;}")

xorshift32(1)
#> [1] 270369
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...