Specify the reduced-interval accuracy of trigonometric polynomials
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 38/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- Rust
- 星标
- 56
- 派生
- 21
- 平均合并
- 20 小时 49 分钟
- 30 天内合并 PR
- 45
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
wavefnd/Wave 的其他 Issue
-
Reject unrepresentable POSIX listener descriptors before Unix-domain accept可能已有人在做 @ShahadatTest 于 2 天前认领。 未关闭bug good first issue
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
bug help wanted
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
-
bug help wanted
难度 4/5 3-5 天 新手友好度 53/100
维护者通常 1 天内回复
-
bug build help wanted
难度 4/5 3-5 天 新手友好度 56/100
维护者通常 1 天内回复
-
bug ci help wanted
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
apache/datafusion-iceberg#100 ·
维护者通常 1 天内回复
-
[Bug]: cua-driver skill fails Agent Skills frontmatter validation可能已有人在做 @Mearman 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
area/tools bug session-analysis
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 80/100
oracle/rust-oracledb#66 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复