Specify the reduced-interval accuracy of trigonometric polynomials
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- compilers, performance, testing-qa
Línea de trabajo
Start with std/math/trig.wave:69, the reported small-angle probes, and the related large-angle work in #600. Before changing code, discuss the proposed absolute, relative, and ULP contract with @LunaStev, including behavior near zeros and poles. Done means the bounds are agreed, independent high-precision fixtures cover interval and quadrant boundaries, the reduced-interval approximation meets the contract, and the #600 regressions plus separate f32 wrapper checks still pass.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Motivation
Small-angle testing avoids the large-angle reduction problem fixed in #600. At x=0.75, sin_f64 is 92 ULP from a 100-digit nearest reference; near pi/4 it is 184 ULP. cos differs by 4/10 ULP for those inputs. No correct-rounding contract is currently promised.
Starting point: std/math/trig.wave:69.
Validation
Audited canonical Wave 540728c2eb6cc12f5c69c3fb3fdb96e07ba059a4 (0.0.1-alpha-dev), whose tree matches the local checkout. Validation: Executed exact-bit small-angle probes and high-precision oracle; independent of huge-argument phase loss. Executed compiler probes use the matching checkout-built compiler and std on Linux amd64 (Rust 1.89.0 / LLVM 21.1.8). Source/header or mocked checks are not native execution on another OS.
Scope
Set an explicit error envelope for the reduced-interval sin/cos polynomial and resulting tan behavior. Improve the approximation only to meet that agreed goal; do not reopen the already replaced large-angle reduction algorithm as the same defect.
Related: #600. These links do not claim those broader or completed scopes are unfinished.
Design discussion required
This issue records a proposal or an unresolved contract; it is not approval to choose new semantics. Please mention @LunaStev to discuss the design before starting implementation.
Completion criteria
- Define small/reduced-interval absolute/relative/ULP bounds and behavior near zeros/poles.
- Use independent high-precision fixtures at interval/quadrant boundaries.
- Retain #600 large-angle and non-finite regressions; verify f32 wrappers separately.
- Lenguaje dominante
- Rust
- Estrellas
- 56
- Forks
- 21
- Merge medio
- 22 h 57 min
- PR fusionados (30 d)
- 46
Preparar el entorno
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 wavefnd/Wave
-
Reject unrepresentable POSIX listener descriptors before Unix-domain acceptPosiblemente ocupada @ShahadatTest la tomó hace 3 días. Abiertobug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
wavefnd/Wave#1082 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
bug help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 53/100
Los mantenedores suelen responder en 1 día
-
bug build help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 56/100
Los mantenedores suelen responder en 1 día
-
bug ci help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de wavefnd/Wave
Issues similares
-
An EXE started from the shell with MAXALLOC FFFFh leaves a 0-paragraph free block after its ownAbiertobug low-priority
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
dividebysandwich/rust-dos#629 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
eliasstravik/herdr-projects#758 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
enhancement needs:sonnet ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día