octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: porting arapck code to octave


From: David Bateman
Subject: Re: porting arapck code to octave
Date: Sat, 20 Dec 2008 17:23:34 +0100
User-agent: Mozilla-Thunderbird 2.0.0.17 (X11/20081018)

Jaroslav Hajek wrote:
1. rather than your MY_LOCAL_BUFFER, you can use the pre-defined
OCTAVE_LOCAL_BUFFER_INIT.

2. the following snippet:
                  for (octave_idx_type i = 0; i < n; i++)
                    workd[i+ipntr[1]-1] = static_cast<double>(i) * 
workd[i+ipntr[0]-1];
is obviously not multiplying by diag(1:100), but by diag(0:99).

3.
              retval(1) = eig_val;
              retval(2) = eig_vec;

should read

              retval(0) = eig_val;
              retval(1) = eig_vec;

after correcting these problems, I get the correct answer:
ans =

    97.000
    98.000
    99.000
   100.000

regards



Unfortunately, that doesn't work for me as it never gets to point 3) and in any case point 2) would just mean the eigenvalues that are found should be [99, 98, 97, 96]... The code has an internal error in the arpack function dsaupd (error number -9999).. However, as it seems to work for you the question is why it works for you and not me...

Basically, I can only see compiler/linker issues as a reason at the moment.. I compiled with gfortran version 4.3.2 and the flags

FFLAGS  = -O2 -fPIC

and linked dssimp.oct against the shared version of the library. What did you do differently?

D.


--
David Bateman                                address@hidden
35 rue Gambetta                              +33 1 46 04 02 18 (Home)
92100 Boulogne-Billancourt FRANCE            +33 6 72 01 06 33 (Mob)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]