Actual source code: diagbrdn.h

      1: #include <../src/ksp/ksp/utils/lmvm/lmvm.h>

      3: /*
      4:   "Full" memory implementation of only the diagonal terms in a symmetric Broyden approximation.
      5: */

      7: typedef struct {
      8:   Vec invDnew, invD, BFGS, DFP, U, V, W;    /* work vectors for diagonal scaling */
      9:   PetscReal *yts, *yty, *sts;               /* scalar arrays for recycling dot products */
     10:   PetscReal theta, rho, alpha, beta;        /* convex combination factors for the scalar or diagonal scaling */
     11:   PetscReal delta, delta_min, delta_max, sigma, tol;
     12:   PetscInt sigma_hist;                      /* length of update history to be used for scaling */
     13:   PetscBool allocated;
     14:   PetscBool forward;
     15: } Mat_DiagBrdn;