close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 18 years ago

Closed 18 years ago

#503 closed defect (fixed)

Kernel function makes TOL to crash

Reported by: César Pérez Álvarez Owned by: Víctor de Buen Remiro
Priority: high Milestone:
Component: Math Version: 1.1.5
Severity: critical Keywords:
Cc: César Pérez Álvarez

Description

If We try this code:


Matrix A = SetMat(SetOfSet
(

SetOfReal(1,1,1)

));

Matrix Kernel(A);


We obatain this Warning message before TOL crashes.

2007/08/26 19:10:40 :
Empieza Kernel(1,3)<W>
Warning: [1] <W>Intento de multiplicación de una matriz vacía.</W>
</W>

AX.FrobeniusNorm()=0
<W>
Warning: [2] <W>Intento de multiplicación de una matriz vacía.</W>
</W>

Change History (8)

comment:1 Changed 18 years ago by Víctor de Buen Remiro

Owner: changed from danirus to Víctor de Buen Remiro

comment:2 Changed 18 years ago by Víctor de Buen Remiro

bug_file_loc: http://cvs.tol-project.org/viewcvs.cgi/tol_tests/tol/Bugzilla/bug_000503
Resolution: fixed
Status: newclosed

Problem has been fixed in CVS in both versions 1.1.5 (official) and 1.1.6 (development head). The corresponding binary versions will be updated next, along with other errors and improvements that are being carried out at the moment.

Previous implementation supposed that matrix had more or equal rows that columns, but this is not a mandatory condition due to kernel is defined for any linear transformation.

Thanks to report it

comment:3 Changed 18 years ago by Víctor de Buen Remiro

comment:4 Changed 18 years ago by Víctor de Buen Remiro

Bug has been fixed in both TOL builds that are available at

v1.1.5 b.16 2007-08-27 17:19:50 i686-win
http://www.tol-project.org/pub/bin/win/tolbase-1.1.5-setup.exe

v1.1.6 b.0.19.alpha 2007-08-27 17:38:11 i686-win
http://www.tol-project.org/pub/bin/win/tolbase-1.1.6-setup.exe

comment:5 Changed 18 years ago by César Pérez Álvarez

Cc: César Pérez Álvarez added
Resolution: fixed
Status: closedreopened

Now, this code does not crash TOL

Matrix A = SetMat(SetOfSet
(

SetOfReal(1,1,1)

));

Matrix k = Kernel(A)

... but k is not a basis of Ax=0

I think that we are generating only a vector and not a basis, maybe recursion is not working, because I tried Kernel with a Matrix 1x4 and I obtained only a orthonormal vector.

comment:6 Changed 18 years ago by Víctor de Buen Remiro

The trace of

http://cvs.tol-project.org/viewcvs.cgi/tol_tests/tol/Bugzilla/bug_000503

tell us

A=
1; 1; 1;

K=
0.542916505481256;
0.256681171140052;
-0.799597676621307;

A*K=
3.33066907387547e-016;

This number is an acceptable numerical rounding error, so A*K is 0 and K is a base of the kernel of A.

Way do you think it's not the kernel?

comment:7 Changed 18 years ago by Víctor de Buen Remiro

Ok, there are vectors of kernel taht are not represented by this vector, so the base is incomplete.

comment:8 Changed 18 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

There was an error in the updating of the system for each iteration, so it stoped allways after first iteration for matrices like these.

Problem has been fixed in CVS in both versions 1.1.5 (official) and 1.1.6
(development head) and the corresponding binary versions

Thanks to report it

Note: See TracTickets for help on using tickets.