elastes
Elastic Full Procrustes Means for Sparse and Irregular Planar Curves
Description
Provides functions for the computation of functional elastic shape means over sets of open planar curves. The package is particularly suitable for settings where these curves are only sparsely and irregularly observed. It uses a novel approach for elastic shape mean estimation, where planar curves are treated as complex functions and a full Procrustes mean is estimated from the corresponding smoothed Hermitian covariance surface. This is combined with the methods for elastic mean estimation proposed in Steyer, Stöcker, Greven (2022) <doi:10.1111/biom.13706>. See Stöcker et. al. (2022) <arXiv:2203.10522> for details.
Downloads
167
Last 30 days
19973rd
167
Last 90 days
167
Last year
CRAN Check Status
Show all 14 flavors
| Flavor | Status |
|---|---|
| r-devel-linux-x86_64-debian-clang | NOTE |
| r-devel-linux-x86_64-debian-gcc | NOTE |
| r-devel-linux-x86_64-fedora-clang | NOTE |
| r-devel-linux-x86_64-fedora-gcc | NOTE |
| r-devel-macos-arm64 | ERROR |
| r-devel-windows-x86_64 | NOTE |
| r-oldrel-macos-arm64 | NOTE |
| r-oldrel-macos-x86_64 | NOTE |
| r-oldrel-windows-x86_64 | NOTE |
| r-patched-linux-x86_64 | NOTE |
| r-release-linux-x86_64 | NOTE |
| r-release-macos-arm64 | NOTE |
| r-release-macos-x86_64 | NOTE |
| r-release-windows-x86_64 | NOTE |
Check details (19 non-OK)
CRAN incoming feasibility
Maintainer: ‘Manuel Pfeuffer <manuel.pfeuffer@hu-berlin.de>’ The Description field contains <doi:10.1111/biom.13706>. See Stöcker et. al. (2022) <arXiv:2203.10522> Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
CRAN incoming feasibility
Maintainer: ‘Manuel Pfeuffer <manuel.pfeuffer@hu-berlin.de>’ The Description field contains <doi:10.1111/biom.13706>. See Stöcker et. al. (2022) <arXiv:2203.10522> Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
examples
Running examples in ‘elastes-Ex.R’ failed
The error most likely occurred in:
> ### Name: compute_elastic_shape_mean
> ### Title: Compute an elastic full Procrustes mean for a collection of
> ### curves
> ### Aliases: compute_elastic_shape_mean
>
> ### ** Examples
>
> curve <- function(t){
+ rbind(t*cos(13*t), t*sin(13*t))
+ }
> set.seed(18)
> data_curves <- lapply(1:4, function(i){
+ m <- sample(10:15, 1)
+ delta <- abs(rnorm(m, mean = 1, sd = 0.05))
+ t <- cumsum(delta)/sum(delta)
+ data.frame(t(curve(t)) + 0.07*t*matrix(cumsum(rnorm(2*length(delta))),
+ ncol = 2))
+ })
>
> #randomly rotate and scale curves
> rand_scale <- function(curve){ ( 0.5 + runif(1) ) * curve }
> rand_rotate <- function(curve){
+ names <- colnames(curve)
+ theta <- 2*pi*runif(1)
+ mat <- matrix(c(cos(theta), sin(theta), -sin(theta), cos(theta)), nrow = 2, ncol = 2)
+ curve.rot <- as.matrix(curve) %*% t(mat)
+ curve.rot <- as.data.frame(curve.rot)
+ colnames(curve.rot) <- names
+ return(curve.rot)
+ }
> data_curves <- lapply(data_curves, rand_scale)
> data_curves <- lapply(data_curves, rand_rotate)
>
> #compute smooth procrustes mean with 2 order penalty
> knots <- seq(0,1, length = 11)
> elastic_shape_mean <- compute_elastic_shape_mean(
+ data_curves,
+ knots = knots,
+ type = "smooth",
+ penalty = 2
+ )
*** caught segfault ***
address 0x1, cause 'invalid permissions'
Traceback:
1: eigen(t(L.inv) %*% beta.mat %*% L.inv)
2: fit_mean(srv_data_curves = srv_data_curves, knots = knots, type = type, penalty = penalty, var_type = var_type, pfit_method = pfit_method, max_iter = max_iter, eps = eps, verbose = verbose, cluster = cluster, smooth_warp = smooth_warp)
3: compute_elastic_shape_mean(data_curves, knots = knots, type = "smooth", penalty = 2)
An irrecoverable exception occurred. R is aborting now ...
re-building of vignette outputs
Error(s) in re-building vignettes:
--- re-building ‘elastes.Rmd’ using rmarkdown
*** caught segfault ***
address 0x1, cause 'invalid permissions'
Traceback:
1: eigen(t(L.inv) %*% beta.mat %*% L.inv)
2: fit_mean(srv_data_curves = srv_data_curves, knots = knots, type = type, penalty = penalty, var_type = var_type, pfit_method = pfit_method, max_iter = max_iter, eps = eps, verbose = verbose, cluster = cluster, smooth_warp = smooth_warp)
3: compute_elastic_shape_mean(digit3, knots = seq(0, 1, length = 11), type = "smooth")
4: eval(expr, envir)
5: eval(expr, envir)
6: withVisible(eval(expr, envir))
7: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)})
8: eval(call)
9: eval(call)
10: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers)
11: doWithOneRestart(return(expr), restart)
12: withOneRestart(expr, restarts[[1L]])
13: withRestartList(expr, restarts[-nr])
14: doWithOneRestart(return(expr), restart)
15: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
16: withRestartList(expr, restarts)
17: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
18: evaluate::evaluate(...)
19: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
20: in_dir(input_dir(), expr)
21: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
22: eng_r(options)
23: block_exec(params)
24: call_block(x)
25: process_group(group)
26: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) })
27: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global()))
28: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
29: process_file(text, output)
30: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
31: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
32: vweave_rmarkdown(...)
33: engine$weave(file, quiet = quiet, encoding = enc)
34: doTryCatch(return(expr), name, parentenv, handler)
35: tryCatchOne(expr, names, parentenv, handlers[[1L]])
36: tryCatchList(expr, classes, parentenv, handlers)
37: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) } outputs <- c(outputs, output)}, error = function(e) { thisOK <<- FALSE fails <<- c(fails, file) message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
38: tools::buildVignettes(dir = "/Volumes/Builds/packages/sonoma-arm64/results/4.6/elastes.Rcheck/vign_test/elastes", skip = TRUE, ser_elibs = "/Volumes/Temp/tmp/RtmpsL5q2S/file1405733ccfd64.rds")
An irrecoverable exception occurred. R is aborting now ...
tests
Running ‘testthat.R’ [2s/1s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(elastes)
>
> test_check("elastes")
*** caught segfault ***
address 0x1, cause 'invalid permissions'
Traceback:
1: eigen(t(L.inv) %*% beta.mat %*% L.inv)
2: fit_mean(srv_data_curves = srv_data_curves, knots = knots, type = type, penalty = penalty, var_type = var_type, pfit_method = pfit_method, max_iter = max_iter, eps = eps, verbose = verbose, cluster = cluster, smooth_warp = smooth_warp)
3: compute_elastic_shape_mean(data_curves)
4: eval(code, test_env)
5: eval(code, test_env)
6: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt)
7: doTryCatch(return(expr), name, parentenv, handler)
8: tryCatchOne(expr, names, parentenv, handlers[[1L]])
9: tryCatchList(expr, classes, parentenv, handlers)
10: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal)
11: doWithOneRestart(return(expr), restart)
12: withOneRestart(expr, restarts[[1L]])
13: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })
14: test_code(code, parent.frame())
15: test_that("Test computed variance and distances in [0,1]", { mean <- compute_elastic_shape_mean(data_curves) expect_gt(mean$variance, 0) expect_lte(mean$variance, 1) for (d in mean$distances) { expect_gte(d, 0) expect_lte(d, 1) }})
16: eval(code, test_env)
17: eval(code, test_env)
18: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt)
19: doTryCatch(return(expr), name, parentenv, handler)
20: tryCatchOne(expr, names, parentenv, handlers[[1L]])
21: tryCatchList(expr, classes, parentenv, handlers)
22: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal)
23: doWithOneRestart(return(expr), restart)
24: withOneRestart(expr, restarts[[1L]])
25: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })
26: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new())
27: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call)
28: FUN(X[[i]], ...)
29: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)
30: doTryCatch(return(expr), name, parentenv, handler)
31: tryCatchOne(expr, names, parentenv, handlers[[1L]])
32: tryCatchList(expr, classes, parentenv, handlers)
33: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
34: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call))
35: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, shuffle = shuffle, error_call = error_call)
36: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle)
37: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
38: test_check("elastes")
An irrecoverable exception occurred. R is aborting now ...
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost braces
58 | \code{n_iter}{number of iterations until convergence}
| ^
Check History
ERROR 0 OK · 13 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Mar 9, 2026
CRAN incoming feasibility
Maintainer: ‘Manuel Pfeuffer <manuel.pfeuffer@hu-berlin.de>’ The Description field contains <doi:10.1111/biom.13706>. See Stöcker et. al. (2022) <arXiv:2203.10522> Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
CRAN incoming feasibility
Maintainer: ‘Manuel Pfeuffer <manuel.pfeuffer@hu-berlin.de>’ The Description field contains <doi:10.1111/biom.13706>. See Stöcker et. al. (2022) <arXiv:2203.10522> Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac
Rd files
checkRd: (-1) fit_mean.Rd:54: Lost braces
54 | \code{t_optims}{optimal parametrizations}
| ^
checkRd: (-1) fit_mean.Rd:55: Lost braces
55 | \code{G_optims}{optimal rotations}
| ^
checkRd: (-1) fit_mean.Rd:56: Lost braces
56 | \code{b_optims}{optimal scalings}
| ^
checkRd: (-1) fit_mean.Rd:57: Lost braces
57 | \code{n_optims}{optimal re-normalization}
| ^
checkRd: (-1) fit_mean.Rd:58: Lost brac