From dc80c07d5de5475de11eb257a569bab1093cb832 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Sat, 1 Aug 2026 19:44:51 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=E2=9A=A1=20Bolt:=20=EC=B5=9C=EC=86=9F?= =?UTF-8?q?=EA=B0=92=20=EA=B2=80=EC=83=89=20=EC=84=B1=EB=8A=A5=20=EC=B5=9C?= =?UTF-8?q?=EC=A0=81=ED=99=94=20(O(N=20log=20N)=20->=20O(N))?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `surveyFA.R`의 최솟값 검색 부분에서 `sort(x)[1]` 대신 `which.min(x)`를 사용하도록 최적화하였습니다. 이를 통해 불필요한 전체 배열 정렬 오버헤드를 줄이고 검색 성능을 O(N log N)에서 O(N)으로 개선했습니다. --- .jules/bolt.md | 3 ++ R/surveyFA.R | 3 +- tests/testthat/test-surveyFA.R | 82 ++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/.jules/bolt.md b/.jules/bolt.md index 7d3c603..b028326 100644 --- a/.jules/bolt.md +++ b/.jules/bolt.md @@ -16,3 +16,6 @@ ## 2025-02-12 - R 언어에서 반복적인 mirt 모델 생성 시 불필요한 데이터프레임 부분집합 추출 최적화 **Learning:** R에서 데이터프레임의 특정 열을 추출하는 작업(`df[cols]`)은 O(N)의 메모리 복사를 수반합니다. `autoFIPC`에서 `mirt` 모델의 파라미터를 설정하거나 호출하는 과정 중에 `newformXDataK[colnames(newFormModel@Data$data)]` 코드가 반복해서 사용되었고, 심지어 `ncol()`을 위해 단순히 개수를 구할 때도 사용되어 불필요한 메모리 할당과 오버헤드를 초래했습니다. **Action:** 조건문이나 반복문 내부에서 불필요하게 데이터프레임 부분집합 연산이 반복되지 않도록 외부에서 한 번만 `linkedFormData <- newformXDataK[colnames(newFormModel@Data$data)]`로 캐싱(caching)한 뒤, `ncol(linkedFormData)`와 `data = linkedFormData` 형태로 재사용하여 메모리 복사와 O(N) 오버헤드를 방지해야 합니다. +## 2024-08-01 - Avoid sort() overhead for finding minimum element +**Learning:** In R, using `sort(x)[1]` or `names(sort(x))[1]` to find the minimum (or maximum) element incurs unnecessary O(N log N) overhead, compared to using `which.min()` (or `which.max()`) which runs in O(N) linear time. +**Action:** When searching for the minimum or maximum value or its index/name, prefer using `which.min(x)` or `which.max(x)` instead of sorting the entire vector, especially inside iterative/looping structures like model fitting fallbacks where overhead compounds. diff --git a/R/surveyFA.R b/R/surveyFA.R index f60fffd..c1dcfa5 100644 --- a/R/surveyFA.R +++ b/R/surveyFA.R @@ -232,7 +232,8 @@ surveyFA <- function( names(p_values) <- rownames(fit_df) if (any(!is.na(p_values))) { p_values[is.na(p_values)] <- 1 - candidate <- names(sort(p_values, decreasing = FALSE))[1L] + # ⚡ Bolt: Use which.min() for O(N) linear time lookup instead of O(N log N) sort() overhead + candidate <- names(which.min(p_values)) if (!is.na(candidate) && p_values[[candidate]] < pThreshold) { return(candidate) } diff --git a/tests/testthat/test-surveyFA.R b/tests/testthat/test-surveyFA.R index 060ae68..e1cc146 100644 --- a/tests/testthat/test-surveyFA.R +++ b/tests/testthat/test-surveyFA.R @@ -82,3 +82,85 @@ test_that("surveyFA reports bounded recovery exhaustion when unrecoverable", { "could not estimate a valid model after bounded recovery attempts" ) }) + +test_that("surveyFA properly triggers fallback when autofix is disabled and covers item removal", { + skip_if_not_installed("mirt") + set.seed(20260702) + + # Intentionally messy data to force failure on standard methods + raw <- as.data.frame( + matrix( + c(rep(1, 20), rep(0, 20), rbinom(160, 1, 0.5)), + ncol = 5 + ) + ) + names(raw) <- paste0("item", 1:5) + raw$item6 <- 0 # Constant column + + # Force failure without autofix + expect_error( + suppressWarnings( + aFIPC::surveyFA( + data = raw, + autofix = FALSE, + forceUIRT = TRUE, + forceNormalEM = FALSE, + forceMHRM = TRUE, # Cover forceMHRM branch + unstable = FALSE, + SE = TRUE, + itemtype = "2PL", + maxItemRemovals = 2 + ) + ), + "could not estimate a valid model after bounded recovery attempts" + ) + + # Trigger unstable branch and force NormalEM=FALSE + expect_error( + suppressWarnings( + aFIPC::surveyFA( + data = raw, + autofix = TRUE, + forceUIRT = TRUE, + forceNormalEM = FALSE, + forceMHRM = FALSE, + unstable = FALSE, + SE = TRUE, + itemtype = "2PL", + maxItemRemovals = 2 + ) + ), + "could not estimate a valid model after bounded recovery attempts" + ) + + # Trigger legacy forceUIRT warning + expect_error( + aFIPC::surveyFA(data=raw, forceUIRT = FALSE), + "surveyFA requires forceUIRT=TRUE" + ) + + # Check invalid itemtype + expect_error( + aFIPC::surveyFA(data=raw, itemtype = c("2PL", "3PL")), + "surveyFA requires itemtype to be a single non-NA character value" + ) + + # Check invalid maxItemRemovals + expect_error( + aFIPC::surveyFA(data=raw, maxItemRemovals = -1), + "surveyFA requires maxItemRemovals to be a non-negative numeric scalar" + ) + + # Check invalid pThreshold + expect_error( + aFIPC::surveyFA(data=raw, pThreshold = 1.5), + "surveyFA requires pThreshold to be in \\(0, 1\\]" + ) + + # Check insufficient non-constant columns + bad_raw <- data.frame(item1 = rep(1, 10), item2 = rep(2, 10)) + expect_error( + aFIPC::surveyFA(bad_raw, forceUIRT=TRUE), + "surveyFA needs at least two non-constant response columns" + ) +}) From 997331a53f16d7a1be9ad6fa05b70e4c1f8ed90c Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Sat, 1 Aug 2026 20:00:15 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=E2=9A=A1=20Bolt:=20=EC=B5=9C=EC=86=9F?= =?UTF-8?q?=EA=B0=92=20=EA=B2=80=EC=83=89=20=EC=84=B1=EB=8A=A5=20=EC=B5=9C?= =?UTF-8?q?=EC=A0=81=ED=99=94=20(O(N=20log=20N)=20->=20O(N))?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `surveyFA.R`의 최솟값 검색 부분에서 `sort(x)[1]` 대신 `which.min(x)`를 사용하도록 최적화하였습니다. 이를 통해 불필요한 전체 배열 정렬 오버헤드를 줄이고 검색 성능을 O(N log N)에서 O(N)으로 개선했습니다. --- ..Rcheck/00check.log | 267 +++++++++++++++++ ..Rcheck/00install.out | 11 + ..Rcheck/aFIPC-Ex.R | 43 +++ ..Rcheck/aFIPC-Ex.Rout | 63 ++++ ..Rcheck/aFIPC-Ex.pdf | Bin 0 -> 3611 bytes ..Rcheck/aFIPC/DESCRIPTION | 17 ++ ..Rcheck/aFIPC/INDEX | 2 + ..Rcheck/aFIPC/LICENSE | 2 + ..Rcheck/aFIPC/Meta/Rd.rds | Bin 0 -> 264 bytes ..Rcheck/aFIPC/Meta/features.rds | Bin 0 -> 123 bytes ..Rcheck/aFIPC/Meta/hsearch.rds | Bin 0 -> 291 bytes ..Rcheck/aFIPC/Meta/links.rds | Bin 0 -> 119 bytes ..Rcheck/aFIPC/Meta/nsInfo.rds | Bin 0 -> 217 bytes ..Rcheck/aFIPC/Meta/package.rds | Bin 0 -> 763 bytes ..Rcheck/aFIPC/NAMESPACE | 5 + ..Rcheck/aFIPC/R/aFIPC | 27 ++ ..Rcheck/aFIPC/R/aFIPC.rdb | Bin 0 -> 39068 bytes ..Rcheck/aFIPC/R/aFIPC.rdx | Bin 0 -> 277 bytes ..Rcheck/aFIPC/help/AnIndex | 2 + ..Rcheck/aFIPC/help/aFIPC.rdb | Bin 0 -> 4766 bytes ..Rcheck/aFIPC/help/aFIPC.rdx | Bin 0 -> 189 bytes ..Rcheck/aFIPC/help/aliases.rds | Bin 0 -> 93 bytes ..Rcheck/aFIPC/help/paths.rds | Bin 0 -> 110 bytes ..Rcheck/aFIPC/html/00Index.html | 29 ++ ..Rcheck/aFIPC/html/R.css | 129 +++++++++ ..Rcheck/tests/startup.Rs | 3 + ..Rcheck/tests/testthat.R | 4 + ..Rcheck/tests/testthat.Rout | 269 ++++++++++++++++++ ..Rcheck/tests/testthat/test-autoFIPC.R | 91 ++++++ .../test-fixed-parameter-calibration.R | 123 ++++++++ .../testthat/test-optimization-equivalence.R | 80 ++++++ ..Rcheck/tests/testthat/test-package-api.R | 42 +++ .../tests/testthat/test-sentinel-validation.R | 37 +++ ..Rcheck/tests/testthat/test-surveyFA.R | 166 +++++++++++ test_dummy.R | 2 - test_validation.R | 3 - 36 files changed, 1412 insertions(+), 5 deletions(-) create mode 100644 ..Rcheck/00check.log create mode 100644 ..Rcheck/00install.out create mode 100644 ..Rcheck/aFIPC-Ex.R create mode 100644 ..Rcheck/aFIPC-Ex.Rout create mode 100644 ..Rcheck/aFIPC-Ex.pdf create mode 100644 ..Rcheck/aFIPC/DESCRIPTION create mode 100644 ..Rcheck/aFIPC/INDEX create mode 100644 ..Rcheck/aFIPC/LICENSE create mode 100644 ..Rcheck/aFIPC/Meta/Rd.rds create mode 100644 ..Rcheck/aFIPC/Meta/features.rds create mode 100644 ..Rcheck/aFIPC/Meta/hsearch.rds create mode 100644 ..Rcheck/aFIPC/Meta/links.rds create mode 100644 ..Rcheck/aFIPC/Meta/nsInfo.rds create mode 100644 ..Rcheck/aFIPC/Meta/package.rds create mode 100644 ..Rcheck/aFIPC/NAMESPACE create mode 100644 ..Rcheck/aFIPC/R/aFIPC create mode 100644 ..Rcheck/aFIPC/R/aFIPC.rdb create mode 100644 ..Rcheck/aFIPC/R/aFIPC.rdx create mode 100644 ..Rcheck/aFIPC/help/AnIndex create mode 100644 ..Rcheck/aFIPC/help/aFIPC.rdb create mode 100644 ..Rcheck/aFIPC/help/aFIPC.rdx create mode 100644 ..Rcheck/aFIPC/help/aliases.rds create mode 100644 ..Rcheck/aFIPC/help/paths.rds create mode 100644 ..Rcheck/aFIPC/html/00Index.html create mode 100644 ..Rcheck/aFIPC/html/R.css create mode 100644 ..Rcheck/tests/startup.Rs create mode 100644 ..Rcheck/tests/testthat.R create mode 100644 ..Rcheck/tests/testthat.Rout create mode 100644 ..Rcheck/tests/testthat/test-autoFIPC.R create mode 100644 ..Rcheck/tests/testthat/test-fixed-parameter-calibration.R create mode 100644 ..Rcheck/tests/testthat/test-optimization-equivalence.R create mode 100644 ..Rcheck/tests/testthat/test-package-api.R create mode 100644 ..Rcheck/tests/testthat/test-sentinel-validation.R create mode 100644 ..Rcheck/tests/testthat/test-surveyFA.R delete mode 100644 test_dummy.R delete mode 100644 test_validation.R diff --git a/..Rcheck/00check.log b/..Rcheck/00check.log new file mode 100644 index 0000000..4d92f88 --- /dev/null +++ b/..Rcheck/00check.log @@ -0,0 +1,267 @@ +* using log directory ‘/app/..Rcheck’ +* using R version 4.3.3 (2024-02-29) +* using platform: x86_64-pc-linux-gnu (64-bit) +* R was compiled by + gcc (Ubuntu 13.2.0-23ubuntu3) 13.2.0 + GNU Fortran (Ubuntu 13.2.0-23ubuntu3) 13.2.0 +* running under: Ubuntu 24.04.4 LTS +* using session charset: UTF-8 +* checking for file ‘./DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘aFIPC’ version ‘0.1.0’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... NOTE +Found the following apparent object files/libraries: + packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/libs/Rcpp.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/libs/RcppArmadillo.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/curl/libs/curl.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/digest/libs/digest.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/libs/git2r.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/libs/jsonlite.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/mime/libs/mime.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/libs/mirt.so + packrat/lib/x86_64-pc-linux-gnu/3.4.1/openssl/libs/openssl.so +Object files/libraries should not be included in a source package. + +Subdirectory ‘packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation’ seems to contain an installed version of the package. +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... NOTE +Found the following hidden files and directories: + .Rprofile + .gitignore + .gitleaks.toml + .semgrepignore + .yamllint.yml + packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/.gitignore + ..Rcheck + .Jules + .git + .github + .jules +These were most likely included in error. See section ‘Package +structure’ in the ‘Writing R Extensions’ manual. +* checking for portable file names ... ERROR +Found the following files with duplicate lower-cased file names: + .jules/palette.md + .jules +File names must not differ just by case to be usable on all R +platforms. +Please rename the files and try again. +See section ‘Package structure’ in the ‘Writing R Extensions’ manual. + NOTE +Found the following non-portable file paths: + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/generated/InternalFunctionWithStdFunction_call.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_Pointer_CppMethod.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_Pointer_method.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_class_constructor.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_class_factory.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_class_signature.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_ctor_signature.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/module/Module_generated_get_signature.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/Comparator_With_One_Value.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/logical_operators__Vector__Vector.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/include/Rcpp/sugar/operators/logical_operators__Vector__primitive.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/bin/amd64/r-cran-testrcpppackage_0.1.0-1_amd64.deb + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/bin/i386/r-cran-testrcpppackage_0.1.0-1_i386.deb + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppClass/man/testRcppClass-package.Rd + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/man/Rcpp_modules_examples.Rd + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppModule/man/testRcppModule-package.Rd + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/unitTests/testRcppPackage/man/testRcppPackage-package.Rd + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/RcppArmadilloExtensions/rmultinom.h + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpMat_iterators_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpSubview_iterators_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/SpValProxy_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_ostream_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_ostream_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/arma_static_check.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/compiler_setup_post.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/eglue_core_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_inplace_strans.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/fn_inplace_trans.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_atan2_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_cross_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_histc_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_hypot_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_mixed_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyfit_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyfit_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyval_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_polyval_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_relational_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_relational_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_solve_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_times_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_toeplitz_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_toeplitz_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/glue_trapz_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/mtGlueCube_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DenseGenMatProd_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DenseGenMatProd_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DoubleShiftQR_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_DoubleShiftQR_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_EigsSelect.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_GenEigsSolver_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_GenEigsSolver_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SortEigenvalue.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SparseGenMatProd_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SparseGenMatProd_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SymEigsSolver_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_SymEigsSolver_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_TridiagEigen_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_TridiagEigen_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergEigen_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergEigen_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergQR_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_UpperHessenbergQR_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/newarp_cx_attrib.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cumprod_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cx_scalar_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_cx_scalar_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diagmat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_diagvec_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_find_unique_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_find_unique_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_max_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_max_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_min_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_index_min_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_nonzeros_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_nonzeros_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_normalise_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_normalise_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_orth_null_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_orth_null_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_princomp_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_princomp_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_relational_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_relational_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_reshape_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_shuffle_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sort_index_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sort_index_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_sqrtmat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_toeplitz_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_toeplitz_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_vectorise_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/op_vectorise_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_div.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_minus.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_plus.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_relational.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_schur.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_cube_times.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_ostream.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/operator_relational.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_vec_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/running_stat_vec_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spdiagview_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_join_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_join_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_minus_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_minus_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_plus_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_plus_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_times_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spglue_times_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_diagmat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_diagmat_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_htrans_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_htrans_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_strans_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_strans_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_symmat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_symmat_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_trimat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/spop_trimat_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_each_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_each_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_cube_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_each_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_each_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem1_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem1_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem2_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_elem2_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_field_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/subview_field_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/typedef_elem_check.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/typedef_mat_fixed.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/wall_clock_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xtrans_mat_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xvec_htrans_bones.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/include/armadillo_bits/xvec_htrans_meat.hpp + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/bread/DESCRIPTION + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/breakfast/DESCRIPTION + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/oatmeal/DESCRIPTION + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/packrat/DESCRIPTION + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/toast/DESCRIPTION + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/lockfiles/lockfile-multipleRepos.txt + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/other-packages/packrat/DESCRIPTION + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/lib/lib-current.R + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/library.new/lib-new.R + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/library.old/lib-old.R + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/resources/interactive-doc-example.Rmd + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/bread + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/breakfast + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/oatmeal + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/packrat + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/toast + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/library.new + aFIPC/packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/projects/libraries/packrat/library.old + +Tarballs are only required to store paths of up to 100 bytes and cannot +store those of more than 256 bytes, with restrictions including to 100 +bytes for the final component. +See section ‘Package structure’ in the ‘Writing R Extensions’ manual. +* checking for sufficient/correct file permissions ... OK +* checking whether package ‘aFIPC’ can be installed ... OK +* checking installed package size ... OK +* checking package directory ... OK +* checking DESCRIPTION meta-information ... NOTE +Checking should be performed on sources prepared by ‘R CMD build’. +* checking top-level files ... OK +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... WARNING +Found the following directory with the name of a check directory: + ./..Rcheck +Most likely, these were included erroneously. +Found the following CITATION files in a non-standard place: + packrat/lib/x86_64-pc-linux-gnu/3.4.1/GPArotation/CITATION + packrat/lib/x86_64-pc-linux-gnu/3.4.1/Rcpp/CITATION + packrat/lib/x86_64-pc-linux-gnu/3.4.1/RcppArmadillo/CITATION + packrat/lib/x86_64-pc-linux-gnu/3.4.1/git2r/CITATION + packrat/lib/x86_64-pc-linux-gnu/3.4.1/jsonlite/CITATION + packrat/lib/x86_64-pc-linux-gnu/3.4.1/mirt/CITATION +Most likely ‘inst/CITATION’ should be used instead. +* checking R files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking include directives in Makefiles ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... \ No newline at end of file diff --git a/..Rcheck/00install.out b/..Rcheck/00install.out new file mode 100644 index 0000000..36caa27 --- /dev/null +++ b/..Rcheck/00install.out @@ -0,0 +1,11 @@ +* installing *source* package ‘aFIPC’ ... +** using staged installation +** R +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (aFIPC) diff --git a/..Rcheck/aFIPC-Ex.R b/..Rcheck/aFIPC-Ex.R new file mode 100644 index 0000000..5e6b5ed --- /dev/null +++ b/..Rcheck/aFIPC-Ex.R @@ -0,0 +1,43 @@ +pkgname <- "aFIPC" +source(file.path(R.home("share"), "R", "examples-header.R")) +options(warn = 1) +library('aFIPC') + +base::assign(".oldSearch", base::search(), pos = 'CheckExEnv') +base::assign(".old_wd", base::getwd(), pos = 'CheckExEnv') +cleanEx() +nameEx("autoFIPC") +### * autoFIPC + +flush(stderr()); flush(stdout()) + +### Name: autoFIPC +### Title: automated fixed item parameter linking +### Aliases: autoFIPC + +### ** Examples + +## Not run: +##D autoFIPC( +##D newformXData = new_model, +##D oldformYData = old_model, +##D newformCommonItemNames = common_new, +##D oldformCommonItemNames = common_old, +##D confirmCommonItems = TRUE +##D ) +## End(Not run) + + + +### *