[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: lapack 4.0 and octave
From: |
Tatsuro MATSUOKA |
Subject: |
Re: lapack 4.0 and octave |
Date: |
Sun, 25 Dec 2011 04:09:38 +0900 (JST) |
Hello
lapack-4.0 ?
I think it is lapack-3.4.0.
The PC in my home is old so that I cannot test.
But as far as In remember, the octave with lapack 3.4.0 made some test in
failure.
Now I have return to Lapack 3.3.2.
Regards
Tatsuro
--- On Sun, 2011/12/25, marco atzeri wrote:
> Hi All,
> there is any one testing the last dev with lapack-4.0 ?
>
> I am building lapack-4.0 cygwin package and testing it,
> and I found that octave "make check" aborts on qr.cc tests.
>
> No such problem with previous lapack 3.2.2.
>
> -------------------------------------------------------------------
> octave:2> test /pub/hg/octave/src/DLD-FUNCTIONS/qr.cc verbose
> >>>>> /pub/hg/octave/src/DLD-FUNCTIONS/qr.cc
> ***** test
> a = [0, 2, 1; 2, 1, 2];
>
> [q, r] = qr (a);
>
> [qe, re] = qr (a, 0);
>
> assert (q * r, a, sqrt (eps));
> assert (qe * re, a, sqrt (eps));
> ***** test
> a = [0, 2, 1; 2, 1, 2];
>
> [q, r, p] = qr (a); # not giving right dimensions. FIXME
>
> [qe, re, pe] = qr (a, 0);
>
> assert (q * r, a * p, sqrt (eps));
> assert (qe * re, a(:, pe), sqrt (eps));
> ***** test
> a = [0, 2; 2, 1; 1, 2];
>
> [q, r] = qr (a);
>
> [qe, re] = qr (a, 0);
>
> assert (q * r, a, sqrt (eps));
> assert (qe * re, a, sqrt (eps));
> ***** test
> a = [0, 2; 2, 1; 1, 2];
>
> [q, r, p] = qr (a);
>
> [qe, re, pe] = qr (a, 0);
>
> assert (q * r, a * p, sqrt (eps));
> assert (qe * re, a(:, pe), sqrt (eps));
> ***** error <Invalid call to qr> qr ();
> ***** error <Invalid call to qr> qr ([1, 2; 3, 4], 0, 2);
> ***** function retval = __testqr (q, r, a, p)
> tol = 100*eps (class(q));
> retval = 0;
> if (nargin == 3)
> n1 = norm (q*r-a);
> n2 = norm (q'*q-eye(columns(q)));
> retval = (n1 < tol && n2 < tol);
> else
> n1 = norm (q'*q-eye(columns(q)));
> retval = (n1 < tol);
> if (isvector (p))
> n2 = norm (q*r-a(:,p));
> retval = (retval && n2 < tol);
> else
> n2 = norm (q*r - a*p);
> retval = (retval && n2 < tol);
> endif
> endif
> ***** endfunction
> ***** test
>
> t = ones (24, 1);
> j = 1;
>
> if false # eliminate big matrix tests
> a = rand(5000,20);
> [q,r]=qr(a,0); t(j++) = __testqr(q,r,a);
> [q,r]=qr(a',0); t(j++) = __testqr(q,r,a');
> [q,r,p]=qr(a,0); t(j++) = __testqr(q,r,a,p);
> [q,r,p]=qr(a',0); t(j++) = __testqr(q,r,a',p);
>
> a = a+1i*eps;
> [q,r]=qr(a,0); t(j++) = __testqr(q,r,a);
> [q,r]=qr(a',0); t(j++) = __testqr(q,r,a');
> [q,r,p]=qr(a,0); t(j++) = __testqr(q,r,a,p);
> [q,r,p]=qr(a',0); t(j++) = __testqr(q,r,a',p);
> endif
> a = [ ones(1,15); sqrt(eps)*eye(15) ];
> [q,r]=qr(a); t(j++) = __testqr(q,r,a);
> [q,r]=qr(a'); t(j++) = __testqr(q,r,a');
> [q,r,p]=qr(a); t(j++) = __testqr(q,r,a,p);
> [q,r,p]=qr(a'); t(j++) = __testqr(q,r,a',p);
>
> a = a+1i*eps;
> [q,r]=qr(a); t(j++) = __testqr(q,r,a);
> [q,r]=qr(a'); t(j++) = __testqr(q,r,a');
> [q,r,p]=qr(a); t(j++) = __testqr(q,r,a,p);
> [q,r,p]=qr(a'); t(j++) = __testqr(q,r,a',p);
>
> a = [ ones(1,15); sqrt(eps)*eye(15) ];
> [q,r]=qr(a,0); t(j++) = __testqr(q,r,a);
> [q,r]=qr(a',0); t(j++) = __testqr(q,r,a');
> [q,r,p]=qr(a,0); t(j++) = __testqr(q,r,a,p);
> [q,r,p]=qr(a',0); t(j++) = __testqr(q,r,a',p);
>
> a = a+1i*eps;
> [q,r]=qr(a,0); t(j++) = __testqr(q,r,a);
> [q,r]=qr(a',0); t(j++) = __testqr(q,r,a');
> [q,r,p]=qr(a,0); t(j++) = __testqr(q,r,a,p);
> [q,r,p]=qr(a',0); t(j++) = __testqr(q,r,a',p);
>
> a = [
> 611 196 -192 407 -8 -52 -49 29
> 196 899 113 -192 -71 -43 -8 -44
> -192 113 899 196 61 49 8 52
> 407 -192 196 611 8 44 59 -23
> -8 -71 61 8 411 -599 208 208
> -52 -43 49 44 -599 411 208 208
> -49 -8 8 59 208 208 99 -911
> 29 -44 52 -23 208 208 -911 99
> ];
> [q,r] = qr(a);
>
> assert(all (t) && norm(q*r-a) < 5000*eps);
> ** On entry to DORGLQ parameter number 5 had an illegal value
> Aborted
> ----------------------------------------------------------------------
>
> Before looking on what is different between the two lapack version,
> I will appreciate to know if 4.0 is working fine with octave on other
> platforms or it is a problem also for someone else.
>
> Regards
> Marco
>
>