/*
 * A matrix data structure; rows and columns are numbered starting at ZERO
 * and the matrix contains doubles
 * 
 * Author : Tom Kimber
 *
 */
import java.util.* ;
class Matrix
{
   Vector v = new Vector( 3 , 3 ) ;
   private int num_rows , num_cols ;
   public Matrix( int i , int j , double init_each_entry )
   {
      num_rows = i ;
      num_cols = j ;
      Double val = new Double( init_each_entry ) ;
      for( int c = 0 ; c < num_rows * num_cols ; c++ ) 
      {
         v.addElement( val ) ;
      }   
   }
   public void setEntry( int row , int col , double d ) 
   {
      int absPos ;
      absPos = row * num_cols + col ;
      Double D = new Double( d ) ;
      v.setElementAt( D , absPos ) ;
   }
   public double getEntry( int row , int col ) 
   {
      int absPos ;
      absPos = row * num_cols + col ;
      Double D ;
      D = ( Double )( v.elementAt( absPos ) )  ;
      return D.doubleValue( ) ;
   }
   public void updateFromPanel( MatrixPanel pnl ) 
   {
      for ( int i = 0 ; i < num_rows ; i++ )
      {
         for ( int j = 0 ; j < num_cols ; j++ )
         {
            setEntry( i , j , pnl.getValue( i , j ) ) ;
         }
      }
   }
   public int getNumRows( ) 
   {
      return num_rows ;
   }
   public int getNumCols( ) 
   {
      return num_cols ; 
   }
}