Re: [ROOT] problem matrix invertion

From: Edmond Offermann (edmondoffermann@yahoo.com)
Date: Thu Dec 02 2004 - 15:49:37 MET


Hi Nicolas,

I hope you read release notes . The linear algebra package has been
completely rewritten !! after 3.05 and suppose to be better ..........

In your upgrade please pay attention to the fact that internally
matrix elements are now stored row-wise instead of column-wise .
This could be important if your matrix is non-symmetric AND
you fill it by directly accessing the internal storage .

Now coming to your problem . To make a long story short, you
probably had the same feature before but did not notice it .
If you call the Invert(Double_t &det) with a the determinant address
!=0
the invert is calculating the determinant but now starts complaining
when the
this number is so large or small that it can not be represented anymore
as
a double .
A way to avoid the warning is the make the call without the "det"
argument
and later do a call to Determinant(Double_t& d1, Double_t& d2) where
the determinant is d1 * 2^d2 .

Maybe have a look tutorials/invertMatrix.C which shows/explains several
(better) ways to do the inversion .

What do you mean by "recuperating a status" ??

Eddy
--- PRODUIT Nicolas <Nicolas.Produit@obs.unige.ch> wrote:

> Hi,
> 
> has something changed in matrix inversion code lately?
> I have code that is working with ROOT version 3.04.02
> on linux and solaris.
> We try now to migrate to a more uptodate ROOT.
> We have tried ROOT 4.00.08 and ROOT 4.01.02
> 
> Both version give warnings:
> Warning in <InvertLU>: Determinant under/over-flows double: det=
> 0.0893 2180
> and the result is garbage.
> I will try to dump the matrix before the call to make a simple
> example.
> But if you have already an idea in the mean time...
> 
> By the way, I also need a way to disable messages and rather
> recuperate
> a status. Those messages clash
> with our error reporting method. Is that possible?
> 
> Thanks
> 
> -- 
> Nicolas Produit
> INTEGRAL Science Data Center    Phone:  +41 22 950 91 40
> 16, Chemin d'Ecogia             Fax:    +41 22 950 91 33
> CH-1290 Versoix                 www:    http://isdc.unige.ch/~produit
> Phone after 10 Dec 2004:  +41 22 379 21 40
> 
> 



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET