xref: /petsc/src/tao/leastsquares/impls/brgn/brgn.h (revision 8ac80d489131db64bfff9302a0e3a5f47f117139)
1737f463aSAlp Dener /*
2737f463aSAlp Dener Context for Bounded Regularized Gauss-Newton algorithm
3737f463aSAlp Dener */
4737f463aSAlp Dener 
5737f463aSAlp Dener #if !defined(__TAO_BRGN_H)
6737f463aSAlp Dener #define __TAO_BRGN_H
7737f463aSAlp Dener 
8737f463aSAlp Dener #include <../src/tao/bound/impls/bnk/bnk.h>
9737f463aSAlp Dener 
10737f463aSAlp Dener typedef struct {
11737f463aSAlp Dener   Mat J, H;
120d71dc2bSXiang Huang   Vec x_old, x_work, r_work, diag;
13e1e80dc8SAlp Dener   Tao subsolver, parent;
14*8ac80d48SXiang Huang   PetscReal lambda, epsilon; /* lambda is regularizer weight for both L2-norm Gaussian-Newton and L1-norm, ||x||_1 is approximated with sum(sqrt(x.^2+epsilon^2)-epsilon)*/
15737f463aSAlp Dener } TAO_BRGN;
16737f463aSAlp Dener 
17737f463aSAlp Dener #endif /* if !defined(__TAO_BRGN_H) */
18