Problem in Linear Algebra module

Jun 13, 2012 at 7:09 AM

Hello,

I am testing your Iridium library (MathNet.Iridium-2008.8.16.470). Identical library is included into MathNet Numerics. I probably found a bug in LinearAlgebra:

ComplexVector^ v = gcnew ComplexVector( Convert::ToInt32( N ) );
EigenvalueDecomposition^ eig = gcnew EigenvalueDecomposition( C );  // ERROR HERE
B = eig->EigenVectors;
v = eig->EigenValues;
delete( eig );
Values in C are smaller than 1e-10.

I get:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at MathNet.Numerics.LinearAlgebra.EigenvalueDecomposition.SymmetricDiagonalize()
   at MathNet.Numerics.LinearAlgebra.EigenvalueDecomposition..ctor(Matrix Arg)
   at LAL.Form1.Form1_Load(Object sender, EventArgs e) in c:\1\lal\lal\form1.h:line 533
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
LAL
    Assembly Version: 1.0.4546.22623
    Win32 Version: 
    CodeBase: file:///c:/1/LAL/Release/LAL.exe
----------------------------------------
msvcm90
    Assembly Version: 9.0.30729.1
    Win32 Version: 9.00.30729.1
    CodeBase: file:///C:/WINDOWS/WinSxS/x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e/msvcm90.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
MathNet.Iridium
    Assembly Version: 2008.8.16.470
    Win32 Version: 2008.8.16.470
    CodeBase: file:///c:/1/LAL/Release/MathNet.Iridium.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



Can you fix it ? I can send you source code. 

Many thanks 

Jerry 

Coordinator
Jul 14, 2012 at 8:36 AM

Would it work to use Math.NET Numerics instead of the predecessor Iridium (Iridium is *not* part of Math.NET Numerics)? The linear algebra decompositions have been revised there.

Thanks,
Christoph