* [#15163](https://bugzilla.scilab.org/15163): `getdate` page: The time referential was obscure: a) UTC for Unix Time Convention vs Coordinated Universal Time. b) unclear influence of the time zone.
* [#15226](https://bugzilla.scilab.org/15226): The `get` page needed to be overhauled: `get(0)`, `get(0,prop)`, `get(tag)`, `get(tag,prop)` and other features were not documented.
* [#15280](https://bugzilla.scilab.org/15280): `gsort` was unable to sort any hypermatrix along dimensions > "r"|"c".
+* [#15330](https://bugzilla.scilab.org/15330): spec.tst was crashing on Linux.
* [#15839](https://bugzilla.scilab.org/15839): `gsort`: the only sparse possible input were real or complex vectors, and only with the `g` method.
* [#15841](https://bugzilla.scilab.org/15841): `intersect` did not support neither sparse boolean nor sparse numeric inputs.
* [#15842](https://bugzilla.scilab.org/15842): `unique` could not process 2D sparse matrices.
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;
}
static int zgeevWorkSizes(int iCols, int lhs, int* optWorkSize, int* minWorkSize)
{
int info = 0, query = -1;
+ double rwork;
doublecomplex opt;
- C2F(zgeev)("N", (lhs == 1 ? "N" : "V"), &iCols, NULL, &iCols, NULL, NULL, &iCols, NULL, &iCols, &opt, &query, NULL, &info );
+ C2F(zgeev)("N", (lhs == 1 ? "N" : "V"), &iCols, NULL, &iCols, NULL, NULL, &iCols, NULL, &iCols, &opt, &query, &rwork, &info );
*optWorkSize = (int)opt.r;
*minWorkSize = Max(1, 2 * iCols);
return info;
{
int info = 0, query = -1;
double opt;
- C2F(dgeev)("N", "N", &iCols, NULL, &iCols, NULL, NULL, NULL, &iCols, NULL, &iCols, &opt, &query, &info);
+ C2F(dgeev)("N", (lhs == 1 ? "N" : "V"), &iCols, NULL, &iCols, NULL, NULL, NULL, &iCols, NULL, &iCols, &opt, &query, &info);
*optWorkSize = (int)opt;
*minWorkSize = (lhs == 2) ? Max(1, 4 * iCols) : Max(1, 3 * iCols);