This is essentially a repeat of last week's lab. Download the related functions including the matrix-linear-dep.c developed by Monday's lab. Write the following function: /* Takes as input a matrix A of size n x m, and a vector c of size n. If n > m, or the rank * of A < n, the function returns 0. Otherwise, it computes one solution of the system of linear equations Ax = c * and stores it in vector x (it is of dimension m). */ void solve_few_linear_eq( Matrix A, Vector c, Vector *x); Matrix is the type defined in the class using structures. Use the functions developed in Monday's lab to implement above in the following way: 1. Treating columns of A as vectors of dimension n each, find a basis for these vectors (there must be exactly n vectors in the basis as rank of A is n). 2. Let square matrix B contain these vectors, and let matrix C contain remaining vectors (size of C is n x (m-n). 3. Let x_1 be a n-dim vector and x_2 be a (m-n)-dim vector. 4. Then, Ax = c can be written as Bx_1 + Cx_2 = c. 5. Since B is square and invertible, we get: x_1 = B^{-1} c - B^{-1}C x_2. 6. To get one solution, set all variables in x_2 to zero, so we get x_1 = B^{-1} c. Use Matrix type only for the above function. Do not use it for already defined operations (like inverting matrices) as otherwise you will have to rewrite a bunch of functions. Put these functions in a new file called "matrix-linear-eq.c". Write a main() function (in a separate file) that reads matrix A and vector c and outputs a solution of Ax = c.