#include <stdio.h>
#include <stdlib.h>

#include "Matrix2D.h"

/* Fill a matrix */
void FillMatrix(TMatrix2D mat)
{
  int i,j;
  
  for (i= 0;i<3;i++)
    for (j= 0;j<3;j++)
    {
      printf("enter value (Row=%d,Col=%d): ",i,j);
      scanf("%f",&Mat2D_getDataFloat(mat)[i][j]);
    }
}


/* Display a Matrix */
void DisplayMatrix(TMatrix2D mat)
{
  int i,j;
  
  for (i= 0;i<3;i++)
  {
    printf("[\t");
    for (j= 0;j<3;j++)
    {
      printf("%f\t",Mat2D_getDataFloat(mat)[i][j]);
    }
    printf("]\n");    
  }
}

int main(int argc, char *argv[])
{
  TMatrix2D mat1,mat2;
  TMatrix2D matD;
  
  /* Create a matrix 3x3 */
  mat1= Mat2D_create(3,3,MAT2D_FLOAT);
  mat2= Mat2D_create(3,3,MAT2D_FLOAT);
 

  printf("First matrix\n");
  FillMatrix(mat1);
  printf("Second matrix\n");
  FillMatrix(mat2);
    
  printf("\nProduct\n");
  matD= Mat2D_clone(mat1);
  Mat2D_product(matD,mat2);
  DisplayMatrix(matD);
  Mat2D_destroy(&matD);

  printf("\nAdd\n");
  matD= Mat2D_clone(mat1);
  Mat2D_add(matD,mat2);
  DisplayMatrix(matD);
  Mat2D_destroy(&matD);
     
  Mat2D_destroy(&mat1);
  Mat2D_destroy(&mat2);
  
  return 0;
}
