Update G with CG algorithm
(L, G0)
| 568 | return nx.solve(xstxs + eta * Id, nx.dot(xs1.T, xst) + eta * I0) |
| 569 | |
| 570 | def solve_G(L, G0): |
| 571 | """Update G with CG algorithm""" |
| 572 | xsi = nx.dot(xs1, L) |
| 573 | |
| 574 | def f(G): |
| 575 | return nx.sum((xsi - ns * nx.dot(G, xt)) ** 2) |
| 576 | |
| 577 | def df(G): |
| 578 | return -2 * ns * nx.dot(xsi - ns * nx.dot(G, xt), xt.T) |
| 579 | |
| 580 | G = cg( |
| 581 | a, |
| 582 | b, |
| 583 | M, |
| 584 | 1.0 / mu, |
| 585 | f, |
| 586 | df, |
| 587 | G0=G0, |
| 588 | numItermax=numInnerItermax, |
| 589 | stopThr=stopInnerThr, |
| 590 | ) |
| 591 | return G |
| 592 | |
| 593 | L = solve_L(G) |
| 594 |
no test coverage detected