Validated transforms
まだ誰も着手していません。
評価
調査の方向性
まず、issue にある BigFloat RoundDown/RoundUp の例を再現し、次に src/transforms_mpfr.c とその ccall 算術を調査します。報告された mpfr_neg のケースを含め、関係する操作を監査し、検証済みの transforms が両方の丸めモードで token error なしに正しく動作することを確認してください。
索引モデルが issue の本文から書いたものです。
説明
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>
- 主要言語
- Julia
- スター
- 282
- フォーク
- 27
- 平均マージ
- 53分
- マージ済み PR(30日)
- 1
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaApproximation/FastTransforms.jl のほかの issue
-
Loading FastTransforms.jl can make FFTs via FFTW.jl 100x slower due to threading conflicts対応中かも @dlfivefifty が 90 日前に担当しました。 オープン
JuliaApproximation/FastTransforms.jl#267 · リアクション 2 件 · 担当者 2 名 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
JuliaApproximation/FastTransforms.jl#266 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
JuliaApproximation/FastTransforms.jl#263 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaApproximation/FastTransforms.jl#257 · コメント 1 件 ·
-
Allocating lmul!オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
JuliaApproximation/FastTransforms.jl#253 · コメント 7 件 ·
JuliaApproximation/FastTransforms.jl の issue をすべて見る
似ている issue
-
documentation
難易度 2/5 半日 初心者へのやさしさ 65/100
メンテナーはふだん 6 日以内に返信
-
broken links in docsオープン
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
JuliaPhysics/BeamletOptics.jl#127 ·
メンテナーはふだん 1 日以内に返信
-
Chains resumed from `initial_state` take `num_warmup + 1` warm-up steps対応中かも @thevolatilebit が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
TuringLang/AbstractMCMC.jl#220 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信