From 98cde6b23e67a881faa6077111675891c0e1caff Mon Sep 17 00:00:00 2001 From: Waldir Leoncio Date: Fri, 23 Dec 2022 13:41:50 +0100 Subject: [PATCH] Translated dec2bitv() (#3) --- R/dec2bitv.R | 16 ++++++++++++++++ R/rBAPS-package.R | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 R/dec2bitv.R diff --git a/R/dec2bitv.R b/R/dec2bitv.R new file mode 100644 index 0000000..2124936 --- /dev/null +++ b/R/dec2bitv.R @@ -0,0 +1,16 @@ +dec2bitv <- function(d, n) { + # DEC2BITV Convert a decimal integer to a bit vector. + # bits <- dec2bitv(d, n) is just like the built - in dec2bin, except the answer is a vector, not a as.character. + # n is an optional minimum length on the bit vector. + # If d is a vector, each row of the output array will be a bit vector. + + if (nargin() < 2) { + n <- 1 # Need at least one digit even for 0. + } + d <- d[] + + f <- e <- NA + c(f, e) <- log2(max(d)) # How many digits do we need to represent the numbers? + bits <- floor(d * 2 ^ (seq(1 - max(n, e), 0))) %% 2 + return(bits) +} diff --git a/R/rBAPS-package.R b/R/rBAPS-package.R index 25e3934..810a2f1 100644 --- a/R/rBAPS-package.R +++ b/R/rBAPS-package.R @@ -10,5 +10,5 @@ #' size sortrows squeeze strcmp times zeros disp #' @importFrom stats runif #' @importFrom zeallot %<-% -#' @importFrom matlab2r nargin +#' @importFrom matlab2r nargin log2 NULL