R/145_reductions_dcp2cone_canonicalizers_min_canon.R

Defines functions min_canon

#####
## DO NOT EDIT THIS FILE!! EDIT THE SOURCE INSTEAD: rsrc_tree/reductions/dcp2cone/canonicalizers/min_canon.R
#####

## CVXPY SOURCE: reductions/eliminate_pwl/canonicalizers/min_canon.py
## min(x, axis=...) = -max(-x, axis=...)


min_canon <- function(expr, args, solver_context = NULL) {
  axis <- expr@axis
  keepdims <- expr@keepdims
  ## Create max(-x) atom
  tmp <- MaxEntries(-args[[1L]], axis = axis, keepdims = keepdims)
  result <- max_canon(tmp, tmp@args)
  list(-result[[1L]], result[[2L]])
}

method(dcp_canonicalize, MinEntries) <- min_canon
method(has_dcp_canon, MinEntries) <- function(expr) TRUE

Try the CVXR package in your browser

Any scripts or data that you put into this service are public.

CVXR documentation built on March 6, 2026, 9:10 a.m.