diff --git a/R/AnsariBradley.R b/R/AnsariBradley.R index f0091b4..c6d244a 100644 --- a/R/AnsariBradley.R +++ b/R/AnsariBradley.R @@ -89,4 +89,4 @@ AnsariBradley <- R6Class( private$.p_value <- get_p_continous(z, "norm", private$.side) } ) -) +) \ No newline at end of file diff --git a/R/Friedman.R b/R/Friedman.R index 3d82dcc..d5828d6 100644 --- a/R/Friedman.R +++ b/R/Friedman.R @@ -65,4 +65,4 @@ Friedman <- R6Class( ) } ) -) +) \ No newline at end of file diff --git a/R/KolmogorovSmirnov.R b/R/KolmogorovSmirnov.R index 3773fea..f69a441 100644 --- a/R/KolmogorovSmirnov.R +++ b/R/KolmogorovSmirnov.R @@ -48,4 +48,4 @@ KolmogorovSmirnov <- R6Class( private$.side <- "r" } ) -) +) \ No newline at end of file diff --git a/R/Page.R b/R/Page.R index dcf77f9..ccde452 100644 --- a/R/Page.R +++ b/R/Page.R @@ -64,4 +64,4 @@ Page <- R6Class( private$.p_value <- get_p_continous(z, "norm", private$.side) } ) -) +) \ No newline at end of file diff --git a/R/RCBDOneWay.R b/R/RCBDOneWay.R index 882897c..d2edc8a 100644 --- a/R/RCBDOneWay.R +++ b/R/RCBDOneWay.R @@ -69,5 +69,4 @@ RCBDOneWay <- R6Class( ) } ) -) - +) \ No newline at end of file diff --git a/R/do_call.R b/R/do_call.R index b0fc51c..8b671fc 100644 --- a/R/do_call.R +++ b/R/do_call.R @@ -27,4 +27,4 @@ do_call <- function(func, default = list(), fixed = list(), ...) { # All arguments will be evaluated within the `args` environment. # https://stackoverflow.com/a/25371509/23137996 eval(as.call(c(func, lapply(`names<-`(...args, ...args), as.name))), args) -} +} \ No newline at end of file diff --git a/R/pmt.R b/R/pmt.R index 7e18e0c..7cdda23 100644 --- a/R/pmt.R +++ b/R/pmt.R @@ -164,8 +164,8 @@ pmts <- function( #' rcpp <- define_pmt( #' inherit = "twosample", n_permu = 1e5, #' statistic = "[](const auto& x, const auto& y) { -#' auto m = x.size(); -#' auto n = y.size(); +#' auto m = x.length(); +#' auto n = y.length(); #' return [=](const auto& x, const auto& y) { #' return sum(x) / m - sum(y) / n; #' }; @@ -176,9 +176,9 @@ pmts <- function( #' # rcpp <- define_pmt( #' # inherit = "twosample", n_permu = 1e5, #' # statistic = "[](const NumericVector& x, const NumericVector& y) { -#' # R_xlen_t m = x.size(); -#' # R_xlen_t n = y.size(); -#' # return [=](const NumericVector& x, const NumericVector& y) -> double { +#' # R_xlen_t m = x.length(); +#' # R_xlen_t n = y.length(); +#' # return [m, n](const NumericVector& x, const NumericVector& y) -> double { #' # return sum(x) / m - sum(y) / n; #' # }; #' # }" diff --git a/inst/include/pmt/permutation.hpp b/inst/include/pmt/permutation.hpp index ba2df09..fba3b3d 100644 --- a/inst/include/pmt/permutation.hpp +++ b/inst/include/pmt/permutation.hpp @@ -3,6 +3,9 @@ #include #include +template +using diff_t = typename std::iterator_traits::difference_type; + template T rand_int(T n) { @@ -12,12 +15,11 @@ T rand_int(T n) template void random_shuffle(T first, T last) { - using diff_t = typename std::iterator_traits::difference_type; - diff_t n = std::distance(first, last); + diff_t n = std::distance(first, last); - for (diff_t i = 0; i < n - 1; i++) { - diff_t j = i + rand_int(n - i); + for (diff_t i = 0; i < n - 1; i++) { + diff_t j = i + rand_int(n - i); std::iter_swap(first + i, first + j); } } @@ -33,7 +35,7 @@ double n_permutation(T first, T last) { double A = 1.0; - typename std::iterator_traits::difference_type rep = 0; + diff_t rep = 0; auto val = *first; for (auto it = first; it != last; it++) { @@ -50,19 +52,19 @@ double n_permutation(T first, T last) } template -auto random_shuffle(T& v) +auto random_shuffle(T&& v) { return random_shuffle(v.begin(), v.end()); } template -auto next_permutation(T& v) +auto next_permutation(T&& v) { return next_permutation(v.begin(), v.end()); } template -auto n_permutation(const T& v) +auto n_permutation(T&& v) { return n_permutation(v.begin(), v.end()); } \ No newline at end of file diff --git a/man/pmt.Rd b/man/pmt.Rd index 6da93ce..538badf 100644 --- a/man/pmt.Rd +++ b/man/pmt.Rd @@ -123,8 +123,8 @@ r <- define_pmt( rcpp <- define_pmt( inherit = "twosample", n_permu = 1e5, statistic = "[](const auto& x, const auto& y) { - auto m = x.size(); - auto n = y.size(); + auto m = x.length(); + auto n = y.length(); return [=](const auto& x, const auto& y) { return sum(x) / m - sum(y) / n; }; @@ -135,9 +135,9 @@ rcpp <- define_pmt( # rcpp <- define_pmt( # inherit = "twosample", n_permu = 1e5, # statistic = "[](const NumericVector& x, const NumericVector& y) { -# R_xlen_t m = x.size(); -# R_xlen_t n = y.size(); -# return [=](const NumericVector& x, const NumericVector& y) -> double { +# R_xlen_t m = x.length(); +# R_xlen_t n = y.length(); +# return [m, n](const NumericVector& x, const NumericVector& y) -> double { # return sum(x) / m - sum(y) / n; # }; # }"