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\).