public class Matrix
{

    private int n ;
    private double[][] a ;

    public Matrix(double[][] m) 
    {
	n = m.length ;
	a = new double[n][n] ;
	for ( int i = 0 ; i < n ; i++ ) 
	    for ( int j = 0 ; j < n ; j++ )
		a[i][j] = m[i][j] ; 
    } 

    public Vektor multiply( Vektor x ) 
    {
	double[] v = new double[n] ;
	double summe ; 
	for ( int i = 0 ; i < n ; i++ ) 
	    {
		summe = 0.0 ;
		for ( int j = 0 ; j < n ; j++ )
		    summe += a[i][j] * x.getB()[j] ;
		v[i] = summe ;
	    }
	return new Vektor( v ) ;
    }


    public Matrix multiply( Matrix b ) 
    {
	double[][] m = new double[n][n] ;
	double summe ; 
	for ( int i = 0 ; i < n ; i++ )
	    for ( int j = 0 ; j < n ; j++ )
		{
		    summe = 0.0 ; 
		    for ( int k = 0 ; k < n ; k++ ) 
			summe += this.a[i][k] * b.a[j][k] ;
		    m[i][j] = summe ;
		}
	return new Matrix( m ) ; 
    } 


    public String toString() 
    {
	String s = "" ;
	for ( int i = 0 ; i < n ; i++ ) 
	    {
		for ( int j = 0 ; j < n ; j++ ) 
		    s = s + a[i][j] + " " ;
		s = s + "\n" ;
	    }
	return s ; 
    }

}
