Apparently TRIQL and LA_TRIQL do different ordering of the resulting eigenvalues. Of course, this was hidden at the very bottom of my code causing a cascade of strange numbers and hours of debugging. If someone has insight into these routines, it would be important to know how each of them orders the results. First example (same order of eigenvalues (d4 elements) returned by both, just reversed - TRIQL in the decreasing order, LA_TRIQL increasing): d4 = [-0.013922532, -0.018753912, -0.026000982, -0.035663742, -0.047742192] ud4 = [0.0000000, 0.082583840, 0.081095721, 0.071235330, 0.053307640] z4 = IDENTITY(5, /double) TRIQL, d4, ud4, z4, /double IDL> PRINT, d4 0.10779511 0.035195967 -0.033131376 -0.096778214 -0.15516485 d4 = [-0.013922532, -0.018753912, -0.026000982, -0.035663742, -0.047742192] ud4 = [0.082583840, 0.081095721, 0.071235330, 0.053307640] LA_TRIQL, d4, ud4, z4, /double IDL> PRINT, d4 -0.15516485 -0.096778214 -0.033131376 0.035195967 0.10779511 Second example, slightly different values, LA_TRIQL same as before (strictly increasing), but TRIQL permutes the first two values (0.039765426 0.12169396)?!: d4 = [-0.018585979, -0.023417359, -0.030664429, -0.040327189, -0.052405639] ud4 = [ 0.0000000, 0.094381532, 0.092680824, 0.081411806, 0.060923017] z4 = IDENTITY(5, /double) TRIQL, d4, ud4, z4, /double IDL> PRINT, d4 0.039765426 0.12169396 -0.037821751 -0.11069443 -0.17834380 d4 = [-0.018585979, -0.023417359, -0.030664429, -0.040327189, -0.052405639] ud4 = [ 0.094381532, 0.092680824, 0.081411806, 0.060923017] z4 = IDENTITY(5, /double) LA_TRIQL, d4, ud4, z4, /double IDL> PRINT, d4 -0.17834380 -0.11069443 -0.037821751 0.039765426 0.12169396
|