bugGNU Octave - Bugs: bug #43891, Difference in results of test chop...


bug #43891: Difference in results of test chop and __run_test_suite__

Submitter:  Avinoam Kalma <avinoam>
Submitted:  Fri 26 Dec 2014 09:21:43 AM UTC
Category:  Octave Function Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Fixed Assigned to:  None
Originator Name:  Avinoam Kalma Open/Closed:  * Closed
Release:  * 3.8.2 Operating System:  * Microsoft Windows
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup

Sun 25 Jan 2015 06:32:11 AM UTC, comment #5: 

This should be fixed now after the check in for bug #43734.

Rik <rik5>
Group administrator
Tue 06 Jan 2015 02:44:08 AM UTC, comment #4: 

I can confirm this.  I haven't built the MXE code in about a year so that took a few hours to get going again.

For your questions, if you don't set any other options the build scripts will realize that you are targeting a Windows machine and pass the --enable-float-truncate option.  You can also look in the tmp-octave directory while it is being built.  The file config.h will have a definition for FLOAT_TRUNCATE which is the word volatile.

I don't have very good theories about why it would fail when run directly, but not when run through _run_test_suite_.  I suspect it is something to do with register pressure and the CPU being forced to take results out of the special math co-processor registers with 80-bit precision into regular 64-bit registers (IEEE standard).

Rik <rik5>
Group administrator
Tue 06 Jan 2015 02:20:41 AM UTC, comment #3: 

I confirm

Rik <rik5>
Group administrator
Sat 03 Jan 2015 10:21:53 PM UTC, comment #2: 

Thanks for the answer.

I have two questions:

1. How do I compiled MXE-Octave with --enable-float-truncate
2. Why does "test chop" fail, but it doesn't fail in _run_test_suite_?



Avinoam Kalma <avinoam>
Group Member
Mon 29 Dec 2014 04:55:50 PM UTC, comment #1: 

This is most likely due to extra precision being kept in hardware dedicated floating point registers (80 bits vs. 64 bits in IEEE standard).  Octave needs to be compiled with --enable-float-truncate for Windows platforms.  This should be the case by default, but I don't know how the binary from mxeoctave.osuv.de was actually built.

Rik <rik5>
Group administrator
Fri 26 Dec 2014 09:21:43 AM UTC, original submission:  


using windows mxe_octave ver 3.8.2-4 from http://mxeoctave.osuv.de
there is failure in chop (bug 43734).

but running _run_test_suite_ pass all tests without failures.
moreover, running again "test chop", passes all 10 tests.

Any explanation for this strange behaviour?



Avinoam Kalma <avinoam>
Group Member


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

Attach Files:

No files currently attached


   bug dependencies.

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by avinoam (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only project members can vote.


    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-01-25 rik5 StatusConfirmed Fixed
        Open/ClosedOpen Closed
    2015-01-06 rik5 StatusNone Confirmed
    2015-01-06 rik5 Dependencies- Depends on bugs #43741

    Back to the top

    Powered by Savane 3.12.
    Corresponding source code