void Right_Looking(double**& A,int N)
{
for (int i=0;i<N;i++)
{
for (int j=i+1;j<N;j++){
A[j][i] = A[j][i]/A[i][i];//update L
for (int k=i+1;k<N;k++)
A[j][k] -= A[i][k]*A[j][i]; //update U
}
}
}
void Right_Looking2(double**& A,int N)
{
for (int k=0;k<N-1;k++)
{
//A(k+1:N,k) = A(k+1:N,k) / A(k,k)
for (int i=k+1;i<N;i++){
A[i][k] = A[i][k]/A[k][k];//update L
}
//A(k+1:N,k+1:N) -= A(k+1:N,k)*A(k,k+1:N)
for(int i=k+1;i<N;i++){
for (int j=k+1;j<N;j++)
A[i][j] -= A[i][k]*A[k][j]; //update U
}
}
}
{
for (int i=0;i<N;i++)
{
for (int j=i+1;j<N;j++){
A[j][i] = A[j][i]/A[i][i];//update L
for (int k=i+1;k<N;k++)
A[j][k] -= A[i][k]*A[j][i]; //update U
}
}
}
void Right_Looking2(double**& A,int N)
{
for (int k=0;k<N-1;k++)
{
//A(k+1:N,k) = A(k+1:N,k) / A(k,k)
for (int i=k+1;i<N;i++){
A[i][k] = A[i][k]/A[k][k];//update L
}
//A(k+1:N,k+1:N) -= A(k+1:N,k)*A(k,k+1:N)
for(int i=k+1;i<N;i++){
for (int j=k+1;j<N;j++)
A[i][j] -= A[i][k]*A[k][j]; //update U
}
}
}