Validated transforms
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 30/100
Rechercherichtung
Beginne damit, das BigFloat RoundDown/RoundUp-Beispiel aus dem Issue zu reproduzieren, und untersuche anschließend src/transforms_mpfr.c und dessen ccall-Arithmetik. Prüfe die beteiligten Operationen, einschließlich des gemeldeten Falls mpfr_neg, und verifiziere, dass validierte Transforms unter beiden Rundungsmodi ohne den Token-Fehler korrekt funktionieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
This would be fun. As seen below, it almost "just works," but would require a careful investigation into https://github.com/MikaelSlevinsky/FastTransforms/blob/master/src/transforms_mpfr.c. The ccalls pass on Base.MPFR.RoundingMode[] to the C library, so it's just a matter of making sure every arithmetic operation is appropriate for RoundUp/Down. For example, I think the token error is due to using mpfr_neg.
julia> using FastTransforms
julia> setrounding(BigFloat, RoundDown)
MPFRRoundDown::MPFRRoundingMode = 3
julia> pd = plan_leg2cheb(BigFloat, 10)
FastTransforms Legendre--Chebyshev plan for 10-element array of BigFloat
julia> Pd = lmul!(pd, Matrix{BigFloat}(I, 10, 10));
julia> setrounding(BigFloat, RoundUp)
MPFRRoundUp::MPFRRoundingMode = 2
julia> pu = plan_leg2cheb(BigFloat, 10)
FastTransforms Legendre--Chebyshev plan for 10-element array of BigFloat
julia> Pu = lmul!(pu, Matrix{BigFloat}(I, 10, 10));
julia> Pu-Pd # rigorously off by only one entry
10×10 Array{BigFloat,2}:
0.0 0.0 -2.15904e-78 0.0 2.15904e-78 0.0 2.15904e-78 0.0 3.23856e-78 0.0
0.0 0.0 0.0 8.63617e-78 0.0 8.63617e-78 0.0 1.07952e-77 0.0 8.63617e-78
0.0 0.0 0.0 0.0 8.63617e-78 0.0 8.63617e-78 0.0 1.07952e-77 0.0
0.0 0.0 0.0 1.72723e-77 0.0 1.29543e-77 0.0 1.29543e-77 0.0 1.29543e-77
0.0 0.0 0.0 0.0 1.72723e-77 0.0 1.72723e-77 0.0 1.51133e-77 0.0
0.0 0.0 0.0 0.0 0.0 2.59085e-77 0.0 1.94314e-77 0.0 1.51133e-77
0.0 0.0 0.0 0.0 0.0 0.0 3.45447e-77 0.0 1.94314e-77 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.88628e-77 0.0 2.15904e-77
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.88628e-77 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.31808e-77
julia>
- Vorherrschende Sprache
- Julia
- Sterne
- 284
- Forks
- 28
- Ø Merge
- 17 Std. 49 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus JuliaApproximation/FastTransforms.jl
-
Loading FastTransforms.jl can make FFTs via FFTW.jl 100x slower due to threading conflictsEvtl. vergeben @dlfivefifty hat das vor 120 Tagen übernommen. Offen
JuliaApproximation/FastTransforms.jl#267 · 2 Reaktionen · 2 zugewiesene Personen ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
JuliaApproximation/FastTransforms.jl#266 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
JuliaApproximation/FastTransforms.jl#263 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
JuliaApproximation/FastTransforms.jl#257 · 1 Kommentar ·
-
Allocating lmul!Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
JuliaApproximation/FastTransforms.jl#253 · 7 Kommentare ·
Alle Issues in JuliaApproximation/FastTransforms.jl
Ähnliche Issues
-
lux
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
erfinv(::Float16) and erfcinv(::Float16) are wrong for abs(x) <= 0.75 (erfinv(Float16(0)) == 0.2201)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
JuliaMath/SpecialFunctions.jl#571 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100