def spsolve(A, b): """ AD equivalence of scipy.sparse.linalg.spsolve. """ x = adarray(sp.linalg.spsolve(A._value.tocsr(), b._value)) r = A * x - b return adsolution(x, r, 1)
def solve(A, b): ''' AD equivalence of linalg.solve ''' assert A.ndim == 2 and b.shape[0] == A.shape[0] x = adarray(np.linalg.solve(value(A), value(b))) r = dot(A, x) - b return adsolution(x, r, 1)