import numpy as np

from blatt08 import partialPivotLU

# forward substitution: Lx = b
def forward(L, b):
    return np.zeros_like(b)

# back substitution: Ux = y
def backward(U, y):
    return np.zeros_like(y)

# given correctly shaped data returns the (approximate) solution to the linear
# system Ax = b, calculated using an LU decomposition with (partial) pivoting.
def solveLS(A, b):
    return np.zeros_like(b)

# given correctly shaped data returns the (approximate) solution to the linear
# system Ax = b. In addition to using an LU decomposition an afterburner
# iteration scheme is used to improve the accuracy of the result.
def solveLSafterburner(A, b, LU, p, maxiter = 20):
    return np.zeros_like(b)

if __name__ == "__main__":
    A = np.array([[2, 1, 6], [2, 6, 9], [4, 2, 10]])
    Aapprox = A + np.diag([0.1, 0, 0])

    print("Hello, World!")
