All pastes #483443 Raw Edit

Someone

public java v1 · immutable
·published 2007-05-11 19:02 UTC
rendered paste body
	public static Fraction[][] delRowCol( Fraction m[][], int row, int col )	{		Fraction m2[][] = new Fraction[m.length - 1][m[0].length - 1];		for( int i = 0; i < m.length; i++ )			for( int j = 0; j < m[0].length; j++ )			{				if( i < row && j < col )					m2[i][j] = m[i][j];				else if( i < row && j > col )					m2[i][j - 1] = m[i][j];				else if( i > row && j < col )					m2[i - 1][j] = m[i][j];				else if( i > row && j > col )					m2[i - 1][j - 1] = m[i][j];			}		return m2;	}	public static Fraction det( Fraction m[][] )	{		int countSwap = 0;		for( int i = 0; i < m.length; i++ )		{			if( m[i][i].equals( 0 ) )				for( int j = i + 1; j < m[i].length; j++ )					if( !m[j][i].equals( 0 ) )					{						m = swapLine( j, i, m );						countSwap++;						break;					}			for( int j = i; j < m.length; j++ )			{		 		if( i != j )				{					Fraction addFra = m[i][i].inv( ).mult( new Fraction( -1 ) ).mult( m[j][i] );					if( addFra.getDenominator( ) == 0 )						return null;					m = addLine( i, j, addFra, m );				}			}		}		Fraction ret = new Fraction( 1 );		for( int k = 0; k < m.length; k++ )			ret = ret.mult( m[k][k] );		if( countSwap % 2 != 0 )			ret = ret.mult( new Fraction( -1 ) );		return ret;	}