Ejemplo n.º 1
0
        public int Determinant()
        {
            if ((RowCount == 1) && (ColCount == 1))
            {
                return(data[0][0]);
            }

            var det = new Zp(Prime, 0);

            for (int i = 0; i < ColCount; i++)
            {
                int SubDet   = RemoveRowFromMatrix(0).RemoveColFromMatrix(i).Determinant();
                var SubDetAi = new Zp(Prime, SubDet * data[0][i]);
                if (i % 2 == 0)
                {
                    det.Add(SubDetAi);
                }
                else
                {
                    det.Sub(SubDetAi);
                }
            }
            return(det.Value);
        }