bugGNU Octave - Bugs: bug #55538, logspace BIST tests fail when...

 
 

bug #55538: logspace BIST tests fail when Octave built with LLVM libc++

Submitted by:  Dmitri A. Sergatskov <dasergatskov>
Submitted on:  Mon 21 Jan 2019 04:11:40 PM UTC  
 
Category:  Configuration and Build System Severity:  2 - Minor
Priority:  5 - Normal Item Group:  None
Status:  Confirmed Assigned to:  None
Originator Name:  Open/Closed:  Open
Release:  dev Operating System:  Any

Add a New Comment(Rich Markup)
   

You are not logged in

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

 

Mon 21 Jan 2019 10:25:38 PM UTC, comment #2:

Here is a revised test program:

And the output:

The difference seems to be that LLVM promotes a non-complex argument to its complex equivalent and uses 'exp(y*log(x))' on those two values. GCC computes the result as a special case for a non-complex base and a complex exponent. Both runtimes agree on the underlying return values, they just disagree about whether 'pow(double, complex<double>)' should be computed as a special case or not.

So basically the same as this difference in Octave when built with GCC:

If built with LLVM these will return the same thing.

I can't tell from cppreference whether this is an ambiguity in the spec or whether either one is definitively correct.

Mike Miller <mtmiller>
Project Administrator
Mon 21 Jan 2019 05:50:04 PM UTC, comment #1:

I can confirm that this bug is entirely within the LLVM libc++ standard library.

The following C++ program reflects a relevant piece of what Octave is doing in the failing test:

This program prints '(-inf,inf)' as expected, except when compiled with the LLVM C++ library:

Does anyone know if this result is dictated by the C++ standard? If so, is there already an open LLVM bug report that we can link to?

Mike Miller <mtmiller>
Project Administrator
Mon 21 Jan 2019 04:11:40 PM UTC, original submission:

When octave compiled with clang and llvm's libc++ library
(which is usually the case on macOS), the test general/logspace.m
fails:

This particular case is on Fedora 29, clang 7.0.1 libc++ 7.0.0.
hg id ada14ef3067f (stable)

The test passes when octave compiled with clang and libstdc++.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>

 

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

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by dasergatskov (Submitted the item)
  •  

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

    Only project members can vote.

     

     

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-01-21 mtmiller Severity3 - Normal => 2 - Minor
        StatusNone => Confirmed
        Releaseother => dev
        Summarytest logscape fails on clang/libc++ compile => logspace BIST tests fail when Octave built with LLVM libc++

    Back to the top


    Powered by Savane 3.4