This class represents the (weighted) geometric mean of vector \(x\) with optional powers given by \(p\).
GeoMean(x, p = NA_real_, max_denom = 1024)
# S4 method for class 'GeoMean'
to_numeric(object, values)
# S4 method for class 'GeoMean'
.domain(object)
# S4 method for class 'GeoMean'
.grad(object, values)
# S4 method for class 'GeoMean'
name(x)
# S4 method for class 'GeoMean'
dim_from_args(object)
# S4 method for class 'GeoMean'
sign_from_args(object)
# S4 method for class 'GeoMean'
is_atom_convex(object)
# S4 method for class 'GeoMean'
is_atom_concave(object)
# S4 method for class 'GeoMean'
is_atom_log_log_convex(object)
# S4 method for class 'GeoMean'
is_atom_log_log_concave(object)
# S4 method for class 'GeoMean'
is_incr(object, idx)
# S4 method for class 'GeoMean'
is_decr(object, idx)
# S4 method for class 'GeoMean'
get_data(object)
# S4 method for class 'GeoMean'
copy(object, args = NULL, id_objects = list())
An Expression or numeric vector.
(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}\).
(Optional) The maximum denominator to use in approximating p/sum(p)
with w
. If w
is not an exact representation, increasing max_denom
may offer a more accurate representation, at the cost of requiring more convex inequalities to represent the geometric mean. Defaults to 1024.
A GeoMean object.
A list of numeric values for the arguments
An index into the atom.
An optional list that contains the arguments to reconstruct the atom. Default is to use current arguments of the atom.
Currently unused.
$$\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\).
to_numeric(GeoMean)
: The (weighted) geometric mean of the elements of x
.
.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)
: Returns list(w, dyadic completion, tree of dyads)
.
copy(GeoMean)
: Returns a shallow copy of the GeoMean atom
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)
with w
. If w
is not an exact representation, increasing max_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 of p/sum(p)
.
approx_error
(Internal) The error in approximating p/sum(p)
with w
, given by \(\|p/\mathbf{1}^Tp - w\|_{\infty}\).