The product of entries in a vector or matrix.

prod_entries(..., axis = NA_real_, keepdims = FALSE)

# S3 method for Expression
prod(..., na.rm = FALSE)

Arguments

...

Numeric scalar, vector, matrix, or Expression objects.

axis

(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.

keepdims

(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.

na.rm

(Unimplemented) A logical value indicating whether missing values should be removed.

Value

An Expression representing the product of the entries of the input.

Details

This atom is log-log affine, but it is neither convex nor concave.

Examples


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