unexpected make check failure

John W. Eaton jwe at bevo.che.wisc.edu
Tue Aug 26 15:36:28 CDT 2008


On 26-Aug-2008, Kai Habel wrote:

| John W. Eaton schrieb:
| > On 26-Aug-2008, Kai Habel wrote:
| >
| > | I am trying to set up my octave environment on a X86-64 machine 
| > | (OpenSuse11). I have compiled SuiteSparse for myself (unfortunately no 
| > | OpenSuse package). So far everything went well, but with a very recent 
| > | checkout I see one unexpected failure:
| > | 
| > |  >>>>> processing /home/kai/hg-octave/octave/src/DLD-FUNCTIONS/chol.cc
| > |    15   ***** test
| > |    16  R = chol(single(Ac));
| > |    17
| > |    18  R1 = cholupdate(R,single(uc));
| > |    19
| > |    20  assert(norm(triu(R1)-R1,Inf) == 0)
| > |    21  assert(norm(R1'*R1 - R'*R - single(uc*uc'),Inf) < 1e1*eps('single'))
| > |    22
| > |    23  R1 = cholupdate(R1,single(uc),"-");
| > |    24
| > |    25  assert(norm(triu(R1)-R1,Inf) == 0)
| > |    26  assert(norm(R1 - R,Inf) < 1e1*eps('single'))
| > |    27 !!!!! test failed
| > |    28 assert (norm (R1 - R, Inf) < 1e1 * eps ('single')) failedshared 
| > | variables {
| > |    29   A =
| > |    30
| > |    31      0.436997  -0.131721   0.124120  -0.061673
| > |    32     -0.131721   0.738529   0.019851  -0.140295
| > |    33      0.124120   0.019851   0.354879  -0.059472
| > |    34     -0.061673  -0.140295  -0.059472   0.600939
| > |    35
| > |    36   u =
| > |    37
| > |    38      0.98950
| > |    39      0.39844
| > |    40      0.63484
| > |    41      0.13351
| > |    42
| > |    43   Ac =
| > |    44
| > |    45    Columns 1 through 3:
| > |    46
| > |    47      0.55855 + 0.00000i  -0.16621 - 0.03153i   0.01079 + 0.02364i
| > |    48     -0.16621 + 0.03153i   0.67601 + 0.00000i   0.00115 - 0.04755i
| > |    49      0.01079 - 0.02364i   0.00115 + 0.04755i   0.62631 + 0.00000i
| > |    50     -0.02768 + 0.01861i   0.01460 - 0.02476i  -0.15858 + 0.07198i
| > |    51
| > |    52    Column 4:
| > |    53
| > |    54     -0.02768 - 0.01861i
| > |    55      0.01460 + 0.02476i
| > |    56     -0.15858 - 0.07198i
| > |    57      0.60342 + 0.00000i
| > |    58
| > |    59   uc =
| > |    60
| > |    61      0.54267 + 0.91519i
| > |    62      0.99647 + 0.43141i
| > |    63      0.83760 + 0.68977i
| > |    64      0.39160 + 0.90378i
| > |    65
| > |    66 }
| > |    67 >>>>> processing /home/kai/hg-octave/octave/src/DLD-FUNCTIONS/conv2.cc
| >
| > To debug this problem, you'll need to find out precisely what is
| > failing.  What happens when you run the following code?
| >
| >   A = [ 0.436997 -0.131721  0.124120 -0.061673;
| >        -0.131721  0.738529  0.019851 -0.140295;
| >         0.124120  0.019851  0.354879 -0.059472;
| >        -0.061673 -0.140295 -0.059472  0.600939 ];
| >
| >   u = [ 0.98950;
| >         0.39844;
| >         0.63484;
| >         0.13351 ];
| >
| >   Ac = [ 0.5585528+0.0000000i -0.1662088-0.0315341i  0.0107873+0.0236411i -0.0276775-0.0186073i;
| >         -0.1662088+0.0315341i  0.6760061+0.0000000i  0.0011452-0.0475528i  0.0145967+0.0247641i;
| >          0.0107873-0.0236411i  0.0011452+0.0475528i  0.6263149-0.0000000i -0.1585837-0.0719763i;
| >         -0.0276775+0.0186073i  0.0145967-0.0247641i -0.1585837+0.0719763i  0.6034234-0.0000000i];
| >
| >   uc = [ 0.54267+0.91519i;
| >          0.99647+0.43141i;
| >          0.83760+0.68977i;
| >          0.39160+0.90378i ];
| >
| >   R = chol(single(A));
| >
| >   R1 = cholupdate(R,single(u));
| >   R1 = cholupdate(R1,single(u),"-");
| >
| >   norm(R1 - R,Inf)
| >   1e1*eps('single')
| >
| >
| > jwe
| >   
| Sure,
| 
| here it is:
| 
| 
| octave:1> A = [ 0.436997 -0.131721  0.124120 -0.061673;
|  >        -0.131721  0.738529  0.019851 -0.140295;
|  >         0.124120  0.019851  0.354879 -0.059472;
|  >        -0.061673 -0.140295 -0.059472  0.600939 ];
| octave:2>
| octave:2>   u = [ 0.98950;
|  >         0.39844;
|  >         0.63484;
|  >         0.13351 ];
| octave:3>
| octave:3>   Ac = [ 0.5585528+0.0000000i -0.1662088-0.0315341i  
| 0.0107873+0.0236411i -0.0276775-0.0186073i;
|  >         -0.1662088+0.0315341i  0.6760061+0.0000000i  
| 0.0011452-0.0475528i  0.0145967+0.0247641i;
|  >          0.0107873-0.0236411i  0.0011452+0.0475528i  
| 0.6263149-0.0000000i -0.1585837-0.0719763i;
|  >         -0.0276775+0.0186073i  0.0145967-0.0247641i 
| -0.1585837+0.0719763i  0.6034234-0.0000000i];
| octave:4>
| octave:4>   uc = [ 0.54267+0.91519i;
|  >          0.99647+0.43141i;
|  >          0.83760+0.68977i;
|  >          0.39160+0.90378i ];
| octave:5>
| octave:5>   R = chol(single(A));
| octave:6> R
| R =
| 
|    0.66106  -0.19926   0.18776  -0.09329
|    0.00000   0.83596   0.06850  -0.19006
|    0.00000   0.00000   0.56119  -0.05156
|    0.00000   0.00000   0.00000   0.74394
| 
| octave:7> R1 = cholupdate(R,single(u));
| octave:8>   R1 = cholupdate(R1,single(u),"-");
| octave:9>
| octave:9>   norm(R1 - R,Inf)
| ans =  3.1292e-07
| octave:10>   1e1*eps('single')
| ans =  1.1921e-06

OK, so it looks like the test succeeds when you run it by hand.  Am I
misreading which test is failing?  If you want to fix this, then I
think you are going to have to track down precisely what is failing.
I can't reproduce the problem and I don't see the error here.

jwe


More information about the Bug-octave mailing list