<commit_before>import javax.swing.*;

public class LUPDescomposicion {
	
	private double[][] matrizU; //Matriz triangular inferior(U)
	private double[][] matrizL; //Matriz trangular superior
	private int[] vectorM; //Arreglo que almacena posicion de los '1' para matriz de permutacion
	private int K; //Variable para verificar posicion de intercambio elemento y renglon
	
	public void LUP(double[][] matrizA)
	{
		int n = matrizA.length; 
		double pivote;
		matrizU = new double[n][n];
		matrizL = new double[n][n];
		vectorM = new int[n];		
		
		for(int i = 0; i < n; i++)
		{
			vectorM[i] = i;
		}
		
		for(int k = 0; k < n-1; k++)
		{
			pivote = 0;
			
			for(int i = k; i < n; i++)
			{
				if( Math.abs(matrizA[i][k]) > pivote)
				{
					pivote = Math.abs(matrizA[i][k]);
					K = i;
				}

				if(pivote == 0)
				{
					JOptionPane.showMessageDialog(null, "EL SISTEMA NO TIENE SOLUCION");
				}								
			}

			intercambiarElementos(k, K);	
			intercambiarRenglones(k, K, matrizA);
			pivote(k, matrizA);	
		}
	}
		
	public void pivote(int k, double[][] matriz)
	{	
		int n = matriz.length;
		
		matrizU[k][k] = matriz[k][k];
		
		for(int i = k+1; i < n; i++)
		{
			matrizL[i][k] = matriz[i][k] / matrizU[k][k];
			matrizU[k][i] = matriz[k][i];
		}
		
		for(int i = k+1; i < n; i++)
		{
			for(int j = k+1; j < n; j++)
			{
				matriz[i][j] = matriz[i][j] - matrizL[i][k] * matrizU[k][j];
			}
		}
	}
	
	//Metodo para intercambiar elementos en el vectorM
	public void intercambiarElementos(int elemento1, int elemento2)
	{
		int aux;

		aux = vectorM[elemento1];
		vectorM[elemento1] = vectorM[elemento2];
		vectorM[elemento2] = aux;
	}
	
	//Metodo para intercambiar renglones en la matriz
	public void intercambiarRenglones(int fila1, int fila2, double[][] matriz)
	{
		double aux, aux2, aux3;
		
		for (int i = 0; i < matriz.length; i++)
		{     
			aux = matriz[fila1][i];
			matriz[fila1][i] = matriz[fila2][i];
			matriz[fila2][i] = aux;
			
			aux2 = matrizL[fila1][i];
			matrizL[fila1][i] = matrizL[fila2][i];
			matrizL[fila2][i] = aux2;
			
			aux3 = matrizU[fila1][i];
			matrizU[fila1][i] = matrizU[fila2][i];
			matrizU[fila2][i] = aux3;
		}
	}
}<commit_msg>Clase LUPDescomposicion Corregido para utilizar solo una matriz<commit_after>import javax.swing.*;

public class LUPDescomposicion {
	
	private double[][] matrizLUP;
	private int[] vectorM; //Arreglo que almacena posicion de los '1' para matriz de permutacion
	private int K; //Variable para verificar posicion de intercambio elemento y renglon
	
	public void LUP(double[][] matrizA)
	{
		int n = matrizA.length;
		matrizLUP = new double[n][n]; 
		matrizLUP = matrizA;
		vectorM = new int[n];
		double pivote;
		
		for(int i = 0; i < n; i++)
		{
			vectorM[i] = i;
		}
		
		for(int k = 0; k < n-1; k++)
		{
			pivote = 0;
			
			for(int i = k; i < n; i++)
			{
				if( Math.abs(matrizLUP[i][k]) > pivote)
				{
					pivote = Math.abs(matrizLUP[i][k]);
					K = i;
				}

				if(pivote == 0)
				{
					JOptionPane.showMessageDialog(null, "EL SISTEMA NO TIENE SOLUCION");
				}								
			}

			intercambiarElementos(k, K);	
			intercambiarRenglones(k, K);
			pivote(k);	
		}
	}

	public void pivote(int k)
	{	
		int n = matrizLUP.length;
		
		matrizLUP[k][k] = matrizLUP[k][k];
		
		for(int i = k+1; i < n; i++)
		{
			matrizLUP[i][k] = matrizLUP[i][k] / matrizLUP[k][k];
			matrizLUP[k][i] = matrizLUP[k][i];
		}
		
		for(int i = k+1; i < n; i++)
		{
			for(int j = k+1; j < n; j++)
			{
				matrizLUP[i][j] = matrizLUP[i][j] - matrizLUP[i][k] * matrizLUP[k][j];
			}
		}
	}
	
	//Metodo para intercambiar elementos en el vectorM
	public void intercambiarElementos(int elemento1, int elemento2)
	{
		int aux;

		aux = vectorM[elemento1];
		vectorM[elemento1] = vectorM[elemento2];
		vectorM[elemento2] = aux;
	}
	
	//Metodo para intercambiar renglones en la matriz
	public void intercambiarRenglones(int fila1, int fila2)
	{
		double aux;
		
		for (int i = 0; i < matrizLUP.length; i++)
		{     
			aux = matrizLUP[fila1][i];
			matrizLUP[fila1][i] = matrizLUP[fila2][i];
			matrizLUP[fila2][i] = aux;
		}
	}
}
{'fraction_non_alphanumeric': 0.1595406792084046, 'fraction_numerical': 0.014170535059858295, 'mean_word_length': 2.97090203685742, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2821081', 'n_tokens_mistral': 2089, 'n_tokens_neox': 1776, 'n_words': 393}