This class represents the vector p-norm.
Pnorm(x, p = 2, axis = NA_real_, keepdims = FALSE, max_denom = 1024)
# S4 method for class 'Pnorm'
allow_complex(object)
# S4 method for class 'Pnorm'
to_numeric(object, values)
# S4 method for class 'Pnorm'
validate_args(object)
# S4 method for class 'Pnorm'
sign_from_args(object)
# S4 method for class 'Pnorm'
is_atom_convex(object)
# S4 method for class 'Pnorm'
is_atom_concave(object)
# S4 method for class 'Pnorm'
is_atom_log_log_convex(object)
# S4 method for class 'Pnorm'
is_atom_log_log_concave(object)
# S4 method for class 'Pnorm'
is_incr(object, idx)
# S4 method for class 'Pnorm'
is_decr(object, idx)
# S4 method for class 'Pnorm'
is_pwl(object)
# S4 method for class 'Pnorm'
get_data(object)
# S4 method for class 'Pnorm'
name(x)
# S4 method for class 'Pnorm'
.domain(object)
# S4 method for class 'Pnorm'
.grad(object, values)
# S4 method for class 'Pnorm'
.column_grad(object, value)
An Expression representing a vector or matrix.
A number greater than or equal to 1, or equal to positive infinity.
(Optional) The dimension across which to apply the function: 1
indicates rows, 2
indicates columns, and NA
indicates rows and columns. The default is NA
.
(Optional) Should dimensions be maintained when applying the atom along an axis? If FALSE
, result will be collapsed into an \(n x 1\) column vector. The default is FALSE
.
(Optional) The maximum denominator considered in forming a rational approximation for \(p\). The default is 1024.
A Pnorm object.
A list of numeric values for the arguments
An index into the atom.
A numeric value
If given a matrix variable, Pnorm
will treat it as a vector and compute the p-norm of the concatenated columns.
For \(p \geq 1\), the p-norm is given by $$\|x\|_p = \left(\sum_{i=1}^n |x_i|^p\right)^{1/p}$$ with domain \(x \in \mathbf{R}^n\). For \(p < 1, p\neq 0\), the p-norm is given by $$\|x\|_p = \left(\sum_{i=1}^n x_i^p\right)^{1/p}$$ with domain \(x \in \mathbf{R}^n_+\).
Note that the "p-norm" is actually a norm only when \(p \geq 1\) or \(p = +\infty\). For these cases, it is convex.
The expression is undefined when \(p = 0\).
Otherwise, when \(p < 1\), the expression is concave, but not a true norm.
allow_complex(Pnorm)
: Does the atom handle complex numbers?
to_numeric(Pnorm)
: The p-norm of x
.
validate_args(Pnorm)
: Check that the arguments are valid.
sign_from_args(Pnorm)
: The atom is positive.
is_atom_convex(Pnorm)
: The atom is convex if \(p \geq 1\).
is_atom_concave(Pnorm)
: The atom is concave if \(p < 1\).
is_atom_log_log_convex(Pnorm)
: Is the atom log-log convex?
is_atom_log_log_concave(Pnorm)
: Is the atom log-log concave?
is_incr(Pnorm)
: The atom is weakly increasing if \(p < 1\) or \(p > 1\) and x
is positive.
is_decr(Pnorm)
: The atom is weakly decreasing if \(p > 1\) and x
is negative.
is_pwl(Pnorm)
: The atom is not piecewise linear unless \(p = 1\) or \(p = \infty\).
get_data(Pnorm)
: Returns list(p, axis)
.
name(Pnorm)
: The name and arguments of the atom.
.domain(Pnorm)
: Returns constraints describing the domain of the node
.grad(Pnorm)
: Gives the (sub/super)gradient of the atom w.r.t. each variable
.column_grad(Pnorm)
: Gives the (sub/super)gradient of the atom w.r.t. each column variable
x
An Expression representing a vector or matrix.
p
A number greater than or equal to 1, or equal to positive infinity.
max_denom
The maximum denominator considered in forming a rational approximation for \(p\).
axis
(Optional) The dimension across which to apply the function: 1
indicates rows, 2
indicates columns, and NA
indicates rows and columns. The default is NA
.
keepdims
(Optional) Should dimensions be maintained when applying the atom along an axis? If FALSE
, result will be collapsed into an \(n x 1\) column vector. The default is FALSE
.
.approx_error
(Internal) The absolute difference between \(p\) and its rational approximation.
.original_p
(Internal) The original input \(p\).