


#include <iostream>
#include <vector>
#include <X11/X.h>    // Basic X library
#include <GL/gl.h>    // Basic Mesa OpenGL library
#include <GL/glut.h>  // Mesa OpenGL utility toolkit
#include "nd.h"

using namespace std;

void add(vector< vector<GLdouble> > &  x, vector< vector<GLdouble> > & y);
void displayMatrix(const vector< vector<GLdouble> > & M);
inline void setup();

int main(int argc, char ** argv)
{

  //  int d = 10;

  vector< vector<GLdouble> > M(d, vector<GLdouble> (d, 0.0));
  vector< vector<GLdouble> > N(d, vector<GLdouble> (d, 1.0));

  cout << M.capacity() << endl;
  cout << M[1].capacity() << endl;

  for(unsigned int i = 0; i < M.size(); ++i){
    for(unsigned int j = 0; j < M.size(); ++j)
      cout  << M[i][j] << " ";
    cout << endl;
  }
  
  setup();

  displayMatrix(M);
  cout << endl;
  displayMatrix(N);
  cout << endl;

  add(M,N);

  displayMatrix(M);
  cout << endl;

  //  cout << dim << endl;

  exit(0);
  


}


void add(vector< vector<GLdouble> > &  x, vector< vector<GLdouble> > & y)
{

  for(unsigned int i = 0; i < x.size(); ++i)
    for(unsigned int j = 0; j < x.size(); ++j)
      x[i][j] += y[i][j];

}

void displayMatrix(const vector< vector<GLdouble> > & m)
{
  for(unsigned int i = 0; i < m.size(); ++i){
    for(unsigned int j = 0; j < m.size(); ++j)
      cout  << m[i][j] << " ";
    cout << endl;
  }
}

inline void setup()
{
  static int dim = 34;
}
