def serial_solve(A, B, diagnose=True): if diagnose: sol = zeros_like(B) for i in range(sol.shape[0]): try: sol[i, :] = linalg_solve(A[i, :, :], B[i, :]) except: # Should be a special type of exception a = Exception("Error solving point {}".format(i)) a.x = B[i, :] a.J = A[i, :, :] a.i = i raise a else: M = numpy.concatenate([A, B[:, :, None]], axis=2) sol = numpy.zeros_like(B) serial_solve_numba(M, sol) return sol