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 GeoMean
validate_args(object)
# S4 method for GeoMean
to_numeric(object, values)
# S4 method for GeoMean
size_from_args(object)
# S4 method for GeoMean
sign_from_args(object)
# S4 method for GeoMean
is_atom_convex(object)
# S4 method for GeoMean
is_atom_concave(object)
# S4 method for GeoMean
is_incr(object, idx)
# S4 method for GeoMean
is_decr(object, idx)
# S4 method for GeoMean
get_data(object)
# S4 method for GeoMean
graph_implementation(object, arg_objs, size,
data = NA_real_)
(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 list of arguments to the atom.
An index into the atom.
A list of linear expressions for each argument.
A vector with two elements representing the size of the resulting expression.
A list of additional data required by the atom.
validate_args
: Empty function since validation of arguments is done during atom initialization.
to_numeric
: The (weighted) geometric mean of the elements of x
.
size_from_args
: The atom is a scalar.
sign_from_args
: The atom is non-negative.
is_atom_convex
: The atom is not convex.
is_atom_concave
: The atom is concave.
is_incr
: The atom is weakly increasing in every argument.
is_decr
: The atom is not weakly decreasing in any argument.
get_data
: Returns list(w, dyadic completion, tree of dyads)
.
graph_implementation
: The graph implementation of the atom.
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}\).
$$\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\).