Learn R Programming

CVXR (version 0.99-7)

GeoMean-class: 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 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_)

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

object

A '>GeoMean object.

values

A list of arguments to the atom.

idx

An index into the atom.

arg_objs

A list of linear expressions for each argument.

size

A vector with two elements representing the size of the resulting expression.

data

A list of additional data required by the atom.

Methods (by generic)

  • 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.

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

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