The product of entries in a vector or matrix.
prod_entries(..., axis = NA_real_, keepdims = FALSE)
# S3 method for class 'Expression'
prod(..., na.rm = FALSE)
Numeric scalar, vector, matrix, or Expression objects.
(Optional) The dimension across which to apply the function: 1
indicates rows, 2
indicates columns, and NA
indicates rows and columns. The default is NA
.
(Optional) Should dimensions be maintained when applying the atom along an axis? If FALSE
, result will be collapsed into an \(n x 1\) column vector. The default is FALSE
.
(Unimplemented) A logical value indicating whether missing values should be removed.
An Expression representing the product of the entries of the input.
This atom is log-log affine, but it is neither convex nor concave.
n <- 2
X <- Variable(n, n, pos=TRUE)
obj <- sum(X)
constraints <- list(prod_entries(X) == 4)
prob <- Problem(Minimize(obj), constraints)
result <- solve(prob, gp=TRUE)
result$value
#> [1] 5.656854
result$getValue(X)
#> [,1] [,2]
#> [1,] 1.414214 1.414214
#> [2,] 1.414214 1.414214
n <- 2
X <- Variable(n, n, pos=TRUE)
obj <- sum(X)
constraints <- list(prod(X) == 4)
prob <- Problem(Minimize(obj), constraints)
result <- solve(prob, gp=TRUE)
result$value
#> [1] 5.656854