Beispiel #1
0
double Det(CMatrix &mat) {
  double dDet=1;
  CVector vdEigenvalues;
  if(! mat.Defined()) {throw ELENotDefined; }
  if(mat.m_pnDimSize[0] != mat.m_pnDimSize[1]) {throw ELEDimensionMisMatch; }

  vdEigenvalues = mat.Eigenvalues();

  for(int i=0; i<vdEigenvalues.m_pnDimSize[0]; i++) {
    dDet *= double(vdEigenvalues[i]);
  } // for i

  if(mat.Allocated()) {delete &mat; } // This should call for the destructor
  return dDet;
} // Det