Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

A rational coefficient beside a variable never reaches a fixed point at the safe ceiling

Đang mở
#1,200 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
csharp
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu với ConstantFoldTest.ACoefficientBesideAVariableStallsRatherThanRunsAway và RunawayBreadthTest để tái hiện hành vi bão hòa đã đo được. Đọc các rule Rearranges và Common được nêu trong issue, sau đó xác định liệu dạng chuẩn với hệ số hữu tỉ hay hướng một chiều cho rule có phù hợp hay không; công việc được xem là hoàn tất khi có một kết quả bị giới hạn và kết thúc, cùng với mức độ bao phủ hồi quy được mô tả.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

At the safe ceiling (RulesUpTo(Rearranges)), seven of the 3,630 shapes in the growth corpus never
report a fixed point, and they are one family: a rational coefficient beside a variable.

Measured (build 98a9420c, after #1198)

WorkBudget { Steps = 200_000, Time = 30 s }, one input per graph:

input fixed point e-nodes after 30 s e-nodes after 2 s extracted
2 * x * 1/2 no 158 — x
x * 1/2 * 2 no 135 — x
(2 - 0) * x * 1/2 no 159 182 x
x / x * -x no 583 464 -x
x / x * x * 1/2 no 249 282 x / 2
x / x * x ^ (-2) no 317 291 x ^ (-2)
1 / (1/2) * x * 1/2 no 159 181 x
x ^ 2 / x no 145 109 x
2 ^ (-1) / sqrt(1/2) no, step ceiling 1,565 1,072 sqrt(1/2)

So this is a stall, not a runaway: the graph barely grows with fifteen times the budget, and
every extraction is right. ConstantFoldTest.ACoefficientBesideAVariableStallsRatherThanRunsAway
pins it in both directions — an entry that starts saturating is to be deleted, and one that grows
past a thousand e-nodes has stopped being a stall.

What it is

The spellings of a coefficient beside a variable — 1/2 * x, x / 2, x * 2 ^ (-1),
2 ^ (-1) * x — are exchanged by Rearranges rules (a-reciprocal-rational-factor-is-a-division,
a-reciprocal-power-is-a-quotient, the quotient and product regrouping rules of Common), and a
fresh spelling keeps appearing at the edge of what has been rewritten, so a pass never comes back
empty. Before #1198 the same rules ran away on constant-only input (2 - 0 + 0 * 2, 54 cases),
because with nothing folding a number the spellings were unbounded; folding rationals on
insertion bounded the family without closing it. RunawayBreadthTest had called these rules
"confluent on plain arithmetic" from three inputs; it now says what was measured.

What would close it, not decided

Either a normal form for a rational coefficient inside the graph — c * x with c a literal,
folded on insertion the way a rational over rationals now is — or an orientation among the
spelling rules so that only one direction fires under saturation. The first is a mechanism; the
second is what the growth ceiling already does for expanding rules and would need a marker for
"rearranges, but one way". Neither is worth doing until something calls the graph on this shape;
Transformation.CanonicalizationOverGraph is offered, not applied.

Found while measuring #746 tier 2 item 4 (PR #1198). Related: the budget overshoot on these
same inputs, filed separately.

Ngôn ngữ chính
C#
Star
831
Fork
79
Merge trung bình
2 giờ 22 phút
Pull request đã merge (30 ngày)
507

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ASC-Community/AngouriMath

Tất cả issue của ASC-Community/AngouriMath

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.