You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It represents a linear application Rⁿˣⁿ, considering at most `m` BFGS updates.
20
+
This implementation considers the bloc matrices reoresentation of the BFGS (forward) update.
21
+
It follows the algorithm described in [REPRESENTATIONS OF QUASI-NEWTON MATRICES AND THEIR USE IN LIMITED MEMORY METHODS](https://link.springer.com/article/10.1007/BF01582063) from Richard H. Byrd, Jorge Nocedal and Robert B. Schnabel (1994).
22
+
This operator considers several fields directly related to the bloc representation of the operator:
23
+
- `m`: the maximal memory of the operator;
24
+
- `n`: the dimension of the linear application;
25
+
- `k`: the current memory's size of the operator;
26
+
- `α`: scalar for `B₀ = α I`;
27
+
- `Sₖ`: retain the `k`-th last vectors `s` from the updates parametrized by `(s,y)`;
28
+
- `Yₖ`: retain the `k`-th last vectors `y` from the updates parametrized by `(s,y)`;;
29
+
- `Dₖ`: a diagonal matrix mandatory to perform the linear application and to form the matrix;
30
+
- `Lₖ`: a lower diagonal mandatory to perform the linear application and to form the matrix.
31
+
In addition to this structures which are circurlarly update when `k` reaches `m`, we consider other intermediate data structures renew at each update:
32
+
- `chol_matrix`: a matrix required to store a Cholesky factorization of a Rᵏˣᵏ matrix;
33
+
- `intermediate_1`: a R²ᵏˣ²ᵏ matrix;
34
+
- `intermediate_2`: a R²ᵏˣ²ᵏ matrix;
35
+
- `inverse_intermediate_1`: a R²ᵏˣ²ᵏ matrix;
36
+
- `inverse_intermediate_2`: a R²ᵏˣ²ᵏ matrix;
37
+
- `intermediary_vector`: a vector ∈ Rᵏ to store intermediate solutions;
38
+
- `sol`: a vector ∈ Rᵏ to store intermediate solutions;
39
+
- `intermediate_structure_updated`: inform if the intermediate structures are up-to-date or not.
40
+
This implementation is designed to work either on CPU or GPU.
0 commit comments