#pragma once template struct Matrix{ size_t x; size_t y; T** mat; }; template void destroy(Matrix *ret,size_t x){ for(size_t i=0;imat[i]; delete [] ret->mat; delete ret; }; template void matrix_print( Matrix *gls){ for(size_t s=0;sx;s++){ for(size_t i=0;iy;i++) fprintf(stderr,"\t%f",gls->mat[s][i]); fprintf(stderr,"\n"); } } template Matrix *alloc(size_t x,size_t y){ Matrix *ret = new Matrix; ret->x=x;//+1; ret->y=y; ret->mat= new T*[ret->x]; for(size_t i=0;ix;i++) ret->mat[i]=new T[ret->y]; ret->x=0; return ret; }; template void destroy(std::vector< Matrix * > &gls,size_t x){ for(size_t i=0;i