R/verb-multiply.R

Defines functions multiply

Documented in multiply

#' @rdname linear_transform
#' @export
multiply <- function(distribution, constant) {
  if (constant < 0) {
    return(flip(multiply(distribution, -constant)))
  } else if (constant == 0) {
  	return(distionary::dst_degenerate(0))
  } else if (constant == 1) {
    return(distribution)
  } else if (is.infinite(constant)) {
    stop("Cannot multiply a distribution by infinity.")
  } else {
    dist <- list(
      components = list(
        distribution = distribution,
        scale = constant
      )
    )
    distionary::new_distribution(
    	dist, variable = distionary::variable(distribution), class = "scale"
    )
  }
}
vincenzocoia/distplyr documentation built on March 5, 2024, 9:45 p.m.