if (_iRetCount == 2)
{
vGetPointerFromDoubleComplex((doublecomplex*)pDataA, pDblA->getSize(), pDblEigenVectors->getReal(), pDblEigenVectors->getImg());
- vFreeDoubleComplexFromPointer((doublecomplex*)pDataA);
expandToDiagonalOfMatrix(pDblEigenValues->getReal(), pDblA->getCols());
out.push_back(pDblEigenVectors);
}
out.push_back(pDblEigenValues);
pDblA->killMe();
+ vFreeDoubleComplexFromPointer((doublecomplex*)pDataA);
}
else // not symmetric
{
if (_iRetCount == 2)
{
+ if (pDblEigenVectors)
+ {
+ pDblEigenVectors->killMe();
+ }
expandToDiagonalOfMatrix(pDblEigenValues->getReal(), pDblA->getCols());
out.push_back(pDblA);
}
if (iRet < 0)
{
pDblA->killMe();
+ if (pDblEigenVectors)
+ {
+ pDblEigenVectors->killMe();
+ }
Scierror(998, _("%s: On entry to ZHEEV parameter number 3 had an illegal value (lapack library problem).\n"), "spec");
return types::Function::Error;
}
if (iRet > 0)
{
pDblA->killMe();
+ if (pDblEigenVectors)
+ {
+ pDblEigenVectors->killMe();
+ }
Scierror(24, _("%s: The QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed. Elements and %d+1:N of WR and WI contain eigenvalues which have converged.\n"), "spec", iRet);
return types::Function::Error;
}