#include "vektor.h"

IntegerVectorList transposeIntegerVectorList(IntegerVectorList const &l)
{
  int n=l.size();
  assert(n);
  int m=l.begin()->size();

  IntegerVectorList r;

  for(int i=0;i<m;i++)
    {
      IntegerVector column(n);
      
      int j=0;
      for(IntegerVectorList::const_iterator J=l.begin();J!=l.end();J++)
	{
	  column[j]=(*J)[i];
	  j++;
	}
      r.push_back(column);
    }
  return r;
}


IntegerVectorList multiplyIntegerVectorList(IntegerVectorList const &A, IntegerVectorList const &B)
{
  int s1=A.size();
  assert(s1);
  int r=A.begin()->size();
  int t=B.size();
  assert(t);
  int s2=B.begin()->size();

  assert(s1==s2);

  IntegerVectorList C;
  for(IntegerVectorList::const_iterator I=B.begin();I!=B.end();I++)
  {
    IntegerVector column(r);

    int j=0;
    for(IntegerVectorList::const_iterator J=A.begin();J!=A.end();J++)
      {
	column+=(*I)[j]*(*J);
	j++;
      }
    C.push_back(column);
  }
  return C;
}
