Beispiel #1
0
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
Beispiel #2
0
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