On Tue, Jul 6, 2010 at 1:20 PM, Robin <robince@gmail.com> wrote:
On Tue, Jul 6, 2010 at 7:43 PM, Pauli Virtanen <pav@iki.fi> wrote:
> Tue, 06 Jul 2010 11:53:22 -0600, Charles R Harris wrote:
> [clip]
>> Let's get this thread back to the errors. The problems seem specific to
>> the python.org amd64 python, is that correct?
>
> The SuperLU failures puzzle me. It should be "straightforward" C code,
> and I don't understand what can go wrong there. The "Factor is exactly
> singular" error indicates essentially means that SuperLU thinks it
> detects a zero pivot or something, so something seems to fail at a fairly
> low level.
>
> This seems quite difficult to debug without a Win-64 at hand.
>
> Another thing is that Gohlke's binaries are also built against MKL, and
> SuperLU does call BLAS routines. I wonder if something can break because
> of that...
>
> @Robin: Also, for the cases where a wrong result is produced with no
> error: is it easy to write a small test program demonstrating this? If
> yes, could you write one?

Yes, below is a simple example. On my mac it works:
In [10]: run -i sptest.py
[-0.34841705 -0.23272338  0.27248558]
[-0.34841705 -0.23272338  0.27248558]

On the 64bit windows installation:
In [7]: run -i spsolve_test.py
[ 0.08507826  1.04401349 -1.56609783]
[-0.52208434 -1.48101957 -1.56609783]
In [8]: run -i spsolve_test.py
[ 0.71923676 -0.12209489 -0.16069061]
[-0.2827855   0.55854616 -0.16069061]

import numpy as np
import scipy as sp
import scipy.sparse.linalg

Adense = np.matrix([[ 0.,  1.,  1.],
       [ 1.,  0.,  1.],
       [ 0.,  0.,  1.]])
As =  sp.sparse.csc_matrix(Adense)
x = np.random.randn(3)
b = As.matvec(x)

print x
print sp.sparse.linalg.spsolve(As, b)

Is x the same on both machines?

Chuck