The program eats 100% CPU and never ends, even with this simple data
set given below.
% echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10
The same example works with harminv 1.3.1-1 built against older
libatlas:
% echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10
frequency, decay constant, Q, amplitude, phase, error
-0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02
-- System Information:
Debian Release: squeeze/sid
APT prefers proposed-updates
APT policy: (500, 'proposed-updates'), (500, 'oldstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (100, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages harminv depends on:
pn libatlas3gf-base | libatlas.s <none> (no description available)
ii libatlas3gf-sse2 [liblapack.s 3.6.0-24 Automatically Tuned Linear Algebra
ii libc6 2.9-19 GNU C Library: Shared libraries
ii libgcc1 1:4.4.0-10 GCC support library
ii libgfortran3 4.4.0-10 Runtime library for GNU Fortran ap
ii libharminv2 1.3.1-2 Library for using harminv
ii libstdc++6 4.4.0-10 The GNU Standard C++ Library v3
harminv recommends no packages.
harminv suggests no packages.
-- no debconf information
--
To UNSUBSCRIBE, email to debian-bugs-...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Versions of packages harminv depends on:
ii libatlas3gf-base [liblapack.s 3.6.0-24 Automatically Tuned Linear Algebra
ii libc6 2.9-12 GNU C Library: Shared libraries
ii libgcc1 1:4.3.3-7 GCC support library
ii libgfortran3 4.3.3-7 Runtime library for GNU Fortran ap
ii libharminv2 1.3.1-2 Library for using harminv
ii liblapack3gf [liblapack.so.3g 3.2.1-1 library of linear algebra routines
ii libstdc++6 4.3.3-7 The GNU Standard C++ Library v3
sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv 0-10
frequency, decay constant, Q, amplitude, phase, error
-0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02
So for what reason do you think that it is a problem of harminv and not
of some library?
Thorsten
Have you read the bug report? The problem is obviously related with a
library, namely with libatlas. Try to install libatlas3gf-sse2 3.6.0-24
(if your CPU supports SSE2) to reproduce the problem. However, what
triggers entering this infinite loop - the bug in the library or
something in harminv - this cannot be judged easily, that is why I
reported this bug first to harminv. From the technical point of view it
can be even a problem of the compiler but I think you do not expect me
to report this bug to gcc folks first?
Btw, meep that uses libharminv internally also has the same problem.
Sorry, you are right, I did not read your report carefully enough.
The trouble seems to be in a call to LAPACK function ZGEEV which does not
return. First the results without libatlas3gf-sse2 (lines beginning with
DDD are only in my local version of harminv):
sid-vm:~# apt-get remove libatlas3gf-sse2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libatlas3gf-sse2 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv -v 0-10
# harminv: 11 inputs, dt = 1
frequency, decay constant, Q, amplitude, phase, error
# searching frequency range 0 - 10
# using 100 spectral basis functions, density 0.909091
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
DDD harminv.c 497: solve_eigenvects: ZGEEV start
DDD harminv.c 499: solve_eigenvects: ZGEEV end
-0.103148, 2.214556e-02, 14.6326, 0.106908, -1.64183, 3.886296e-02
0.103148, 2.214556e-02, 14.6326, 0.106908, 1.64183, 3.886296e-02
# harminv: 2/2 modes are ok: errs <= 1.000000e-01 and inf * 3.886296e-02
, amps >= 0, -1.000000e+00 * 0.106908, |Q| >= 10
Now the results with libatlas3gf-sse2 installed:
sid-vm:~# apt-get install libatlas3gf-sse2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libatlas3gf-sse2
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/5713kB of archives.
After this operation, 19.2MB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously deselected package libatlas3gf-sse2.
(Reading database ... 101324 files and directories currently installed.)
Unpacking libatlas3gf-sse2 (from .../libatlas3gf-sse2_3.6.0-24_i386.deb) ...
Setting up libatlas3gf-sse2 (3.6.0-24) ...
sid-vm:~# echo 0 0.1 0.2 0.2 0.1 0 -0.1 -0.2 -0.2 -0.1 0 | harminv -v 0-10
# harminv: 11 inputs, dt = 1
frequency, decay constant, Q, amplitude, phase, error
# searching frequency range 0 - 10
# using 100 spectral basis functions, density 0.909091
DDD harminv.c 497: solve_eigenvects: ZGEEV start
So if you don't mind, the harminv bug can be closed and reopened for
libatlas3gf-sse2
Thorsten