From e5278caf1f7aa08a612ee96aa0aa7d741f95663a Mon Sep 17 00:00:00 2001 From: perrydv Date: Thu, 15 Oct 2026 20:44:47 -0700 Subject: [PATCH 1/8] remove uses of the nimble namespace, as we move towards nimble2 --- .gitignore | 2 +- nimbleModel/R/miscFunctions.R | 11 ++++++----- nimbleModel/R/modelBaseClass.R | 2 +- nimbleModel/R/modelDecl.R | 2 +- nimbleModel/R/modelDef.R | 8 ++++++-- nimbleModel/R/modelFunctions.R | 6 +++--- nimbleModel/R/options.R | 4 +++- nimbleModel/tests/testthat/test-setupMargNodes.R | 4 ++-- 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 2c21d50..2a20ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,4 @@ vignettes/*.pdf **/.DS_Store # Symlink to inst/include for devtools::load_all() -nimbleModel/include \ No newline at end of file +nimbleModel/include diff --git a/nimbleModel/R/miscFunctions.R b/nimbleModel/R/miscFunctions.R index d019d01..1c4333e 100644 --- a/nimbleModel/R/miscFunctions.R +++ b/nimbleModel/R/miscFunctions.R @@ -1,7 +1,7 @@ # This needs to be sourced after `nimbleFunction` is defined, so can't be done in `distributions_inputList.R`. -calc_dmnormAltParams <- nimble::nimbleFunction( +calc_dmnormAltParams <- nCompiler::nFunction( name = "calc_dmnormAltParams", - run = function(cholesky = double(2), prec_param = double(), return_prec = double()) { + fun = function(cholesky = double(2), prec_param = double(), return_prec = double()) { if (prec_param == return_prec) { ans <- t(cholesky) %*% cholesky } else { @@ -16,9 +16,9 @@ calc_dmnormAltParams <- nimble::nimbleFunction( } ) -calc_dwishAltParams <- nimble::nimbleFunction( +calc_dwishAltParams <- nCompiler::nFunction( name = "calc_dwishAltParams", - run = function(cholesky = double(2), scale_param = double(), return_scale = double()) { + fun = function(cholesky = double(2), scale_param = double(), return_scale = double()) { if (scale_param == return_scale) { ans <- t(cholesky) %*% cholesky } else { @@ -31,4 +31,5 @@ calc_dwishAltParams <- nimble::nimbleFunction( returnType(double(2)) return(ans) } -) \ No newline at end of file +) + diff --git a/nimbleModel/R/modelBaseClass.R b/nimbleModel/R/modelBaseClass.R index 782a272..1dcaf01 100644 --- a/nimbleModel/R/modelBaseClass.R +++ b/nimbleModel/R/modelBaseClass.R @@ -395,7 +395,7 @@ modelBase_nClass <- nClass( getDependencies = function(nodes, omit = NULL, self = TRUE, determOnly = FALSE, stochOnly = FALSE, includeData = TRUE, dataOnly = FALSE, - includePredictive = nimble::getNimbleOption('getDependenciesIncludesPredictiveNodes'), + includePredictive = getNimbleModelOption('getDependenciesIncludesPredictiveNodes'), predictiveOnly = FALSE, includeRHSonly = FALSE, downstream = FALSE, immediateOnly = FALSE, nodesAsChars = getNimbleModelOption("nodesAsChars"), diff --git a/nimbleModel/R/modelDecl.R b/nimbleModel/R/modelDecl.R index eff0854..80f22d2 100644 --- a/nimbleModel/R/modelDecl.R +++ b/nimbleModel/R/modelDecl.R @@ -102,7 +102,7 @@ modelDeclClass <- R6Class( if (!stoch) { return(NULL) } - types <- nimble:::distributions[[distributionName]]$types + types <- nimbleModel:::distributions[[distributionName]]$types if (is.null(types)) { return(NULL) } diff --git a/nimbleModel/R/modelDef.R b/nimbleModel/R/modelDef.R index 590893c..d6ea155 100644 --- a/nimbleModel/R/modelDef.R +++ b/nimbleModel/R/modelDef.R @@ -34,7 +34,11 @@ modelDefClass <- R6Class( checkAndAssignConstants(constants, code) modelCode <<- codeProcessIfThenElse(code, constants, userEnv) - modelCode <<- nimble:::nf_changeNimKeywords(modelCode) # Formerly in `assignBUGScode`. + + # Disable keyword name transformations until we determine what happens here vs in nimble2. + # We need to not use nimble anymore. + # + # modelCode <<- nimble:::nf_changeNimKeywords(modelCode) # Formerly in `assignBUGScode`. # TODO: add this later. # setModelValuesClassName() @@ -575,7 +579,7 @@ modelDefClass <- R6Class( if (decl$stoch) { params <- as.list(valueExpr[-1]) # Extract the original distribution parameters. paramNames <- names(valueExpr)[-1] - types <- nimble:::distributions[[decl$distributionName]]$types + types <- nimbleModel:::distributions[[decl$distributionName]]$types # `types` may be NULL if all are scalar. for (iParam in seq_along(params)) { diff --git a/nimbleModel/R/modelFunctions.R b/nimbleModel/R/modelFunctions.R index 2558b78..863b55c 100644 --- a/nimbleModel/R/modelFunctions.R +++ b/nimbleModel/R/modelFunctions.R @@ -219,7 +219,7 @@ taggedClass <- R6Class( getDependencies <- function(model, nodes, omit = NULL, self = TRUE, determOnly = FALSE, stochOnly = FALSE, includeData = TRUE, dataOnly = FALSE, - includePredictive = nimble::getNimbleOption('getDependenciesIncludesPredictiveNodes'), + includePredictive = getNimbleModelOption('getDependenciesIncludesPredictiveNodes'), predictiveOnly = FALSE, includeRHSonly = FALSE, downstream = FALSE, immediateOnly = FALSE, nodesAsChars = getNimbleModelOption("nodesAsChars"), @@ -722,7 +722,7 @@ setupMargNodes <- function(model, paramNodes, randomEffectsNodes, calcNodes, if (length(reCheck)) { errorNodes <- head(reCheck, n = 4) if (length(reCheck) > 4) moreText <- ", .." else moreText <- "" - extraMsg <- if (isTRUE(nimble::getNimbleOption("includeUnneededLatents"))) "" else " They will be omitted, but one can force inclusion with\n `nimbleOptions(includeUnneededLatents=TRUE)`.\n" + extraMsg <- if (isTRUE(getNimbleModelOption("includeUnneededLatents"))) "" else " They will be omitted, but one can force inclusion with\n `nimbleOptions(includeUnneededLatents=TRUE)`.\n" messageIfVerbose( " [Warning] There are some `randomEffectsNodes` provided that look like\n", " they are not needed for the provided (or default) `paramNodes`:\n", @@ -731,7 +731,7 @@ setupMargNodes <- function(model, paramNodes, randomEffectsNodes, calcNodes, " (potentially in the control list) for the algorithm or as\n", " an argument to `setupMargNodes`." ) - if (!isTRUE(nimble::getNimbleOption("includeUnneededLatents"))) { + if (!isTRUE(getNimbleModelOption("includeUnneededLatents"))) { randomEffectsNodes <- setdiff_nodes(randomEffectsNodes, reCheck) } } diff --git a/nimbleModel/R/options.R b/nimbleModel/R/options.R index 55e2c7d..aaaaa62 100644 --- a/nimbleModel/R/options.R +++ b/nimbleModel/R/options.R @@ -10,7 +10,9 @@ disallowMultivariateArgumentExpressions = TRUE, legacy_nimble = FALSE, # TRUE means stricter use of original nimble behavior in some cases. nodesAsChars = FALSE, - verbose = TRUE + verbose = TRUE, + getDependenciesIncludesPredictiveNodes = TRUE, ## may be toggled off during MCMC sampler building + includeUnneededLatents = FALSE ) ) diff --git a/nimbleModel/tests/testthat/test-setupMargNodes.R b/nimbleModel/tests/testthat/test-setupMargNodes.R index 198db5b..dffdd8f 100644 --- a/nimbleModel/tests/testthat/test-setupMargNodes.R +++ b/nimbleModel/tests/testthat/test-setupMargNodes.R @@ -497,12 +497,12 @@ test_that("`setupMargNodes` handling of missing/extra latents", { expect_identical(result$paramNodes[[1]]$toNodeChars(), c("mu")) # TODO: presumably rework how this option is handled in nimble 2. - nimble::nimbleOptions(includeUnneededLatents = TRUE) + nimbleModelOptions(includeUnneededLatents = TRUE) expect_message(result <- setupMargNodes(m, randomEffectsNodes = 'b'), "they are not needed for the provided") expect_identical(result$randomEffectsNodes[[1]]$toNodeChars(), c("b[1]", "b[2]", "b[3]")) expect_identical(result$paramNodes[[1]]$toNodeChars(), c("mu")) ## Note `b[3]` is not in `calcNodes` because `predictiveNodes` are excluded. - nimble::nimbleOptions(includeUnneededLatents = FALSE) + nimbleModelOptions(includeUnneededLatents = FALSE) }) test_that("getConditionallyIndependentSets works with grouped data", { From 8b5112fbe4f0eb8f1046ac9f875386d2ac485b9e Mon Sep 17 00:00:00 2001 From: Christopher Paciorek Date: Sat, 17 Oct 2026 11:59:31 -0700 Subject: [PATCH 2/8] Include nCompiler:::nf_changeKeywords in modelDef processing. --- nimbleModel/R/modelDef.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nimbleModel/R/modelDef.R b/nimbleModel/R/modelDef.R index d6ea155..7f28fed 100644 --- a/nimbleModel/R/modelDef.R +++ b/nimbleModel/R/modelDef.R @@ -35,10 +35,10 @@ modelDefClass <- R6Class( modelCode <<- codeProcessIfThenElse(code, constants, userEnv) - # Disable keyword name transformations until we determine what happens here vs in nimble2. + # Switch keyword name transformations as a test while we determine what happens here vs in nimble2. # We need to not use nimble anymore. # - # modelCode <<- nimble:::nf_changeNimKeywords(modelCode) # Formerly in `assignBUGScode`. + modelCode <<- nCompiler:::nf_changeKeywords(modelCode) # Formerly in `assignBUGScode`. # TODO: add this later. # setModelValuesClassName() From 0f8f66a8eaf09aed9d91cff8478e59b5a28f23b3 Mon Sep 17 00:00:00 2001 From: Christopher Paciorek Date: Sat, 17 Oct 2026 12:00:21 -0700 Subject: [PATCH 3/8] Add some handling for nC, nMult. --- nimbleModel/R/all_utils.R | 20 ++++++++++++------- nimbleModel/R/context.R | 8 ++++---- nimbleModel/R/getSymbolicParentNodes.R | 4 ++-- nimbleModel/R/indexConstraint.R | 2 +- nimbleModel/R/indexRuleConstant.R | 4 ++-- nimbleModel/R/modelDecl.R | 2 +- nimbleModel/R/model_utils.R | 4 ++-- .../tests/testthat/test-setupMargNodes.R | 5 ++--- 8 files changed, 27 insertions(+), 22 deletions(-) diff --git a/nimbleModel/R/all_utils.R b/nimbleModel/R/all_utils.R index fd3e369..ca156ec 100644 --- a/nimbleModel/R/all_utils.R +++ b/nimbleModel/R/all_utils.R @@ -163,11 +163,12 @@ messageIfVerbose <- function(...) { # Temporarily here as need for initial testing of processing. +# Mis-named now as it also allows for nFunctions. is.rcf <- function(x, inputIsName = FALSE, where = -1) { if (inputIsName) { x <- get(x, pos = where) } - if (inherits(x, "nfMethodRC")) { + if (inherits(x, "nfMethodRC") || inherits(x, "nFunction")) { return(TRUE) } if (is.function(x)) { @@ -184,12 +185,6 @@ is.rcf <- function(x, inputIsName = FALSE, where = -1) { nimbleUniqueID <- labelFunctionCreator("UID") nimbleModelID <- labelFunctionCreator("MID") - -# temporary, as we have some tests of use of `c()` in indexing -nimC <- function(...) { - c(...) -} - evalNumeric <- function(expr) { if (length(expr) == 1) { return(expr) @@ -202,3 +197,14 @@ evalNumeric <- function(expr) { } return(expr) } + +# Placeholders while we sort out packaging. + +nC <- function(...) { + c(...) +} + +nMul <- function(x, y) { + x %*% y +} + diff --git a/nimbleModel/R/context.R b/nimbleModel/R/context.R index b4d50bd..bce2887 100644 --- a/nimbleModel/R/context.R +++ b/nimbleModel/R/context.R @@ -206,8 +206,8 @@ expandContextAndReplacements <- function(allReplacements, allReplacementNameExpr innerLoopCode <- as.call(c(list(quote(`{`)), replacementRecordingCode, indexRecordingCode, quote(iAns <- iAns + 1))) innerLoopCode <- context$embedCodeInForLoop(innerLoopCode, useContext) - # This is a hacky way to deal with `nimC`, which is not in `constantsCopy`. - if (length(innerLoopCode[[3]]) > 1 && innerLoopCode[[3]][[1]] == "nimC") { + # This is a hacky way to deal with `nC`, which is not in `constantsCopy`. + if (length(innerLoopCode[[3]]) > 1 && innerLoopCode[[3]][[1]] == "nC") { innerLoopCode[[3]][[1]] <- quote(c) } @@ -265,8 +265,8 @@ determineContextSize <- function(context, useContext = rep(TRUE, length(context$ innerLoopCode <- quote(iAns <- iAns + 1) innerLoopCode <- context$embedCodeInForLoop(innerLoopCode, useContext) - # This is a hacky way to deal with `nimC`, which is not in `evalEnv`. - if (length(innerLoopCode[[3]]) > 1 && innerLoopCode[[3]][[1]] == "nimC") { + # This is a hacky way to deal with `nC`, which is not in `evalEnv`. + if (length(innerLoopCode[[3]]) > 1 && innerLoopCode[[3]][[1]] == "nC") { innerLoopCode[[3]][[1]] <- quote(c) } diff --git a/nimbleModel/R/getSymbolicParentNodes.R b/nimbleModel/R/getSymbolicParentNodes.R index b3ed2f7..26cd726 100644 --- a/nimbleModel/R/getSymbolicParentNodes.R +++ b/nimbleModel/R/getSymbolicParentNodes.R @@ -89,7 +89,7 @@ nimblePreevaluationFunctionNames <- c( # distribution functions paste0(c("d", "q", "p"), "t"), paste0(c("d", "q", "p"), "exp"), - "nimC", "nimRep", "nimSeq", "diag", + "nC", "nimRep", "nimSeq", "diag", "nMul", "nimNumeric", "nimMatrix", "nimArray", "length" ) @@ -143,7 +143,7 @@ nimbleOrRfunctionNames <- c( # distribution functions paste0(c("d", "r", "q", "p"), "t"), paste0(c("d", "r", "q", "p"), "exp"), - "nimC", "nimRep", "nimSeq", + "nimC", "nimRep", "nimSeq", "nC", "nMul", "diag", "length" ) diff --git a/nimbleModel/R/indexConstraint.R b/nimbleModel/R/indexConstraint.R index 58f6e7b..278269b 100644 --- a/nimbleModel/R/indexConstraint.R +++ b/nimbleModel/R/indexConstraint.R @@ -149,7 +149,7 @@ newIndexConstraint_fromSimple <- function(expr, slot, constants) { slot )) } else { # various other cases such as `x[2]`, `x[k+1]`, `x[c(2,3,5)]`, `x[c(2,3,k)]`. - if (expr[[1]] == "nimC") { + if (expr[[1]] == "nC") { expr[[1]] <- quote(c) } result <- eval(expr, envir = constants) diff --git a/nimbleModel/R/indexRuleConstant.R b/nimbleModel/R/indexRuleConstant.R index 440e4d4..891b6f0 100644 --- a/nimbleModel/R/indexRuleConstant.R +++ b/nimbleModel/R/indexRuleConstant.R @@ -56,8 +56,8 @@ indexRuleConstant_setup <- function(toIndexExprList, eval(toIndexExpr[[2]], envir = constants), eval(toIndexExpr[[3]], envir = constants) ) - } else if (length(toIndexExpr) > 1 && toIndexExpr[[1]] == "nimC") { - toIndexExpr[[1]] <- quote(c) # `nimC` not readily available in series of environments. + } else if (length(toIndexExpr) > 1 && toIndexExpr[[1]] == "nC") { # TODO: revisit handling of c(). + toIndexExpr[[1]] <- quote(c) # `nC` not readily available in series of environments. toConstant <- indexRangeMatrixClass$new(as.matrix(eval(toIndexExpr, envir = constants))) } else { stop("input error in `", safeDeparse(toIndexExprList), "`.") diff --git a/nimbleModel/R/modelDecl.R b/nimbleModel/R/modelDecl.R index 80f22d2..d3fb7a3 100644 --- a/nimbleModel/R/modelDecl.R +++ b/nimbleModel/R/modelDecl.R @@ -352,7 +352,7 @@ modelDeclClass <- R6Class( } } if (is.c(origIndex)) { # Handles new cases like `y[c(2,3,5)] ~ dmnorm(...)`. - if (origIndex[[1]] == "nimC") { + if (origIndex[[1]] == "nC") { logProbExpr[[i]] <- origIndex[[2]] } else { stop("unexpected input in `", safeDeparse(origIndex), "`.") diff --git a/nimbleModel/R/model_utils.R b/nimbleModel/R/model_utils.R index fe39f1c..18e7905 100644 --- a/nimbleModel/R/model_utils.R +++ b/nimbleModel/R/model_utils.R @@ -31,9 +31,9 @@ is.vectorized <- function(node) { is.c <- function(node) { if (is.character(node)) { - return(grepl("^nimC", node)) + return(grepl("^nC", node)) } else { - return("nimC" %in% all.names(node)) + return("nC" %in% all.names(node)) } } diff --git a/nimbleModel/tests/testthat/test-setupMargNodes.R b/nimbleModel/tests/testthat/test-setupMargNodes.R index dffdd8f..abda3a4 100644 --- a/nimbleModel/tests/testthat/test-setupMargNodes.R +++ b/nimbleModel/tests/testthat/test-setupMargNodes.R @@ -496,13 +496,12 @@ test_that("`setupMargNodes` handling of missing/extra latents", { expect_identical(result$randomEffectsNodes[[1]]$toNodeChars(), c("b[1]", "b[2]")) expect_identical(result$paramNodes[[1]]$toNodeChars(), c("mu")) - # TODO: presumably rework how this option is handled in nimble 2. - nimbleModelOptions(includeUnneededLatents = TRUE) + setNimbleModelOption('includeUnneededLatents', TRUE) expect_message(result <- setupMargNodes(m, randomEffectsNodes = 'b'), "they are not needed for the provided") expect_identical(result$randomEffectsNodes[[1]]$toNodeChars(), c("b[1]", "b[2]", "b[3]")) expect_identical(result$paramNodes[[1]]$toNodeChars(), c("mu")) ## Note `b[3]` is not in `calcNodes` because `predictiveNodes` are excluded. - nimbleModelOptions(includeUnneededLatents = FALSE) + setNimbleModelOption('includeUnneededLatents', FALSE) }) test_that("getConditionallyIndependentSets works with grouped data", { From 83c083800fd3563a2024e020fc10db903a971c03 Mon Sep 17 00:00:00 2001 From: Christopher Paciorek Date: Sat, 17 Oct 2026 12:27:36 -0700 Subject: [PATCH 4/8] Remove use of nimC in a test. --- nimbleModel/tests/testthat/test-graphRules.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nimbleModel/tests/testthat/test-graphRules.R b/nimbleModel/tests/testthat/test-graphRules.R index aea01e6..e996582 100644 --- a/nimbleModel/tests/testthat/test-graphRules.R +++ b/nimbleModel/tests/testthat/test-graphRules.R @@ -2058,7 +2058,7 @@ test_that("non-sequential indexing in for loop or indexRule", { NULL ) - rule <- graphRuleClass$new(toExpr = quote(y[nimC(2,3,5)]), + rule <- graphRuleClass$new(toExpr = quote(y[nC(2,3,5)]), fromExpr = quote(x[1:3]), context = context_0) From 189125b5dcd50564434323bb91a7963f12ca427e Mon Sep 17 00:00:00 2001 From: perrydv Date: Wed, 21 Oct 2026 12:52:52 -0700 Subject: [PATCH 5/8] Update predefined classes for new depends and HpostCode features --- nimbleModel/NAMESPACE | 5 ++ nimbleModel/R/all_utils.R | 15 +++--- nimbleModel/R/copier.R | 10 +++- nimbleModel/R/declFunBaseClass.R | 4 +- nimbleModel/R/modelBaseClass.R | 4 +- nimbleModel/R/modelDef.R | 2 +- nimbleModel/R/modelValues.R | 2 + nimbleModel/R/nimbleModel.R | 3 ++ nimbleModel/inst/generate_predefined.R | 45 ++++++++---------- .../inst/include/nimbleModel/predef/.DS_Store | Bin 10244 -> 0 bytes .../predef/MVBase_nC/MVBase_nC_depends.txt | 1 + .../predef/MVBase_nC/MVBase_nC_hContent.h | 2 +- .../predef/MVBase_nC/MVBase_nC_manifest.txt | 11 +++-- .../copier_nClass/copier_nClass_depends.txt | 1 + .../copier_nClass/copier_nClass_manifest.txt | 12 ++--- .../copier_nClass/copier_nClass_preamble.cpp | 1 + .../declFunBase_nClass_depends.txt | 1 + .../declFunBase_nClass_hContent.h | 2 +- .../declFunBase_nClass_manifest.txt | 8 ++-- .../declFunBase_nClass_preamble.cpp | 1 + .../instr_nClass/instr_nClass_depends.txt | 0 .../instr_nClass/instr_nClass_manifest.txt | 12 ++--- .../instr_nClass/instr_nClass_preamble.cpp | 1 + .../multiCopierMV_nClass_depends.txt | 1 + .../multiCopierMV_nClass_manifest.txt | 8 ++-- .../predef/mCopy_nC/mCopy_nC_depends.txt | 1 + .../predef/mCopy_nC/mCopy_nC_manifest.txt | 11 +++-- .../modelBase_nC/modelBase_nClass_depends.txt | 1 + .../modelBase_nC/modelBase_nClass_hContent.h | 6 +-- .../modelBase_nClass_manifest.txt | 12 ++--- .../modelBase_nClass_preamble.cpp | 1 + 31 files changed, 103 insertions(+), 81 deletions(-) delete mode 100644 nimbleModel/inst/include/nimbleModel/predef/.DS_Store create mode 100644 nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_depends.txt create mode 100644 nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_depends.txt create mode 100644 nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_depends.txt create mode 100644 nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_depends.txt create mode 100644 nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_depends.txt create mode 100644 nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_depends.txt create mode 100644 nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_depends.txt diff --git a/nimbleModel/NAMESPACE b/nimbleModel/NAMESPACE index bcd0d97..bc086ab 100644 --- a/nimbleModel/NAMESPACE +++ b/nimbleModel/NAMESPACE @@ -3,6 +3,11 @@ import(R6) import(nCompiler) ## Some exports are for testing convenience and may not need to be exported. +importFrom(nCompiler, nC) +export(nC) +importFrom(nCompiler, nMul) +export(nMul) + ## Classes: R6 classes are exported as regular objects export(copier_nClass) export(multiCopier_nClass) diff --git a/nimbleModel/R/all_utils.R b/nimbleModel/R/all_utils.R index ca156ec..a4af1fd 100644 --- a/nimbleModel/R/all_utils.R +++ b/nimbleModel/R/all_utils.R @@ -198,13 +198,10 @@ evalNumeric <- function(expr) { return(expr) } -# Placeholders while we sort out packaging. - -nC <- function(...) { - c(...) -} - -nMul <- function(x, y) { - x %*% y -} +#' @importFrom nCompiler nC +#' @export +nCompiler::nC +#' @importFrom nCompiler nMul +#' @export +nCompiler::nMul diff --git a/nimbleModel/R/copier.R b/nimbleModel/R/copier.R index 52d57df..4fa9639 100644 --- a/nimbleModel/R/copier.R +++ b/nimbleModel/R/copier.R @@ -29,7 +29,9 @@ copier_nClass <- nCompiler::nClass( exportName = "copier_nClass_new", needed_units = list("nCompiler:::nList(integerVector())"), packageNames = c(uncompiled = "copier_nClass_R", compiled = "copier_nClass"), - nClass_inherit = list("copier_nC_base") + nClass_inherit = list("copier_nC_base"), + depends = "nimbleModel", + Hincludes = "" ) ) @@ -92,6 +94,8 @@ multiCopier_nClass <- nCompiler::nClass( needed_units = list("nCompiler:::nList(copier_nClass())", "modelBase_nClass()"), packageNames = c(uncompiled = "multiCopier_nClass_R", compiled = "multiCopier_nClass"), nClass_inherit = list("multiCopier_model_nC_base"), + depends = "nimbleModel", + Hincludes = "", opDefs = list( getOrSetValues = list( labelAbstractTypes = list( @@ -179,7 +183,9 @@ multiCopierMV_nClass <- nCompiler::nClass( exportName = "multiCopierMV_nClass_new", needed_units = list("nCompiler:::nList(copier_nClass())", "modelValuesBase_nClass()"), packageNames = c(uncompiled = "multiCopierMV_nClass_R", compiled = "multiCopierMV_nClass"), - nClass_inherit = list("multiCopier_modelValues_nC_base") + nClass_inherit = list("multiCopier_modelValues_nC_base"), + depends = "nimbleModel", + Hincludes = "" ) ) diff --git a/nimbleModel/R/declFunBaseClass.R b/nimbleModel/R/declFunBaseClass.R index cf2478a..0a7ec3a 100644 --- a/nimbleModel/R/declFunBaseClass.R +++ b/nimbleModel/R/declFunBaseClass.R @@ -999,6 +999,8 @@ declFunBase_nClass <- nClass( exportName = "declFunBase_nClass_new", interfaceExclude = "getParam_cpp", needed_units = list("instr_nClass"), - packageNames = c(uncompiled = "declFunBase_nClass_R", compiled = "declFunBase_nClass") + packageNames = c(uncompiled = "declFunBase_nClass_R", compiled = "declFunBase_nClass"), + depends = "nimbleModel", + HpostCode = "#include " ) ) diff --git a/nimbleModel/R/modelBaseClass.R b/nimbleModel/R/modelBaseClass.R index 1dcaf01..9acda39 100644 --- a/nimbleModel/R/modelBaseClass.R +++ b/nimbleModel/R/modelBaseClass.R @@ -743,7 +743,9 @@ modelBase_nClass <- nClass( Hincludes = c('"declFunBase_nClass_c_.h"', '"instr_nClass_c_.h"'), needed_units = list("declFunBase_nClass", "instr_nClass", "nList(instr_nClass)"), exportName = "modelBase_nClass_new", - packageNames = c(uncompiled = "modelBase_nClass_R", compiled = "modelBase_nClass") + packageNames = c(uncompiled = "modelBase_nClass_R", compiled = "modelBase_nClass"), + depends = "nimbleModel", + HpostCode = "#include " ) ) diff --git a/nimbleModel/R/modelDef.R b/nimbleModel/R/modelDef.R index 7f28fed..15ecffd 100644 --- a/nimbleModel/R/modelDef.R +++ b/nimbleModel/R/modelDef.R @@ -38,7 +38,7 @@ modelDefClass <- R6Class( # Switch keyword name transformations as a test while we determine what happens here vs in nimble2. # We need to not use nimble anymore. # - modelCode <<- nCompiler:::nf_changeKeywords(modelCode) # Formerly in `assignBUGScode`. + modelCode <<- nCompiler:::nf_changeKeywords(modelCode, nmKeywords) # Formerly in `assignBUGScode`. # TODO: add this later. # setModelValuesClassName() diff --git a/nimbleModel/R/modelValues.R b/nimbleModel/R/modelValues.R index 181cb75..356bf42 100644 --- a/nimbleModel/R/modelValues.R +++ b/nimbleModel/R/modelValues.R @@ -89,6 +89,8 @@ modelValuesBase_nClass <- nCompiler::nClass( createFromR = FALSE, exportName = "modelValuesBase_nClass_new", packageNames = c(uncompiled = "modeValuesBase_nClass_R", compiled = "modelValuesBase_nClass"), + depends = "nimbleModel", + HpostCode = "#include ", overloadDefs = list( resize = list( labelAbstractTypes = list( diff --git a/nimbleModel/R/nimbleModel.R b/nimbleModel/R/nimbleModel.R index 4f03920..38607ab 100644 --- a/nimbleModel/R/nimbleModel.R +++ b/nimbleModel/R/nimbleModel.R @@ -1,3 +1,6 @@ +nmKeywords <- list(copy = "nmCopy" + ) + # It's unclear what this should return since in nimble one gets a model object # but with nCompiler, we need a modelClass to compile and then we can create an instance. # If we create an instance as the output here, one can't then compile that with an algorithm via `nCompile`. diff --git a/nimbleModel/inst/generate_predefined.R b/nimbleModel/inst/generate_predefined.R index a128af6..cfd161d 100644 --- a/nimbleModel/inst/generate_predefined.R +++ b/nimbleModel/inst/generate_predefined.R @@ -1,50 +1,43 @@ ## # To update the set of predefined nClasses: ## -## # generate new predef/instr_nC. Move that directly to package code inst/nimbleModel/predef/instr_nC +## # generate new predef/instr_nC. Move that directly to package code inst/nimbleModel/predef/instr_nC (i.e. move to package) nCompiler::nCompile(instr_nClass = nimbleModel:::instr_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(instr_nClass = nimbleModel:::instr_nClass) ## # -## # generate new predef/declFunBase_nC. Move to package and add -## # "#include " in the hContent -## # And add "// [[Rcpp::depends(nimbleModel)]]" to the cppContent +## # generate new predef/declFunBase_nC. Move to package. +## # You should see "#include " in the hContent ## # after declaration of declFunBase_nClass +## # and "// [[Rcpp::depends(nimbleModel)]]" in the cppContent nCompiler::nCompile(nimbleModel:::declFunBase_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(nimbleModel:::declFunBase_nClass) ## # -## # generate new predef/modelBase_nC. Move to package and add -## # "#include " to the hContent -## # And add "// [[Rcpp::depends(nimbleModel)]]" to the cppContent +## # generate new predef/modelBase_nC. Move to package. +## # You should see "#include " in the hContent ## # after the declaration of modelBase_nClass. +## # and "// [[Rcpp::depends(nimbleModel)]]" in the cppContent nCompiler::nCompile(modelBase_nClass = nimbleModel:::modelBase_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(nimbleModel:::modelBase_nClass) -## # generate new predef/copier_nC. Move to package and add -## # "#include " to the hContent BEFORE the class declaration -## # And add "// [[Rcpp::depends(nimbleModel)]]" to the cppContent -## # after the declaration of copier_nClass. -## # Note there will be an EXPECTED SET OF ERRORS when re-generating before the #include has been added. +## # generate new predef/copier_nClass. Move to package. +## # You should see "#include " in the hContent BEFORE the class declaration +## # and "// [[Rcpp::depends(nimbleModel)]]" in the cppContent nCompiler::nCompile(copier_nClass = nimbleModel:::copier_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(nimbleModel:::copier_nClass) -## # generate new predef/multiCopier_nClass. Move to package and add -## # "#include " to the hContent BEFORE the class declaration -## # And add "// [[Rcpp::depends(nimbleModel)]]" to the cppContent -## # after the declaration of copier_nClass. -## # Note there will be an EXPECTED SET OF ERRORS when re-generating before the #include has been added. +## # generate new predef/mCopy_nC Move to package. +## # You should see "#include " in the hContent BEFORE the class declaration +## # and "// [[Rcpp::depends(nimbleModel)]]" in the cppContent nCompiler::nCompile(multiCopier_nClass = nimbleModel:::multiCopier_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(nimbleModel:::multiCopier_nClass) -## # generate new predef/multiCopierMV_nC. Move to package and add -## # "#include " to the hContent BEFORE the class declaration -## # And add "// [[Rcpp::depends(nimbleModel)]]" to the cppContent -## # after the declaration of copier_nClass. -## # Note there will be an EXPECTED SET OF ERRORS when re-generating before the #include has been added. +## # generate new predef/mCopyMV_nC. Move to package. +## # You should see "#include " in the hContent BEFORE the class declaration +## # and "// [[Rcpp::depends(nimbleModel)]]" in the cppContent nCompiler::nCompile(multiCopierMV_nClass = nimbleModel:::multiCopierMV_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(nimbleModel:::multiCopierMV_nClass) -## # generate new predef/modelValuesBase_nC. Move to package and add -## # "#include " to the hContent -## # And add "// [[Rcpp::depends(nimbleModel)]]" to the cppContent -## # after the declaration of modelValuesBase_nClass. +## # generate new predef/MVBase_nC Move to package. +## # You should see "#include " in the hContent +## # and "// [[Rcpp::depends(nimbleModel)]]" in the cppContent nCompiler::nCompile(modelValuesBase_nClass = nimbleModel:::modelValuesBase_nClass, control=list(generate_predefined=TRUE)) test <- nCompiler::nCompile(nimbleModel:::modelValuesBase_nClass) diff --git a/nimbleModel/inst/include/nimbleModel/predef/.DS_Store b/nimbleModel/inst/include/nimbleModel/predef/.DS_Store deleted file mode 100644 index 4a1e6862b177d54ec14b4bddeaa8f20a4208be88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMO=uHA6n@*rcGIMi`coAxEO_xyXhJJ0Qiw^^gI1)G3Ra2vqYd5chWs>#QVe1* zDuN1%c-EWZNxbO6i-Ko8h!+ov^x(;xBEI=)Gt*`_n}T9t26o?W_IY1pcGIFClGli`&P(; z4J9Z@^?L@=P=UNT6G>+6Vu?e|cK$^>k;s^K2L1F~N4`(o{Q2fsdrYolOlek(i;nvK z7CcPKqLQm*&5Ui6=)uKJCfhgU?k!SXdiQ&rQ+2t2(QXp;hLCBVCGl^C9ClO|OgI5G zTx^N4j$#WhGK1h`JAaYG>w9OW_k7{q0#E}t6xeBCY7F`c%KgbaY z-Xe$jr?)@vWgJ}YFEa3kkmIN67Q_K#VYJoNMK2z|9DU#7gym7p@sQ9l_{yCm!j{Ys;4hV4z zy)UahG=Nb%c#1LanqIy#$h3C!ZYtg0TaMSjAYf34cM3Dx#L=3^e38cMO3uqH`bdIx zgcrH(d$8n-b-yLA-45^3WW3RP$U4w`8*tFUu@B)sM(zP6ay~u&=rQN)3E5=Y8B*p) zx(T);zZ&*q72gMO=ZQ2^uax-2_##s>3zcd({6XvL_HF6u)qC}TeknO?*OS$BwN{Cx z%hTlS98Ou8mE&|~s*tazLObHNRZSPHe3=3YxjedDJYTSKc0Fd-tXzd+lk9@-*Zrx` z?uCWO=&%tP9a|hW79xkjhlh=^gW<(RzrJ(-$kEBvoLRK&>x2$|JM(XBoGImY15Z7& zmGil`;2kOUYN+w!>T{r(?D4tcd!}>r#(Q@@S+-2unn9jKy=|^J(Q=;XfA1A1Ds<=W zx4BPDAy3Z~_30EVt3$^&hOC-WKq;UUPzr1|1-ecXT-(EnSYs6S5qC05{?rCYCfjj&j>z7JtF^ j@Ba+Y+gJ4BmvVb=`Ps>GT0e diff --git a/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_depends.txt new file mode 100644 index 0000000..cc355ef --- /dev/null +++ b/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_depends.txt @@ -0,0 +1 @@ +nimbleModel diff --git a/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_hContent.h b/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_hContent.h index e1327be..e30ce82 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_hContent.h +++ b/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_hContent.h @@ -26,6 +26,6 @@ class MVBase_nC : public interface_resolver< genericInterfaceC >, pub Rcpp::Environment get_CnClass_env_MVBase_nC ( ) ; -#include +#include #endif diff --git a/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_manifest.txt index 84d71fa..74bfa0a 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/MVBase_nC/MVBase_nC_manifest.txt @@ -1,6 +1,7 @@ -list(saved_at = structure(1791834500.24101, class = c("POSIXct", +list(saved_at = structure(1792534431.59537, class = c("POSIXct", "POSIXt")), packet_name = "MVBase_nC", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "MVBase_nC_preamble.cpp", cppContent = "MVBase_nC_cppContent.cpp", - hContent = "MVBase_nC_hContent.h", filebase = "MVBase_nC_filebase.txt", - post_cpp_compiler = "MVBase_nC_post_cpp_compiler.txt", copyFiles = "MVBase_nC_copyFiles.txt")) +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "MVBase_nC_preamble.cpp", + cppContent = "MVBase_nC_cppContent.cpp", hContent = "MVBase_nC_hContent.h", + filebase = "MVBase_nC_filebase.txt", post_cpp_compiler = "MVBase_nC_post_cpp_compiler.txt", + copyFiles = "MVBase_nC_copyFiles.txt", depends = "MVBase_nC_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_depends.txt new file mode 100644 index 0000000..cc355ef --- /dev/null +++ b/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_depends.txt @@ -0,0 +1 @@ +nimbleModel diff --git a/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_manifest.txt index b354d20..59e11d6 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_manifest.txt @@ -1,7 +1,7 @@ -list(saved_at = structure(1791315464.60865, class = c("POSIXct", +list(saved_at = structure(1792534392.88472, class = c("POSIXct", "POSIXt")), packet_name = "copier_nClass", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "copier_nClass_preamble.cpp", cppContent = "copier_nClass_cppContent.cpp", - hContent = "copier_nClass_hContent.h", filebase = "copier_nClass_filebase.txt", - post_cpp_compiler = "copier_nClass_post_cpp_compiler.txt", - copyFiles = "copier_nClass_copyFiles.txt")) +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "copier_nClass_preamble.cpp", + cppContent = "copier_nClass_cppContent.cpp", hContent = "copier_nClass_hContent.h", + filebase = "copier_nClass_filebase.txt", post_cpp_compiler = "copier_nClass_post_cpp_compiler.txt", + copyFiles = "copier_nClass_copyFiles.txt", depends = "copier_nClass_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_preamble.cpp b/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_preamble.cpp index 1a92ce3..0c6b4c1 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_preamble.cpp +++ b/nimbleModel/inst/include/nimbleModel/predef/copier_nClass/copier_nClass_preamble.cpp @@ -1,5 +1,6 @@ #define NCOMPILER_HANDLE_EIGEN_ERRORS #define NCOMPILER_USES_EIGEN #define NCOMPILER_USES_NCPPVEC +#define NCOMPILER_USES_MVDISTS #define USES_NCOMPILER #define NCOMPILER_USES_NCLASS_INTERFACE diff --git a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_depends.txt new file mode 100644 index 0000000..cc355ef --- /dev/null +++ b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_depends.txt @@ -0,0 +1 @@ +nimbleModel diff --git a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_hContent.h b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_hContent.h index 04453b5..4f80a92 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_hContent.h +++ b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_hContent.h @@ -28,6 +28,6 @@ class declFunBase_nClass : public interface_resolver< genericInterfaceC +#include #endif diff --git a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_manifest.txt index ee61ded..a1c1d52 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_manifest.txt @@ -1,7 +1,7 @@ -list(saved_at = structure(1791315294.77355, class = c("POSIXct", +list(saved_at = structure(1792534340.26498, class = c("POSIXct", "POSIXt")), packet_name = "declFunBase_nClass", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "declFunBase_nClass_preamble.cpp", +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "declFunBase_nClass_preamble.cpp", cppContent = "declFunBase_nClass_cppContent.cpp", hContent = "declFunBase_nClass_hContent.h", filebase = "declFunBase_nClass_filebase.txt", post_cpp_compiler = "declFunBase_nClass_post_cpp_compiler.txt", - copyFiles = "declFunBase_nClass_copyFiles.txt")) + copyFiles = "declFunBase_nClass_copyFiles.txt", depends = "declFunBase_nClass_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_preamble.cpp b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_preamble.cpp index 1a92ce3..0c6b4c1 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_preamble.cpp +++ b/nimbleModel/inst/include/nimbleModel/predef/declFunBase_nC/declFunBase_nClass_preamble.cpp @@ -1,5 +1,6 @@ #define NCOMPILER_HANDLE_EIGEN_ERRORS #define NCOMPILER_USES_EIGEN #define NCOMPILER_USES_NCPPVEC +#define NCOMPILER_USES_MVDISTS #define USES_NCOMPILER #define NCOMPILER_USES_NCLASS_INTERFACE diff --git a/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_depends.txt new file mode 100644 index 0000000..e69de29 diff --git a/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_manifest.txt index f1d4612..f4599c0 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_manifest.txt @@ -1,7 +1,7 @@ -list(saved_at = structure(1791315229.65914, class = c("POSIXct", +list(saved_at = structure(1792534327.40934, class = c("POSIXct", "POSIXt")), packet_name = "instr_nClass", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "instr_nClass_preamble.cpp", cppContent = "instr_nClass_cppContent.cpp", - hContent = "instr_nClass_hContent.h", filebase = "instr_nClass_filebase.txt", - post_cpp_compiler = "instr_nClass_post_cpp_compiler.txt", - copyFiles = "instr_nClass_copyFiles.txt")) +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "instr_nClass_preamble.cpp", + cppContent = "instr_nClass_cppContent.cpp", hContent = "instr_nClass_hContent.h", + filebase = "instr_nClass_filebase.txt", post_cpp_compiler = "instr_nClass_post_cpp_compiler.txt", + copyFiles = "instr_nClass_copyFiles.txt", depends = "instr_nClass_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_preamble.cpp b/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_preamble.cpp index 1a92ce3..0c6b4c1 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_preamble.cpp +++ b/nimbleModel/inst/include/nimbleModel/predef/instr_nClass/instr_nClass_preamble.cpp @@ -1,5 +1,6 @@ #define NCOMPILER_HANDLE_EIGEN_ERRORS #define NCOMPILER_USES_EIGEN #define NCOMPILER_USES_NCPPVEC +#define NCOMPILER_USES_MVDISTS #define USES_NCOMPILER #define NCOMPILER_USES_NCLASS_INTERFACE diff --git a/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_depends.txt new file mode 100644 index 0000000..cc355ef --- /dev/null +++ b/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_depends.txt @@ -0,0 +1 @@ +nimbleModel diff --git a/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_manifest.txt index 7fe14fd..95b96dd 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/mCopyMV_nC/multiCopierMV_nClass_manifest.txt @@ -1,7 +1,7 @@ -list(saved_at = structure(1791834920.56051, class = c("POSIXct", +list(saved_at = structure(1792534418.86996, class = c("POSIXct", "POSIXt")), packet_name = "multiCopierMV_nClass", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "multiCopierMV_nClass_preamble.cpp", +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "multiCopierMV_nClass_preamble.cpp", cppContent = "multiCopierMV_nClass_cppContent.cpp", hContent = "multiCopierMV_nClass_hContent.h", filebase = "multiCopierMV_nClass_filebase.txt", post_cpp_compiler = "multiCopierMV_nClass_post_cpp_compiler.txt", - copyFiles = "multiCopierMV_nClass_copyFiles.txt")) + copyFiles = "multiCopierMV_nClass_copyFiles.txt", depends = "multiCopierMV_nClass_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_depends.txt new file mode 100644 index 0000000..cc355ef --- /dev/null +++ b/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_depends.txt @@ -0,0 +1 @@ +nimbleModel diff --git a/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_manifest.txt index 964bd95..bd8d233 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/mCopy_nC/mCopy_nC_manifest.txt @@ -1,6 +1,7 @@ -list(saved_at = structure(1791834659.55193, class = c("POSIXct", +list(saved_at = structure(1792534403.251, class = c("POSIXct", "POSIXt")), packet_name = "mCopy_nC", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "mCopy_nC_preamble.cpp", cppContent = "mCopy_nC_cppContent.cpp", - hContent = "mCopy_nC_hContent.h", filebase = "mCopy_nC_filebase.txt", - post_cpp_compiler = "mCopy_nC_post_cpp_compiler.txt", copyFiles = "mCopy_nC_copyFiles.txt")) +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "mCopy_nC_preamble.cpp", + cppContent = "mCopy_nC_cppContent.cpp", hContent = "mCopy_nC_hContent.h", + filebase = "mCopy_nC_filebase.txt", post_cpp_compiler = "mCopy_nC_post_cpp_compiler.txt", + copyFiles = "mCopy_nC_copyFiles.txt", depends = "mCopy_nC_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_depends.txt b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_depends.txt new file mode 100644 index 0000000..cc355ef --- /dev/null +++ b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_depends.txt @@ -0,0 +1 @@ +nimbleModel diff --git a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_hContent.h b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_hContent.h index 11f4c09..d1cefef 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_hContent.h +++ b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_hContent.h @@ -7,9 +7,9 @@ #endif #include #include "modelBase_nClass_c_.h" -#include "declFunBase_nClass_c_.h" -#include "instr_nClass_c_.h" #include "nList_instr_nClass_c_.h" +#include "instr_nClass_c_.h" +#include "declFunBase_nClass_c_.h" class modelBase_nClass : public interface_resolver< genericInterfaceC >, public loadedObjectHookC { public: @@ -32,6 +32,6 @@ class modelBase_nClass : public interface_resolver< genericInterfaceC +#include #endif diff --git a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_manifest.txt b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_manifest.txt index 9433d30..501e012 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_manifest.txt +++ b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_manifest.txt @@ -1,7 +1,7 @@ -list(saved_at = structure(1791315387.89179, class = c("POSIXct", +list(saved_at = structure(1792534353.3121, class = c("POSIXct", "POSIXt")), packet_name = "modelBase_nClass", elements = c("preamble", -"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles" -), files = list(preamble = "modelBase_nClass_preamble.cpp", cppContent = "modelBase_nClass_cppContent.cpp", - hContent = "modelBase_nClass_hContent.h", filebase = "modelBase_nClass_filebase.txt", - post_cpp_compiler = "modelBase_nClass_post_cpp_compiler.txt", - copyFiles = "modelBase_nClass_copyFiles.txt")) +"cppContent", "hContent", "filebase", "post_cpp_compiler", "copyFiles", +"depends"), files = list(preamble = "modelBase_nClass_preamble.cpp", + cppContent = "modelBase_nClass_cppContent.cpp", hContent = "modelBase_nClass_hContent.h", + filebase = "modelBase_nClass_filebase.txt", post_cpp_compiler = "modelBase_nClass_post_cpp_compiler.txt", + copyFiles = "modelBase_nClass_copyFiles.txt", depends = "modelBase_nClass_depends.txt")) diff --git a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_preamble.cpp b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_preamble.cpp index 1a92ce3..0c6b4c1 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_preamble.cpp +++ b/nimbleModel/inst/include/nimbleModel/predef/modelBase_nC/modelBase_nClass_preamble.cpp @@ -1,5 +1,6 @@ #define NCOMPILER_HANDLE_EIGEN_ERRORS #define NCOMPILER_USES_EIGEN #define NCOMPILER_USES_NCPPVEC +#define NCOMPILER_USES_MVDISTS #define USES_NCOMPILER #define NCOMPILER_USES_NCLASS_INTERFACE From 28a5a2fee978fd0dc61724a1612675cab90291c1 Mon Sep 17 00:00:00 2001 From: perrydv Date: Wed, 21 Oct 2026 16:57:24 -0700 Subject: [PATCH 6/8] Enter dexp_nComp as a distribution --- nimbleModel/R/distributions_inputList.R | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nimbleModel/R/distributions_inputList.R b/nimbleModel/R/distributions_inputList.R index 021617b..e5d7587 100644 --- a/nimbleModel/R/distributions_inputList.R +++ b/nimbleModel/R/distributions_inputList.R @@ -101,8 +101,15 @@ distributionsInputList <- list( ), dexp = list( BUGSdist = "dexp(rate, scale)", - Rdist = "dexp_nimble(rate = 1/scale)", - altParams = "scale = 1/rate", + Rdist = c("dexp_nComp(scale = 1/rate)"), + altParams = "rate = 1/scale", + range = c(0, Inf), + pqAvail = TRUE + ), + dexp_nComp = list( + BUGSdist = "dexp_nComp(rate, scale)", + Rdist = c("dexp_nComp(scale = 1/rate)"), + altParams = "rate = 1/scale", range = c(0, Inf), pqAvail = TRUE ), From 8db934f0b72485dbb51078771d0803803ceb3374 Mon Sep 17 00:00:00 2001 From: perrydv Date: Wed, 21 Oct 2026 16:59:06 -0700 Subject: [PATCH 7/8] Stop tracking .DS_Store files Co-Authored-By: Claude Opus 5.5 --- nimbleModel/.DS_Store | Bin 6148 -> 0 bytes nimbleModel/inst/include/nimbleModel/.DS_Store | Bin 6148 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 nimbleModel/.DS_Store delete mode 100644 nimbleModel/inst/include/nimbleModel/.DS_Store diff --git a/nimbleModel/.DS_Store b/nimbleModel/.DS_Store deleted file mode 100644 index 59c8ece918bfacf0a87972e5a2cef9f6a7bd715c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKK~BR!474GKNL+dY4oLfj{$Q!X3;F?6DgjbMDi!Xz@r=Hquiz#8gR#9-twNBv zAc4k`ce1u8o6I4OMMP&W%c;mjL~6L9yxKA}%bO4Eq(my9+C5hH)A?Q3t_PLl0pnKk zC{MDH=P&sCT-!CxV%05BUtgW?wwLd3*N5D;TYj5gKm7RF#-ExQDnJFO02QDDe^&wY zY_s|-kSi6S0#snHfPEhl+%OmH1O3y1#YX_3{l>fD+Gh!1vH&m_>;n;jX;6Vd)iPpe z&=F6iE*I4+yU7tMiOsQ?u?R^T+Y6YKvs@R9ldn8Y0wpaTC& z0j-*OGs7#D-a2?W>$M4f3;#6KdN~$v#XxVx*jOvRIH*f@jeIWH2Ra>brvv#TV7kz# Iz;7t<0b%bbJ^%m! diff --git a/nimbleModel/inst/include/nimbleModel/.DS_Store b/nimbleModel/inst/include/nimbleModel/.DS_Store deleted file mode 100644 index 252a5b58506cdf7c107c2a56cbd048b78e3e6dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5Z-NTyQK&{D0&QdE!Y+;f*>*07cim+mD-rt2GeXvT6-vkcvK(ANAL~2 zdh~g`u#mRQQ#;2YW10Bvbm*vffZPZo!ebLwEOM; zAhFuulx2+*xCdiqOF^e*U-Diw z3HUhPCY59hiIa>{E|~CNh8wAOnkIKp#S^ zw74a4C1d~@_#+I6^T7ZWXlhIq%A*4sSpop&z%2!AQA>y%L!+rNRR|*>RHXu{RH{o1 zs?x!4=r~hjs!*j9s*4Y*SEjl`p>lPY-;m*inhLQ+29SYS2C}MK7We Date: Thu, 22 Oct 2026 14:20:55 -0700 Subject: [PATCH 8/8] initialize tensors in modelValues nLists with zeros. --- .../nimbleModel/predef/modelValuesClass_/modelValuesClass_.h | 1 + 1 file changed, 1 insertion(+) diff --git a/nimbleModel/inst/include/nimbleModel/predef/modelValuesClass_/modelValuesClass_.h b/nimbleModel/inst/include/nimbleModel/predef/modelValuesClass_/modelValuesClass_.h index 5ea3e9c..0417835 100644 --- a/nimbleModel/inst/include/nimbleModel/predef/modelValuesClass_/modelValuesClass_.h +++ b/nimbleModel/inst/include/nimbleModel/predef/modelValuesClass_/modelValuesClass_.h @@ -21,6 +21,7 @@ class modelValuesClass_ : public MVBase_nC { if(m > old_m) { for(int i = old_m; i < m; i++) { (*NL)[i].resize(dims); + (*NL)[i].setZero(); // resize leaves new elements uninitialized } } }