pyxu.math#
- backtracking_linesearch(f, x, direction, gradient=None, a0=None, r=0.5, c=0.0001)[source]#
Backtracking line search algorithm based on the Armijo-Goldstein condition.
- Parameters:
f (
DiffFunc) – Differentiable functional.x (
NDArray) – (…, M1,…,MD) initial search point(s).direction (
NDArray) – (…, M1,…,MD) search direction(s) corresponding to initial point(s).gradient (
NDArray) –(…, M1,…,MD) gradient of
fat initial search point(s).Specifying
gradientwhen known is an optimization: it will be autocomputed viagrad()if unspecified.a0 (
Real) –Initial step size.
If unspecified and \(\nabla f\) is \(\beta\)-Lipschitz continuous, then
a0is auto-chosen as \(\frac{1}{\beta}\).r (
Real) – Step reduction factor.c (
Real) – Bound reduction factor.
- Returns:
a – (…, 1) step sizes.
- Return type:
Notes
Performing a line-search with DASK inputs is inefficient due to iterative nature of algorithm.
- hutchpp(op, m=4002, xp=None, dtype=None, seed=None)[source]#
Stochastic trace estimation of a linear operator based on the Hutch++ algorithm. (Specifically algorithm 3 from this paper.)
- Parameters:
op (
SquareOp)m (
Integer) –Number of queries used to estimate the trace of the linear operator.
mis set to 4002 by default based on the analysis of the variance described in theorem 10. This default corresponds to having an estimation error smaller than 0.01 with probability 0.9.xp (
ArrayModule) – Array module used for internal computations. (Default: NumPy.)dtype (
DType) – Precision to use for internal computations. (Default: current runtime precision.)seed (
Integer) – Seed for the random number generator.
- Returns:
tr – Stochastic estimate of tr(op).
- Return type:
- trace(op, xp=None, dtype=None)[source]#
Exact trace of a linear operator based on multiple evaluation of the forward operator.
- Parameters:
op (
SquareOp)xp (
ArrayModule) – Array module used for internal computations. (Default: NumPy.)dtype (
DType) – Precision to use for internal computations. (Default: current runtime precision.)
- Returns:
tr – Exact value of tr(op).
- Return type: