failed build with current mercurial sources

Ben Abbott bpabbott at mac.com
Sat Mar 8 21:04:53 CST 2008


On Mar 8, 2008, at 3:09 AM, Jaroslav Hajek wrote:

> thanks, Ben.
> I can't reproduce this error on my normal Octave configuration (gcc  
> 4.2),
> not even running with valgrind reveals any leak. gfortran in gcc 4.0.x
> series is known to be rather buggy (especially in the earlier ones),
> so there might be the source of your problem.
> I have access to an older Fedora 4 system with gcc 4.0.2 - I'll try to
> compile Octave there and reproduce the segfault.

I've attempted to isolate the problem a bit further. Since my c/c++  
skills are non-existent, I did what I could to limit my efforts to m- 
files.

Regarding the qr.cc tests, this is the test that fails

	A = [0.620405 + 0.956953i  0.480013 + 0.048806i  0.402627 + 0.338171i;
	     0.589077 + 0.658457i  0.013205 + 0.279323i  0.229284 + 0.721929i;
	     0.092758 + 0.345687i  0.928679 + 0.241052i  0.764536 + 0.832406i;
	     0.912098 + 0.721024i  0.049018 + 0.269452i  0.730029 + 0.796517i;
	     0.112849 + 0.603871i  0.486352 + 0.142337i  0.355646 +  
0.151496i ];

	u = [0.20351 + 0.05401i;
	     0.13141 + 0.43708i;
	     0.29808 + 0.08789i;
	     0.69821 + 0.38844i;
	     0.74871 + 0.25821i ];

	v = [0.85839 + 0.29468i;
	     0.20820 + 0.93090i;
	     0.86184 + 0.34689i ];

	[Q,R] = qr(A);

up till this point all is well, but  ...

	[Q,R] = qrupdate(Q,R,u,v);

	panic: Segmentation fault -- stopping myself...
	Segmentation fault

I took a look at qr.cc and noticed that all real matrices were handled  
differently from the complex case.

When I tried

	A = real(A);
	u = real(u);
	v = real(v);
	[Q,R] = qr(A);
	[Q,R] = qrupdate(Q,R,u,v);
	assert(norm(vec(Q'*Q - eye(5)),Inf) < 1e1*eps)
	assert(norm(vec(triu(R)-R),Inf) == 0)
	assert(norm(vec(Q*R - A - u*v'),Inf) < norm(A)*1e1*eps)

No crash occurred, and all tests passed.

At this point, it appears that I must dare to wade into c/c++ waters ;-)

I'd appreciate some help/advise as to what to do next. I assume I'll  
be using gdb. However, since I a complete novice please be as explicit  
as possible.

Thanks,
Ben







-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.cae.wisc.edu/pipermail/bug-octave/attachments/20080308/a2e0d597/attachment.html 


More information about the Bug-octave mailing list