// simeq_lup.java LU with pivot // solve for X, A X = Y, using L U = A decomposition public class simeq_lup { simeq_lup(int n, double A[], double Y[], double X[]) { double B[] = new double[n*(n+1)]; // WORKING MATRIX int ROW[] = new int[n]; // ROW INTERCHANGE INDICIES double by[] = new double[n]; // interchanged Y int HOLD , I_PIVOT; // PIVOT INDICIES double pivot; // PIVOT ELEMENT VALUE int i, j, k, m, im, it; for(m=0; mpivot) { im = i; pivot = Math.abs(A[ROW[i]*n+m]); } } it = ROW[im]; ROW[im] = ROW[m]; ROW[m] = it; } // copy A into B with largest diagonal for(i=0; i=0; j--) { X[j] = by[j]; for(k=j+1; k