GeoMean-class {CVXR} | R Documentation |
The GeoMean class.
Description
This class represents the (weighted) geometric mean of vector x
with optional powers given by p
.
Usage
GeoMean(x, p = NA_real_, max_denom = 1024)
## S4 method for signature 'GeoMean'
to_numeric(object, values)
## S4 method for signature 'GeoMean'
.domain(object)
## S4 method for signature 'GeoMean'
.grad(object, values)
## S4 method for signature 'GeoMean'
name(x)
## S4 method for signature 'GeoMean'
dim_from_args(object)
## S4 method for signature 'GeoMean'
sign_from_args(object)
## S4 method for signature 'GeoMean'
is_atom_convex(object)
## S4 method for signature 'GeoMean'
is_atom_concave(object)
## S4 method for signature 'GeoMean'
is_atom_log_log_convex(object)
## S4 method for signature 'GeoMean'
is_atom_log_log_concave(object)
## S4 method for signature 'GeoMean'
is_incr(object, idx)
## S4 method for signature 'GeoMean'
is_decr(object, idx)
## S4 method for signature 'GeoMean'
get_data(object)
## S4 method for signature 'GeoMean'
copy(object, args = NULL, id_objects = list())
Arguments
x |
An Expression or numeric vector. |
p |
(Optional) A vector of weights for the weighted geometric mean. The default is a vector of ones, giving the unweighted geometric mean |
max_denom |
(Optional) The maximum denominator to use in approximating |
object |
A GeoMean object. |
values |
A list of numeric values for the arguments |
idx |
An index into the atom. |
args |
An optional list that contains the arguments to reconstruct the atom. Default is to use current arguments of the atom. |
id_objects |
Currently unused. |
Details
\left(x_1^{p_1} \cdots x_n^{p_n} \right)^{\frac{1}{\mathbf{1}^Tp}}
The geometric mean includes an implicit constraint that x_i \geq 0
whenever p_i > 0
. If p_i = 0, x_i
will be unconstrained.
The only exception to this rule occurs when p
has exactly one nonzero element, say p_i
, in which case GeoMean(x,p)
is equivalent to x_i
(without the nonnegativity constraint).
A specific case of this is when x \in \mathbf{R}^1
.
Methods (by generic)
-
to_numeric(GeoMean)
: The (weighted) geometric mean of the elements ofx
. -
.domain(GeoMean)
: Returns constraints describing the domain of the node -
.grad(GeoMean)
: Gives the (sub/super)gradient of the atom w.r.t. each variable -
name(GeoMean)
: The name and arguments of the atom. -
dim_from_args(GeoMean)
: The atom is a scalar. -
sign_from_args(GeoMean)
: The atom is non-negative. -
is_atom_convex(GeoMean)
: The atom is not convex. -
is_atom_concave(GeoMean)
: The atom is concave. -
is_atom_log_log_convex(GeoMean)
: Is the atom log-log convex? -
is_atom_log_log_concave(GeoMean)
: Is the atom log-log concave? -
is_incr(GeoMean)
: The atom is weakly increasing in every argument. -
is_decr(GeoMean)
: The atom is not weakly decreasing in any argument. -
get_data(GeoMean)
: Returnslist(w, dyadic completion, tree of dyads)
. -
copy(GeoMean)
: Returns a shallow copy of the GeoMean atom
Slots
x
An Expression or numeric vector.
p
(Optional) A vector of weights for the weighted geometric mean. The default is a vector of ones, giving the unweighted geometric mean
x_1^{1/n} \cdots x_n^{1/n}
.max_denom
(Optional) The maximum denominator to use in approximating
p/sum(p)
withw
. Ifw
is not an exact representation, increasingmax_denom
may offer a more accurate representation, at the cost of requiring more convex inequalities to represent the geometric mean. Defaults to 1024.w
(Internal) A list of
bigq
objects that represent a rational approximation ofp/sum(p)
.approx_error
(Internal) The error in approximating
p/sum(p)
withw
, given by\|p/\mathbf{1}^Tp - w\|_{\infty}
.