Cosine rounding failure on macOS
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia compilando ed eseguendo il riproduttore C++ minimale con Apple Clang, quindi confronta rounded_transc_std con rounded_transc_exact. Leggi l’implementazione degli intervalli raggiunta tramite boost/numeric/interval.hpp e la relativa politica di arrotondamento trascendentale. Il lavoro è completato quando cosine produce un intervallo non vuoto con estremi ordinati correttamente sotto Clang, preservando al contempo il comportamento segnalato di GCC.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I am running into issues with the interval library when compiling with Clang. This is the simple failure case:
#include <iomanip>
#include <iostream>
#include <boost/numeric/interval.hpp>
typedef boost::numeric::interval<
double,
boost::numeric::interval_lib::policies<
boost::numeric::interval_lib::save_state<
boost::numeric::interval_lib::rounded_transc_std<double> >,
boost::numeric::interval_lib::checking_base<double> > >
Interval;
int main(int argc, char* argv[])
{
Interval theta = Interval(0.79358805865013693);
Interval output = cos(theta);
std::cout << std::setprecision(std::numeric_limits<double>::digits10 + 1)
<< "[" << output.lower() << ", " << output.upper() << "]"
<< std::endl;
std::cout << "is empty: "
<< (output.lower() > output.upper() ? "true" : "false")
<< std::endl;
}
The output when compiled with clang is:
[0.7012920012119436, 0.7012920012119435]
is empty: true
You can see that the last digit was rounded improperly resulting in an empty interval. If I try the same case but use rounded_transc_exact for the rounding policy It works as expected:
[0.7012920012119437, 0.7012920012119437]
is empty: false
My compiler info is
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin19.3.0
Thread model: posix
and the example is compiled in debug mode. The examples works fine on GCC (specifically I tested on gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008)
Is this an expected failure for Clang?
- Lingua principale
- C++
- Stelle
- 31
- Fork
- 48
- Merge medio
- 1g 13h
- PR unite (30g)
- 6
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di boostorg/interval
-
Emscripten compilation issueAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
Tutte le issue di boostorg/interval
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ROCm/rocm-systems#13754 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
raspberrypi/libpisp#80 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
nanoporetech/pod5-file-format#198 ·
-
Upstream changes to reviewAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
rhalbersma/xstd-ints#341 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
secondlife/lsl-definitions#222 ·
I maintainer di solito rispondono entro 9 giorni