doc/source/functions/functions_table.rst
.. |_| unicode:: 0xA0 :trim:
.. list-table:: :class: atomic-functions :header-rows: 1
:ref:dotsort(X,W) <dotsort>
constant :math:W \in \mathbf{R}^{o \times p}
:math:\text{dot product of}
:math:\operatorname{sort}\operatorname{vec}(X) \text{ and}
:math:\operatorname{sort}\operatorname{vec}(W)
:math:X \in \mathbf{R}^{m \times n}
sign depends on :math:X, :math:W
|incr| for :math:\min(W) \geq 0
|convex| convex
:ref:geo_mean(x) <geo-mean>
:ref:geo_mean(x, p) <geo-mean>
:math:p \in \mathbf{R}^n_{+}
:math:p \neq 0
:math:x_1^{1/n} \cdots x_n^{1/n}
:math:x \in \mathbf{R}^n_{+}
|positive| positive
|incr| incr.
|concave| concave
:ref:harmonic_mean(x) <harmonic-mean>
:math:\frac{n}{\frac{1}{x_1} + \cdots + \frac{1}{x_n}}
:math:x \in \mathbf{R}^n_{+}
|positive| positive
|incr| incr.
|concave| concave
:ref:inv_prod(x) <inv-prod>
:math:(x_1\cdots x_n)^{-1}
:math:x \in \mathbf{R}^n_+
|positive| positive
|decr| decr.
|convex| convex
lambda_max(X) <lambda-max>\lambda_{\max}(X)X \in \mathbf{S}^nlambda_min(X) <lambda-min>\lambda_{\min}(X)X \in \mathbf{S}^n:ref:lambda_sum_largest(X,k) <lambda-sum-largest>
:math:k > 0
:math:\text{sum of $k$ largest}
:math:\text{eigenvalues of $X$}
:math:X \in\mathbf{S}^{n}
|unknown| unknown sign
|convex| convex
:ref:lambda_sum_smallest(X,k) <lambda-sum-smallest>
:math:k > 0
:math:\text{sum of $k$ smallest}
:math:\text{eigenvalues of $X$}
:math:X \in\mathbf{S}^{n}
|unknown| unknown sign
|concave| concave
:ref:log_det(X) <log-det>
:math:\log \left(\det (X)\right)
:math:X \in \mathbf{S}^n_+
|unknown| unknown sign
|concave| concave
:ref:log_sum_exp(X) <log-sum-exp>
:math:\log \left(\sum_{ij}e^{X_{ij}}\right)
:math:X \in\mathbf{R}^{m \times n}
|unknown| unknown sign
|incr| incr.
|convex| convex
:ref:matrix_frac(x, P) <matrix-frac>
:math:x^T P^{-1} x
:math:x \in \mathbf{R}^n
|positive| positive
|convex| convex
:ref:max(X) <max>
:math:\max_{ij}\left\{ X_{ij}\right\}
:math:X \in\mathbf{R}^{m \times n}
same sign as X
|incr| incr.
|convex| convex
:ref:mean(X) <mean>
:math:\frac{1}{m n}\sum_{ij}\left\{ X_{ij}\right\}
:math:X \in\mathbf{R}^{m \times n}
same sign as X
|incr| incr.
|affine| affine
:ref:min(X) <min>
:math:\min_{ij}\left\{ X_{ij}\right\}
:math:X \in\mathbf{R}^{m \times n}
same sign as X
|incr| incr.
|concave| concave
:ref:mixed_norm(X, p, q) <mixed-norm>
:math:\left(\sum_k\left(\sum_l\lvert x_{k,l}\rvert^p\right)^{q/p}\right)^{1/q}
:math:X \in\mathbf{R}^{n \times n}
|positive| positive
|convex| convex
:ref:norm(x) <norm>
norm(x, 2)
:math:\sqrt{\sum_{i} \lvert x_{i} \rvert^2 }
:math:X \in\mathbf{R}^{n}
|positive| positive
|incr| for :math:x_{i} \geq 0
|convex| convex
:ref:norm(x, 1) <norm>
:math:\sum_{i}\lvert x_{i} \rvert
:math:x \in\mathbf{R}^{n}
|positive| positive
|incr| for :math:x_{i} \geq 0
|convex| convex
:ref:norm(x, "inf") <norm>
:math:\max_{i} \{\lvert x_{i} \rvert\}
:math:x \in\mathbf{R}^{n}
|positive| positive
|incr| for :math:x_{i} \geq 0
|convex| convex
:ref:norm(X, "fro") <norm>
:math:\sqrt{\sum_{ij}X_{ij}^2 }
:math:X \in\mathbf{R}^{m \times n}
|positive| positive
|incr| for :math:X_{ij} \geq 0
|convex| convex
:ref:norm(X, 1) <norm>
:math:\max_{j} \|X_{:,j}\|_1
:math:X \in\mathbf{R}^{m \times n}
|positive| positive
|incr| for :math:X_{ij} \geq 0
|convex| convex
:ref:norm(X, "inf") <norm>
:math:\max_{i} \|X_{i,:}\|_1
:math:X \in\mathbf{R}^{m \times n}
|positive| positive
|incr| for :math:X_{ij} \geq 0
|convex| convex
norm(X, "nuc") <norm>\mathrm{tr}\left(\left(X^T X\right)^{1/2}\right)X \in\mathbf{R}^{m \times n}norm(X) <norm>
norm(X, 2)\sqrt{\lambda_{\max}\left(X^T X\right)}X \in\mathbf{R}^{m \times n}:ref:perspective(f(x),s) <perspective>
:math:sf(x/s)
:math:x \in \mathop{\bf dom} f
:math:s \geq 0
same sign as f
|convex| / |concave|
same as :math:f
:ref:pnorm(X, p) <pnorm_func>
:math:p \geq 1
or p = 'inf'
:math:\left(\sum_{ij} |X_{ij}|^p \right)^{1/p}
:math:X \in \mathbf{R}^{m \times n}
|positive| positive
|incr| for :math:X_{ij} \geq 0
|convex| convex
:ref:pnorm(X, p) <pnorm_func>
:math:p < 1, :math:p \neq 0
:math:\left(\sum_{ij} X_{ij}^p \right)^{1/p}
:math:X \in \mathbf{R}^{m \times n}_+
|positive| positive
|incr| incr.
|concave| concave
:ref:ptp(X) <ptp>
:math:\max_{ij} X_{ij} - \min_{ij} X_{ij}
:math:X \in \mathbf{R}^{m \times n}
|positive| positive
|convex| convex
:ref:quad_form(x, P) <quad-form>
constant :math:P \in \mathbf{S}^n_+
:math:x^T P x
:math:x \in \mathbf{R}^n
|positive| positive
|incr| for :math:x_i \geq 0
|convex| convex
:ref:quad_form(x, P) <quad-form>
constant :math:P \in \mathbf{S}^n_-
:math:x^T P x
:math:x \in \mathbf{R}^n
|negative| negative
|decr| for :math:x_i \geq 0
|concave| concave
:ref:quad_form(c, X) <quad-form>
constant :math:c \in \mathbf{R}^n
:math:c^T X c
:math:X \in\mathbf{R}^{n \times n}
sign depends || on || c, |_| X
monotonicity depends || on || c
|affine| affine
:ref:quad_over_lin(X, y) <quad-over-lin>
:math:\left(\sum_{ij}X_{ij}^2\right)/y
:math:x \in \mathbf{R}^n
:math:y > 0
|positive| positive
|incr| for :math:X_{ij} \geq 0
|decr| for :math:X_{ij} \leq 0
|decr| decr. in :math:y
|convex| convex
:ref:std(X) <std>
analog to numpy.std <https://numpy.org/doc/stable/reference/generated/numpy.std.html#numpy-std>_
:math:X \in\mathbf{R}^{m \times n}
|positive| positive
|convex| convex
:ref:sum(X) <sum>
:math:\sum_{ij}X_{ij}
:math:X \in\mathbf{R}^{m \times n}
same sign as X
|incr| incr.
|affine| affine
:ref:sum_largest(X, k) <sum-largest>
:math:k > 0
:math:\text{sum of } k
:math:\text{largest }X_{ij}
:math:X \in\mathbf{R}^{m \times n}
same sign as X
|incr| incr.
|convex| convex
:ref:sum_smallest(X, k) <sum-smallest>
:math:k > 0
:math:\text{sum of } k
:math:\text{smallest }X_{ij}
:math:X \in\mathbf{R}^{m \times n}
same sign as X
|incr| incr.
|concave| concave
:ref:sum_squares(X) <sum-squares>
:math:\sum_{ij}X_{ij}^2
:math:X \in\mathbf{R}^{m \times n}
|positive| positive
|incr| for :math:X_{ij} \geq 0
|decr| for :math:X_{ij} \leq 0
|convex| convex
:ref:trace(X) <trace>
:math:\mathrm{tr}\left(X \right)
:math:X \in\mathbf{R}^{n \times n}
same sign as X
|incr| incr.
|affine| affine
:ref:tr_inv(X) <tr_inv>
:math:\mathrm{tr}\left(X^{-1} \right)
:math:X \in\mathbf{S}^n_{++}
|positive| positive
|convex| convex
:ref:tv(x) <tv>
:math:\sum_{i}|x_{i+1} - x_i|
:math:x \in \mathbf{R}^n
|positive| positive
|convex| convex
tv(X) <tv>
:math:Y = \left[\begin{matrix} X_{i+1,j} - X_{ij} \\ X_{i,j+1} -X_{ij} \end{matrix}\right]\sum_{ij}\left\| Y \right\|_2X \in \mathbf{R}^{m \times n}tv([X1,...,Xk]) <tv>
:math:Y = \left[\begin{matrix} X_{i+1,j}^{(1)} - X_{ij}^{(1)} \\ X_{i,j+1}^{(1)} -X_{ij}^{(1)} \\ \vdots \\ X_{i+1,j}^{(k)} - X_{ij}^{(k)} \\ X_{i,j+1}^{(k)} -X_{ij}^{(k)} \end{matrix}\right]\sum_{ij}\left\| Y \right\|_2X^{(i)} \in\mathbf{R}^{m \times n}:ref:var(X) <var>
analog to numpy.var <https://numpy.org/doc/stable/reference/generated/numpy.var.html#numpy-var>_
:math:X \in\mathbf{R}^{m \times n}
|positive| positive
|convex| convex
:ref:abs(x) <abs>
:math:\lvert x \rvert
:math:x \in \mathbf{C}
|positive| positive
|incr| for :math:x \geq 0
|convex| convex
:ref:conj(x) <conj>
complex conjugate
:math:x \in \mathbf{C}
|unknown| unknown sign
|affine| affine
:ref:entr(x) <entr>
:math:-x \log (x)
:math:x > 0
|unknown| unknown sign
|concave| concave
:ref:exp(x) <exp>
:math:e^x
:math:x \in \mathbf{R}
|positive| positive
|incr| incr.
|convex| convex
:ref:huber(x, M=1) <huber>
:math:M \geq 0
:math:\begin{aligned} & \text{if } |x| \leq M\colon \\& x^2 \end{aligned}
:math:\begin{aligned} & \text{if } |x| > M\colon \\& 2M|x| - M^2 \end{aligned}
:math:x \in \mathbf{R}
|positive| positive
|incr| for :math:x \geq 0
|decr| for :math:x \leq 0
|convex| convex
:ref:imag(x) <imag-atom>
imaginary part
of a complex number
:math:x \in \mathbf{C}
|unknown| unknown sign
|affine| affine
:ref:inv_pos(x) <inv-pos>
:math:1/x
:math:x > 0
|positive| positive
|decr| decr.
|convex| convex
:ref:kl_div(x, y) <kl-div>
:math:x \log(x/y) - x + y
:math:x > 0
:math:y > 0
|positive| positive
|convex| convex
:ref:log(x) <log>
:math:\log(x)
:math:x > 0
|unknown| unknown sign
|incr| incr.
|concave| concave
:ref:log_normcdf(x) <log-normcdf>
:ref:approximate <clarifyelementwise> log of the standard normal CDF
:math:x \in \mathbf{R}
|negative| negative
|incr| incr.
|concave| concave
:ref:log1p(x) <log1p>
:math:\log(x+1)
:math:x > -1
same sign as x
|incr| incr.
|concave| concave
:ref:loggamma(x) <loggamma>
:ref:approximate <clarifyelementwise> log of the Gamma function <https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.loggamma.html>_
:math:x > 0
|unknown| unknown sign
|convex| convex
:ref:logistic(x) <logistic>
:math:\log(1 + e^{x})
:math:x \in \mathbf{R}
|positive| positive
|incr| incr.
|convex| convex
:ref:maximum(x, y) <maximum>
:math:\max \left\{x, y\right\}
:math:x,y \in \mathbf{R}
sign depends on x,y
|incr| incr.
|convex| convex
:ref:minimum(x, y) <minimum>
:math:\min \left\{x, y\right\}
:math:x, y \in \mathbf{R}
sign depends || on || x,y
|incr| incr.
|concave| concave
:ref:multiply(c, x) <multiply>
:math:c \in \mathbf{R}
c*x
:math:x \in\mathbf{R}
:math:\mathrm{sign}(cx)
monotonicity depends || on || c
|affine| affine
:ref:neg(x) <neg>
:math:\max \left\{-x, 0 \right\}
:math:x \in \mathbf{R}
|positive| positive
|decr| decr.
|convex| convex
:ref:pos(x) <pos>
:math:\max \left\{x, 0 \right\}
:math:x \in \mathbf{R}
|positive| positive
|incr| incr.
|convex| convex
power(x, 0) <power>1x \in \mathbf{R}:ref:power(x, 1) <power>
:math:x
:math:x \in \mathbf{R}
same sign as x
|incr| incr.
|affine| affine
:ref:power(x, p) <power>
:math:p = 2, 4, 8, \ldots
:math:x^p
:math:x \in \mathbf{R}
|positive| positive
|incr| for :math:x \geq 0
|decr| for :math:x \leq 0
|convex| convex
:ref:power(x, p) <power>
:math:p < 0
:math:x^p
:math:x > 0
|positive| positive
|decr| decr.
|convex| convex
:ref:power(x, p) <power>
:math:0 < p < 1
:math:x^p
:math:x \geq 0
|positive| positive
|incr| incr.
|concave| concave
:ref:power(x, p) <power>
:math:p > 1,\ p \neq 2, 4, 8, \ldots
:math:x^p
:math:x \geq 0
|positive| positive
|incr| incr.
|convex| convex
:ref:real(x) <real-atom>
real part of a complex number
:math:x \in \mathbf{C}
|unknown| unknown sign
|incr| incr.
|affine| affine
:ref:rel_entr(x, y) <rel-entr>
:math:x \log(x/y)
:math:x > 0
:math:y > 0
|unknown| unknown sign
|decr| in :math:y
|convex| convex
:ref:scalene(x, alpha, beta) <scalene>
:math:\text{alpha} \geq 0
:math:\text{beta} \geq 0
:math:\alpha\mathrm{pos}(x)+ \beta\mathrm{neg}(x)
:math:x \in \mathbf{R}
|positive| positive
|incr| for :math:x \geq 0
|decr| for :math:x \leq 0
|convex| convex
:ref:sqrt(x) <sqrt>
:math:\sqrt x
:math:x \geq 0
|positive| positive
|incr| incr.
|concave| concave
:ref:square(x) <square>
:math:x^2
:math:x \in \mathbf{R}
|positive| positive
|incr| for :math:x \geq 0
|decr| for :math:x \leq 0
|convex| convex
:ref:xexp(x) <xexp>
:math:x e^x
:math:x \geq 0
|positive| positive
|incr| incr.
|convex| convex
:ref:logic.Not(x) <logic-not>
~x
:math:1 - x
:math:x \in \{0,1\}
|positive| positive
|decr| decr.
|affine| affine
:ref:logic.And(x1, ..., xn) <logic-and>
x & y
1 iff all :math:x_i = 1
:math:x_i \in \{0,1\}
|positive| positive
|incr| incr.
|affine| affine
:ref:logic.Or(x1, ..., xn) <logic-or>
x | y
1 iff any :math:x_i = 1
:math:x_i \in \{0,1\}
|positive| positive
|incr| incr.
|affine| affine
:ref:logic.Xor(x1, ..., xn) <logic-xor>
x ^ y
1 iff odd # of :math:x_i = 1
:math:x_i \in \{0,1\}
|positive| positive
|affine| affine
logic.implies(x, y) <logic-implies>x \Rightarrow y (1 unless :math:x{=}1, y{=}0)x,y \in \{0,1\}logic.iff(x, y) <logic-iff>x \Leftrightarrow y (1 iff :math:x = y)x,y \in \{0,1\}:ref:bmat() <bmat>
:math:\left[\begin{matrix} X^{(1,1)} & .. & X^{(1,q)} \\ \vdots & & \vdots \\ X^{(p,1)} & .. & X^{(p,q)} \end{matrix}\right]
:math:X^{(i,j)} \in\mathbf{R}^{m_i \times n_j}
|incr| incr.
|affine| affine
:ref:convolve(c, x) <convolve>
:math:c\in\mathbf{R}^m
:math:c*x
:math:x\in \mathbf{R}^n
monotonicity depends || on || c
|affine| affine
:ref:cumsum(X, axis=0) <cumsum>
cumulative sum along given axis.
:math:X \in \mathbf{R}^{m \times n}
|incr| incr.
|affine| affine
:ref:diag(x) <diag>
:math:\left[\begin{matrix}x_1 & & \\& \ddots & \\& & x_n\end{matrix}\right]
:math:x \in\mathbf{R}^{n}
|incr| incr.
|affine| affine
diag(X) <diag>\left[\begin{matrix}X_{11} \\\vdots \\X_{nn}\end{matrix}\right]X \in\mathbf{R}^{n \times n}:ref:diff(X, k=1, axis=0) <diff>
:math:k \in 0,1,2,\ldots
kth order differences along given axis
:math:X \in\mathbf{R}^{m \times n}
|incr| incr.
|affine| affine
:ref:einsum(subscripts, ...) <einsum>
tensor contraction via Einstein summation:
sum over repeated indices
e.g. einsum("ij,j->i", A, x) gives :math:\sum_j A_{ij} x_j
tensors with compatible dimensions (subscript-dependent)
|unknown| unknown sign
|affine| affine
:ref:hstack([X1, ..., Xk]) <hstack>
:math:\left[\begin{matrix}X^{(1)} \cdots X^{(k)}\end{matrix}\right]
:math:X^{(i)} \in\mathbf{R}^{m \times n_i}
|incr| incr.
|affine| affine
:ref:kron(X, Y) <kron>
constant :math:X\in\mathbf{R}^{p \times q}
:math:\left[\begin{matrix}X_{11}Y & .. & X_{1q}Y \\ \vdots & & \vdots \\ X_{p1}Y & .. & X_{pq}Y \end{matrix}\right]
:math:Y \in \mathbf{R}^{m \times n}
monotonicity depends on :math:X
|affine| affine
:ref:kron(X, Y) <kron>
constant :math:Y\in\mathbf{R}^{m \times n}
:math:\left[\begin{matrix}X_{11}Y & .. & X_{1q}Y \\ \vdots & & \vdots \\ X_{p1}Y & .. & X_{pq}Y \end{matrix}\right]
:math:X \in \mathbf{R}^{p \times q}
monotonicity depends on :math:Y
|affine| affine
:ref:outer(x, y) <outer>
constant :math:y \in \mathbf{R}^m
:math:x y^T
:math:x \in \mathbf{R}^n
monotonicity depends on :math:Y
|affine| affine
:ref:partial_trace(X, dims, axis=0) <ptrace>
partial trace
:math:X \in\mathbf{R}^{n \times n}
|incr| incr.
|affine| affine
:ref:partial_transpose(X, dims, axis=0) <ptrans>
partial transpose
:math:X \in\mathbf{R}^{n \times n}
|incr| incr.
|affine| affine
:ref:reshape(X, (m', n'), order='F') <reshape>
:math:X' \in\mathbf{R}^{m' \times n'}
:math:X \in\mathbf{R}^{m \times n}
:math:m'n' = mn
|incr| incr.
|affine| affine
:ref:upper_tri(X) <upper_tri>
flatten the strictly upper-triangular part of :math:X
:math:X \in \mathbf{R}^{n \times n}
|incr| incr.
|affine| affine
:ref:vec(X) <vec>
:math:x' \in\mathbf{R}^{mn}
:math:X \in\mathbf{R}^{m \times n}
|incr| incr.
|affine| affine
:ref:vec_to_upper_tri(X, strict=False) <vec_to_upper_tri>
:math:x' \in\mathbf{R}^{n(n-1)/2} for strict=True
:math:x' \in\mathbf{R}^{n(n+1)/2} for strict=False
:math:X \in\mathbf{R}^{n \times n}
|incr| incr.
|affine| affine
vstack([X1, ..., Xk]) <vstack>\left[\begin{matrix}X^{(1)} \\ \vdots \\X^{(k)}\end{matrix}\right]X^{(i)} \in\mathbf{R}^{m_i \times n}:ref:geo_mean(x) <geo-mean>
:ref:geo_mean(x, p) <geo-mean>
:math:p \in \mathbf{R}^n_{+}
:math:p \neq 0
:math:x_1^{1/n} \cdots x_n^{1/n}
:math:\left(x_1^{p_1} \cdots x_n^{p_n}\right)^{\frac{1}{\mathbf{1}^T p}}
:math:x \in \mathbf{R}^n_{+}
|incr| incr.
|affine| log-log affine
harmonic_mean(x) <harmonic-mean>\frac{n}{\frac{1}{x_1} + \cdots + \frac{1}{x_n}}x \in \mathbf{R}^n_{+}max(X) <max>\max_{ij}\left\{ X_{ij}\right\}X \in\mathbf{R}^{m \times n}_{++}min(X) <min>\min_{ij}\left\{ X_{ij}\right\}X \in\mathbf{R}^{m \times n}_{++}:ref:norm(x) <norm>
:ref:norm(x, 2) <norm>
:math:\sqrt{\sum_{i} \lvert x_{i} \rvert^2 }
:math:X \in\mathbf{R}^{n}_{++}
|incr| incr.
|convex| log-log convex
norm(X, "fro") <norm>\sqrt{\sum_{ij}X_{ij}^2 }X \in\mathbf{R}^{m \times n}_{++}norm(X, 1) <norm>\sum_{ij}\lvert X_{ij} \rvertX \in\mathbf{R}^{m \times n}_{++}norm(X, "inf") <norm>\max_{ij} \{\lvert X_{ij} \rvert\}X \in\mathbf{R}^{m \times n}_{++}:ref:pnorm(X, p) <pnorm_func>
:math:p \geq 1
or p = 'inf'
:math:\left(\sum_{ij} |X_{ij}|^p \right)^{1/p}
:math:X \in \mathbf{R}^{m \times n}_{++}
|incr| incr.
|convex| log-log convex
pnorm(X, p) <pnorm_func>
:math:0 < p < 1\left(\sum_{ij} X_{ij}^p \right)^{1/p}X \in \mathbf{R}^{m \times n}_{++}prod(X) <prod>\prod_{ij}X_{ij}X \in\mathbf{R}^{m \times n}_{++}quad_form(x, P) <quad-form>x^T P xx \in \mathbf{R}^n, :math:P \in \mathbf{R}^{n \times n}_{++}:ref:quad_over_lin(X, y) <quad-over-lin>
:math:\left(\sum_{ij}X_{ij}^2\right)/y
:math:x \in \mathbf{R}^n_{++}
:math:y > 0
|incr| in :math:X_{ij}
|decr| decr. in :math:y
|convex| log-log convex
sum(X) <sum>\sum_{ij}X_{ij}X \in\mathbf{R}^{m \times n}_{++}sum_squares(X) <sum-squares>\sum_{ij}X_{ij}^2X \in\mathbf{R}^{m \times n}_{++}trace(X) <trace>\mathrm{tr}\left(X \right)X \in\mathbf{R}^{n \times n}_{++}pf_eigenvalue(X) <pf-eigenvalue>XX \in\mathbf{R}^{n \times n}_{++}:ref:diff_pos(x, y) <diff_pos>
:math:x - y
:math:0 < y < x
|incr| incr. in :math:x
|decr| decr. in :math:y
|concave| log-log concave
entr(x) <entr>-x \log (x)0 < x < 1exp(x) <exp>e^xx > 0log(x) <log>\log(x)x > 1maximum(x, y) <maximum>\max \left\{x, y\right\}x,y > 0minimum(x, y) <minimum>\min \left\{x, y\right\}x, y > 0multiply(x, y) <multiply>x*yx, y > 0one_minus_pos(x) <one-minus-pos>1 - x0 < x < 1power(x, 0) <power>1x > 0:ref:power(x, p) <power>
:math:x
:math:x > 0
|incr| for :math:p > 0
|decr| for :math:p < 0
|affine| log-log affine
sqrt(x) <sqrt>\sqrt xx > 0square(x) <square>x^2x > 0xexp(x) <xexp>x e^xx > 0bmat() <bmat>\left[\begin{matrix} X^{(1,1)} & .. & X^{(1,q)} \\ \vdots & & \vdots \\ X^{(p,1)} & .. & X^{(p,q)} \end{matrix}\right]X^{(i,j)} \in\mathbf{R}^{m_i \times n_j}_{++}diag(x) <diag>\left[\begin{matrix}x_1 & & \\& \ddots & \\& & x_n\end{matrix}\right]x \in\mathbf{R}^{n}_{++}diag(X) <diag>\left[\begin{matrix}X_{11} \\\vdots \\X_{nn}\end{matrix}\right]X \in\mathbf{R}^{n \times n}_{++}:ref:eye_minus_inv(X) <eye_minus_inv>
:math:(I - X)^{-1}
:math:X \in\mathbf{R}^{n \times n}_{++},
:math:\lambda_{\text{pf}}(X) < 1
|incr| incr.
|convex| log-log convex
:ref:gmatmul(A, x) <gmatmul>
:math:A \in \mathbf{R}^{m \times n}
:math:\left[\begin{matrix}\prod_{j=1}^n x_j^{A_{1j}} \\\vdots \\\prod_{j=1}^n x_j^{A_{mj}}\end{matrix}\right]
:math:x \in \mathbf{R}^n_{++}
|incr| for :math:A_{ij} \geq 0
|decr| for :math:A_{ij} \leq 0
|affine| log-log affine
hstack([X1, ..., Xk]) <hstack>\left[\begin{matrix}X^{(1)} \cdots X^{(k)}\end{matrix}\right]X^{(i)} \in\mathbf{R}^{m \times n_i}_{++}:ref:matmul(X, Y) <matmul>
:math:XY
:math:X \in\mathbf{R}^{m \times n}_{++}
:math:Y \in\mathbf{R}^{n \times p}_{++}
|incr| incr.
|convex| log-log convex
:ref:resolvent(X) <resolvent>
:math:(sI - X)^{-1}
:math:X \in\mathbf{R}^{n \times n}_{++}
:math:\lambda_{\text{pf}}(X) < s
|incr| incr.
|convex| log-log convex
:ref:reshape(X, (m', n')) <reshape>
:math:X' \in\mathbf{R}^{m' \times n'}
:math:X \in\mathbf{R}^{m \times n}_{++}
:math:m'n' = mn
|incr| incr.
|affine| log-log affine
vec(X) <vec>x' \in\mathbf{R}^{mn}X \in\mathbf{R}^{m \times n}_{++}vstack([X1, ..., Xk]) <vstack>\left[\begin{matrix}X^{(1)} \\ \vdots \\X^{(k)}\end{matrix}\right]X^{(i)} \in\mathbf{R}^{m_i \times n}_{++}.. |positive| image:: /tutorial/functions/functions_files/positive.svg :width: 15px :height: 15px
.. |negative| image:: /tutorial/functions/functions_files/negative.svg :width: 15px :height: 15px
.. |unknown| image:: /tutorial/functions/functions_files/unknown.svg :width: 15px :height: 15px
.. |convex| image:: /tutorial/functions/functions_files/convex.svg :width: 15px :height: 15px
.. |concave| image:: /tutorial/functions/functions_files/concave.svg :width: 15px :height: 15px
.. |affine| image:: /tutorial/functions/functions_files/affine.svg :width: 15px :height: 15px
.. |incr| image:: /tutorial/functions/functions_files/increasing.svg :width: 15px :height: 15px
.. |decr| image:: /tutorial/functions/functions_files/decreasing.svg :width: 15px :height: 15px