bugGNU Octave - Bugs: bug #49470, [MXE] eig.cc-tst failure in...

 
 

bug #49470: [MXE] eig.cc-tst failure in __run_test_suite__.m with 64-bit-Octave

Submitted by:  Philip Nienhuis <philipnienhuis>
Submitted on:  Fri Oct 28 15:45:04 2016  
 
Category: Octave FunctionSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Incorrect Result
Status: ConfirmedAssigned to: None
Originator Name: Philip NienhuisOpen/Closed: Open
Release: devOperating System: Microsoft Windows

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Sun Feb 26 23:21:45 2017, comment #15:

I agree with Avinoam's suggestion in Comment #5. It is enough to test that both methods give a correct result within tolerance and we do not need to check whether the results are identical.

Nir Krakauer <nir_krakauer>
Sun Feb 26 16:47:29 2017, comment #14:

Trying to add Nir and Carnë again since it did not work the last time.

Markus Mützel <mmuetzel>
Project Member
Sun Feb 26 16:43:31 2017, comment #13:

This test still fails in Octave 4.2.1 64bit on Windows 10.
If I understand the discussion in patch #8960 correctly, the failing test was added to check if the correct algorithm (qz or chol) is used.
The failing test could indicate one of the following:
- The wrong algorithm is used on Windows 64bit in that particular case.
- The indicated algorithm is used but the results match nevertheless. Maybe due to lower rounding errors on the higher bit system (wild guess!).

In the first case, something might be wrong with the code in eig.
In the second case, the test does not really check what it is supposed to and should be changed for a better one.

I do not know by far enough about matrix decomposition to help in any of these cases.
Adding Nir and Carnë in CC since they were involved in the original patch.

Markus Mützel <mmuetzel>
Project Member
Thu Nov 17 17:15:27 2016, comment #12:

The bug is still present because no one has worked on it. See my comment #9. We know which cset introduced the failing test. The BIST test appear to need re-writing so that they use a tolerance.

Rik <rik5>
Project Administrator
Thu Nov 17 06:46:48 2016, comment #11:

Still present in 4.3.0+, so I assume 4.2.0 is also affected.

My build dates from Nov. 15, latest revision included =
http://hg.savannah.gnu.org/hgweb/octave/rev/5b1fdeb1aa04 (remove oct-alloc.h)

Release => dev

Philip Nienhuis <philipnienhuis>
Project Member
Thu Nov 17 03:57:46 2016, comment #10:

Updating release to 4.2.0, I'm assuming this still affects the stable release.

Mike Miller <mtmiller>
Project Administrator
Wed Nov 2 15:56:48 2016, comment #9:

These tests are a new addition in this cset:

I've added Barbara to the CC list for this bug. Maybe she knows why the tests were written in this manner.

It seems odd to me that is_qz_accurate and is_chol_accurate are always either true or false. Won't this depend on the actual HW/SW system? There is no prior test that would make these values dependent on the actual platform Octave is being used on.

One way around this, as Avinoam suggests, is to compare with a tolerance in assert, rather than using isequal which requires absolute equality.

Rik <rik5>
Project Administrator
Tue Nov 1 23:21:14 2016, comment #8:

The difference could be due to sse (default on 64-bit)
vs fp87 (on 32-bit) floating point path.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Tue Nov 1 21:50:46 2016, comment #7:

I do not know if the computations are the same for 32 and 64-bit.
try for example

On 32-bit version and 64-bit version (on the same machine).

Avinoam Kalma <avinoam>
Project Member
Tue Nov 1 20:36:16 2016, comment #6:

This makes me wonder why there's a difference at all between 32-bit and 64-bit Windows builds; isn't it only integer math that is affected?
AFAIK the word size for doubles and singles is equal for both 32-bit and 64-bit builds.

Philip Nienhuis <philipnienhuis>
Project Member
Tue Nov 1 11:32:43 2016, comment #5:

The problem is with

The test is

In 32 bit version

So

pass.

In 64 bit

so AV2 = AV2D2 and the test fails*.

Actually this test looks wrong. it does not check the correct values of V1, V2. It checks if D1, D2 are close enough to the unit matrix, and if D2 is close enough, the test fails.

I suggest to replace the test with checking the values of V1, V2 with tolernce, something like

Avinoam Kalma <avinoam>
Project Member
Mon Oct 31 22:04:20 2016, comment #4:

Confirmed with octave-4.2.0-rc3-w64-installer.exe

Avinoam Kalma <avinoam>
Project Member
Sun Oct 30 15:08:45 2016, comment #3:

Title adapted.

(w. 32-bit octave on 64-bit Windows things work well, but not with a 64-bit octave build, Note: not 64-bit indexing I haven't tried that)

Philip Nienhuis <philipnienhuis>
Project Member
Sat Oct 29 19:02:55 2016, comment #2:

Same here: works fine on a 32-bit mxe-octave 4.3.0+

Philip Nienhuis <philipnienhuis>
Project Member
Sat Oct 29 13:34:44 2016, comment #1:

I did not see this problem with 32bit version

Avinoam Kalma <avinoam>
Project Member
Fri Oct 28 15:45:04 2016, original submission:

The last months I consistently see an eig.cc-tst failure with --enable-windows-64 configured MXE cross-builds when running _run_test_suite_.m.
From fntests.log:

Philip Nienhuis <philipnienhuis>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Digest:
   patch dependencies.

Digest:
   bug dependencies.

 

Carbon-Copy List
  • -unavailable- added by nir_krakauer (Posted a comment)
  • -unavailable- added by mmuetzel
  • -unavailable- added by mmuetzel
  • -unavailable- added by mmuetzel (Posted a comment)
  • -unavailable- added by mtmiller (Posted a comment)
  • -unavailable- added by rik5 (Could you take a look at this bug related to a patch for eig you submitted?)
  • -unavailable- added by rik5 (Posted a comment)
  • -unavailable- added by dasergatskov (Posted a comment)
  • -unavailable- added by avinoam (Posted a comment)
  • -unavailable- added by philipnienhuis (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 14 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun Feb 26 16:46:58 2017mmuetzelCarbon-Copy-=>Added nir_krakauer
      Carbon-Copy-=>Added carandraug
    Sun Feb 26 16:43:31 2017mmuetzelReleasedev=>4.2.1
      Dependencies-=>Depends on patch #8960
    Sun Feb 26 16:10:27 2017mmuetzelDependencies-=>bugs #50402 is dependent
    Thu Nov 17 06:46:48 2016philipnienhuisRelease4.2.0=>dev
    Thu Nov 17 03:57:46 2016mtmillerRelease4.2.0-rc3=>4.2.0
    Wed Nov 2 19:11:28 2016mtmillerDependencies-=>bugs #49517 is dependent
    Wed Nov 2 15:56:48 2016rik5Carbon-Copy-=>Added -unavailable-
    Mon Oct 31 22:04:20 2016avinoamStatusNone=>Confirmed
      Releasedev=>4.2.0-rc3
    Sun Oct 30 15:08:45 2016philipnienhuisSummary[MXE] eig.cc-tst failure in _run_test_suite_.m on 64-bit machines=>[MXE] eig.cc-tst failure in _run_test_suite_.m with 64-bit-Octave
    Fri Oct 28 23:21:12 2016rik5Carbon-CopyRemoved 72865=>-
    Fri Oct 28 23:20:58 2016rik5Summary[ME] eig.cc-tst failure in _run_test_suite_.m=>[MXE] eig.cc-tst failure in _run_test_suite_.m on 64-bit machines

    Back to the top


    Powered by Savane 3.1-cleanup1