Witam!
Mam za zadanie zrobić szablon macierzy z liczeniem wyznacznika i odwracaniem. Jak do tej pory, nie mogę sobie poradzić z tym pierwszym....

Mój kod:

template<class T>
class matrix
{
    public:
    vector< vector<T> > s;
    int rows;
    int cols;
}

A tutaj fragment odpowiedzialny za liczenie wyznacznika (znaleziony na necie i trochę przerobiony):

        double deta(int n, vector< vector<T> >m1)
        {
            int k1; 
            vector< vector<T> >m2(rows, vector<T>(cols));
            double det=0;
       
            if (n==1)
            { 
                return m1[0][0];
            } 
            else
            {
                for (k1=0; k1<n; k1++)
                {
                    
                    minor(k1, n, m1, m2); 
                    det = det + potega(k1) * m1[0][k1] * deta(n-1,m2); 
                }
            }
            return det;
        }
        
        void minor(int k1, int n, vector< vector<T> >(m1),  vector< vector<T> >m2)
        {
            int u,v;
            for(v=0; v<n-1; v++)
            {
                for(u=0; u<k1; u++)
                {
                    m2[v][u] = m1[v+1][u];
                }
                for(u=k1+1; u<n; u++)
                {
                    m2[v][u-1] = m1[v+1][u];       
                }
            }
        }

        
        int potega(int k1)
        {
            if ((k1%2)==1) return -1;
            else return 1;
        }

Mój cel to aby działało, nie musi być to jakoś pięknie napisane ;).

Co jest źle?

Pozdrawiam, Ziem!