Cosine rounding failure on macOS
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza compilando y ejecutando el reproductor mínimo de C++ con Apple Clang; después, compara rounded_transc_std con rounded_transc_exact. Lee la implementación de intervalos a la que se llega a través de boost/numeric/interval.hpp y su política de redondeo de funciones trascendentes. La tarea estará completa cuando cosine produzca un intervalo no vacío con límites correctamente ordenados bajo Clang, conservando al mismo tiempo el comportamiento reportado de GCC.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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?
- Lenguaje dominante
- C++
- Estrellas
- 31
- Forks
- 48
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 6
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de boostorg/interval
-
Emscripten compilation issueAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
Todos los issues de boostorg/interval
Issues similares
-
os:Linux
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
acceptable_buffer_backends: unknown backend names are silently ignoredPosiblemente ocupada @mini-1235 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
ros2/rmw_fastrtps#945 ·
Los mantenedores suelen responder en 1 día
-
bot-triaged module: correctness (silent) module: mps module: NaNs and Infs triage review
Dificultad 2/5 Medio día Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
README: CI link/badge checkAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
SCIInstitute/SCIRun#2842 ·
Los mantenedores suelen responder en 3 días