Skip to main content
`Ctrl`+`K`

# TaoBRGNRegularizationType

The regularization added in the `TAOBRGN` solver.

## Synopsis

    typedef enum {
      TAOBRGN_REGULARIZATION_USER,
      TAOBRGN_REGULARIZATION_L2PROX,
      TAOBRGN_REGULARIZATION_L2PURE,
      TAOBRGN_REGULARIZATION_L1DICT,
      TAOBRGN_REGULARIZATION_LM,
    } TaoBRGNRegularizationType;

## Values

- TAOBRGN_REGULARIZATION_USER - A user-defined regularizer

- TAOBRGN_REGULARIZATION_L2PROX - \(\tfrac{1}{2}\|x - x_k\|_2^\), where \(x_k\) is the latest solution

- TAOBRGN_REGULARIZATION_L2PURE - \(\tfrac{1}{2}\|x\|_2^2\)

- TAOBRGN_REGULARIZATION_L1DICT - \(\|D x\|_1\), where \(D\) is a dictionary matrix

- TAOBRGN_REGULARIZATION_LM - Levenberg-Marquardt, \(\tfrac{1}{2} x^T \mathrm{diag}(J^T J) x\), where \(J\) is the Jacobian of the least-squares residual

## Options database Key

- -tao_brgn_regularization_type (l2prox|l2pure|l1dict|lm|user) - select one of the regularization types

## Notes

If `TAOBRGN_REGULARIZATION_USER`, the regularizer is set either by calling `TaoBRGNSetRegularizerObjectiveAndGradientRoutine()` and `TaoBRGNSetRegulazerHessianRoutine()`

If `TAOBRGN_REGULARIZATION_L1DICT`, the dictionary matrix is set with `TaoBRGNSetDictionaryMatrix()` and the smoothing parameter of the approximate \(\ell_1\) norm is set with `TaoBRGNSetL1SmoothEpsilon()`.

If `TAOBRGN_REGULARIZATION_LM`, the diagonal damping vector \(\mathrm{diag}(J^T J)\) can be obtained with `TaoBRGNGetDampingVector()`.

## See Also

TAO: Optimization Solvers, `Tao`, `TaoBRGNGetSubsolver()`, `TaoBRGNSetRegularizerWeight()`, `TaoBRGNSetL1SmoothEpsilon()`, `TaoBRGNSetDictionaryMatrix()`, `TaoBRGNSetRegularizerObjectiveAndGradientRoutine()`, `TaoBRGNSetRegularizerHessianRoutine()`, `TaoBRGNGetRegularizationType()`, `TaoBRGNSetRegularizationType()`

## Level

advanced

## Location

include/petsctao.h

## Examples

src/tao/leastsquares/tutorials/cs1.c

## Examples

src/tao/leastsquares/tutorials/cs1.c

## Examples

src/tao/leastsquares/tutorials/cs1.c

Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages