Question: remove sub-list from a list


I have been working on Maxima and minima, I am able to extract the eigen values for the expression.
Based on following conditions I am able to find out the critical point is maxima or minima or saddle or inconsistant

If all the eigenvalues are positive, the point is a minimum.
If all the eigenvalues are all negative, it's a maximum.
If some eigenvalues are positive, some are negative, and none are zero, then it's a saddle point.
If any eigenvalues are zero, the test is inconclusive


I want to return all the critical points and their extrema.
just for example : For one perticular function I got a Eigen values as which I can find using sign function.

EigenValues := [[-.381966011250105+0.*I, -2.61803398874989+0.*I], [.414213562373095+0.*I, -2.41421356237309+0.*I]]
signDetails := [seq([seq(sign(EigenValues[i][j]), j = 1 .. nops(EigenValues[i]))], i = 1 .. nops(EigenValues))] #

 signDetails :=[[-1, -1], [1, -1]]

Now if I have a 0 in a list. Sign function returns 1 for 0, which is incorrect. How can I handle such conditions


if I have


EigenValues := [[-.381966011250105+0.*I, -2.61803398874989+0.*I], [.414213562373095+0.*I, -2.41421356237309+0.*I], [0, 2]]

I would like to have output [[-1, -1], [1, -1], [0, 1]],

I would like to know how is it possible return output based on above list

in this case my return shouble something like this [maxima, saddle, inconclusive].

Thank you

Please Wait...