Skip to content

Commit

Permalink
Use in print methods
Browse files Browse the repository at this point in the history
  • Loading branch information
richfitz committed Oct 28, 2024
1 parent 13d0cfd commit c8a2a56
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
2 changes: 2 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Generated by roxygen2: do not edit by hand

S3method(coef,dust_system)
S3method(coef,dust_system_generator)
S3method(dim,dust_system)
S3method(print,dust_likelihood)
S3method(print,dust_system)
Expand Down
34 changes: 34 additions & 0 deletions R/interface.R
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ dust_system_create <- function(generator, pars, n_particles = 1, n_groups = 1,
res <- methods$alloc(pars, time, time_control, n_particles,
n_groups, seed, deterministic, n_threads)

parameters <- coef(generator)
if (!is.null(parameters$constant)) {
parameters <- parameters[!parameters$constant, ]
}

## Here, we augment things slightly
res$name <- attr(generator, "name")
res$packer_state <- monty::monty_packer(array = res$packing_state)
Expand All @@ -101,6 +106,7 @@ dust_system_create <- function(generator, pars, n_particles = 1, n_groups = 1,
res$deterministic <- deterministic
res$methods <- methods
res$properties <- attr(generator, "properties")
res$parameters <- parameters
res$preserve_particle_dimension <- preserve_particle_dimension
res$preserve_group_dimension <- preserve_group_dimension
res$time_control <- time_control
Expand Down Expand Up @@ -549,6 +555,15 @@ print.dust_system <- function(x, ...) {
cli::cli_bullets(c(
i = "This system runs in continuous time"))
}
n_pars <- NROW(x$parameters)
cli::cli_alert_info(paste(
"This system has {cli::no(n_pars)} parameter{?s} that can",
"be updated via {.run dust_system_update_pars}"))
if (n_pars > 0) {
cli::cli_bullets(c(">" = "{squote(x$parameters$name)}"))
}
cli::cli_alert_info(
"Use 'coef()' to get more information on parameters")
invisible(x)
}

Expand All @@ -558,6 +573,7 @@ print.dust_system_generator <- function(x, ...) {
name <- attr(x, "name")
properties <- attr(x, "properties")
default_dt <- attr(x, "default_dt")
parameters <- attr(x, "parameters")$name
cli::cli_h1("<dust_system_generator: {name}>")
cli::cli_alert_info(
"Use 'dust2::dust_system_create()' to create a system with this generator")
Expand All @@ -583,9 +599,22 @@ print.dust_system_generator <- function(x, ...) {
cli::cli_bullets(c(
i = "This system runs in continuous time"))
}
n_pars <- length(parameters)
cli::cli_alert_info("This system has {cli::no(n_pars)} parameter{?s}")
if (n_pars > 0) {
cli::cli_bullets(c(">" = "{squote(parameters)}"))
}
cli::cli_alert_info(
"Use 'coef()' to get more information on parameters")

invisible(x)
}

##' @export
coef.dust_system_generator <- function(object, ...) {
attr(object, "parameters")
}


##' @export
dim.dust_system <- function(x, ...) {
Expand All @@ -594,6 +623,11 @@ dim.dust_system <- function(x, ...) {
if (x$preserve_group_dimension) x$n_groups)
}

##' @export
coef.dust_system <- function(x, ...) {
x$parameters
}


check_is_dust_system_generator <- function(generator, called_as,
call = parent.frame()) {
Expand Down

0 comments on commit c8a2a56

Please sign in to comment.