Custom Query (43 matches)


Show under each result:

Results (10 - 12 of 43)

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Ticket Resolution Summary Owner Reporter
#37 fixed Non-default zerofill not applied to new datasets bsoher flip
  1. import press_cp0.rsd
  2. set zerofill = 8
  3. import press_cp1.rsd, zerofill remains at the default of 1. It should change to 8.
#36 wontfix Double precison overflow causes hang (infinte loop) in hlsvd flip

Given the right combination of inputs, a call to HLSVD (through our Python interface) hangs. The attached sample code & input demonstrate a specific instance of the problem and a way to experiment with other inputs.

# of data points = 1500, # singular values = 20 produces a hang. # of data points = 1500, # singular values = 10 does not hang.

I tested the f2c-ed version of HLSVD and it behaves the same way.

In the 1500/20 case, the hang occurs in zlascl.f which contains just the subroutine ZLASCL(). One of the params to ZLASCL() is the complex matrix A, and at least one of the values in A is infinity which sends ZLASCL() into an endless loop.

It's not fair to blame this on ZLASCL() since it's probably not meant to handle values like INF and NAN.

The INF originates (is created by) the call to vanmon() in hlsvd.f. vanmon() "calculates the Vandermonde matrix zeta (ndp x k)". It's pretty simple code that's just a big loop, and some print statements show the values march steadily towards the max value expressable by double precision (~1.7e+308), with INF appearing immediately after.

Here's the print statement I used right after the assignment of zeta(i,j) = temp --

PRINT *, REAL(zeta(i,j)), ', ', AIMAG(zeta(i,j))

Many of the subroutines in hlsvd are BLAS/LAPACK functions with updated implementations readily available on the Net. Unfortunately vanmon() is not one of them, so there's no alternate or updated implementation that we can quickly drop in.

Practical Considerations and Workarounds

This presents a nasty problem for us in Analysis.

At present, I can't predict which inputs will result in a hang. We only know a hang has occurred after the fact (i.e when it's too late). It's worth noting that on my Mac, a Python process that's hung up in the infinte loop does not respond to Ctrl+C. I have to kill it with the kill command at the console (or Force Quit in the GUI). For an Analysis user, this could mean lost work.

There are a couple of routes we could follow to avoid this problem.

One attractive option is to prevent the user from entering values that will hang. As I said above, as present I can't predict this. A study of the code by someone who understands the math might produce a formula to predict which values are OK and which are not. But I think the results of vanmon depend not only on # of data points and # of singular values, but also on the input signal (waveform) and there's an infinite number of them. So predicting which inputs will hang is perhaps not so easy.

A less attractive option is to execute HLSVD in a separate process and if the process takes too long (e.g. 10 seconds) then we assume that it is hung, kill it and let the user know that those values probably don't work. This isn't very satisfying, but it's probably better than hanging completely.

#35 fixed Voigt summed data option disabled flip

In util_menu there's a menu item PlotX/Data Type/Summed. It's commented out. Some of the infrastructure is there to handle it, but performance is a dog so it's not enabled.

We should get either make it work or get rid of references to it.

BJS, Jan 2013 - the 'new' plot_panel_spectrum has improved handling of individual plot overlays and interactive phasing. SO I turned the summed/individual option back on and closed this ticket.

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Note: See TracQuery for help on using queries.