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

Dividing by a reciprocal gives a value where the quotient has none: 1/(1/x) is x

Đang mở
#1,648 19 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ó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/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

Start with O4 in SimplificationContract.md and reproduce the listed expressions using work/soundcheck. Trace the named rules in Common, CollapseMultipleFractions, Power, CommonDenominator, and Trigonometric, then compare with the rational canonical form issue #1618. Done means simplification preserves the original definedness conditions and regression checks cover the reported cases.

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

Mô tả

What you ran:

"1/(1/x)".Simplify();
"(x^(-1))^(-1)".Simplify();
"a / csc(x)".Simplify();
"1 / sec(x)".Simplify();
"1 / cotan(x)".Simplify();
"a / (b / x)".Simplify();
"a / x^(-1)".Simplify();
"(y + 2) / y^(-1)".Simplify();

What it did: each answer has a value where the expression has none. Measured on master at dcf5ba7c:

expression Simplify at expression there answer there
1/(1/x) x x = 0 NaN 0
(x^(-1))^(-1) x x = 0 NaN 0
a / csc(x) sin(x) * a x = 0 NaN 0
1 / sec(x) cos(x) x = pi/2 NaN 0
1 / cotan(x) tan(x) x = 0 NaN 0
a / (b / x) a * x / b provided not b = 0 x = 0 NaN 0
a / x^(-1) a * x x = 0 NaN 0
(y + 2) / y^(-1) (2 + y) * y y = 0 NaN 0

The last one keeps b's condition and drops x's.

What it should have done: keep the condition the expression was defined under, as cancelling already does: (1/x)/(1/x) is 1 provided not x = 0. O4 of SimplificationContract.md forbids turning undefined into a value.

The rules that do it, found by applying each rule on its own and comparing both sides at sample points (work/soundcheck, for #1252): dividing-by-a-quotient-multiplies-by-its-reciprocal (Common), quotient-whose-denominator-is-a-quotient and quotient-of-two-quotients (CollapseMultipleFractions), a-power-of-a-power-multiplies-the-exponents (Power), a-quotient-of-symbolic-parts-is-grouped-pairwise (CommonDenominator, at all three levels), and a-quotient-by-a-cosecant-is-a-sine (Trigonometric). a-power-times-a-product-containing-its-own-base-raises-the-exponent widens too (y^0 * y → y^1), but Simplify keeps that condition by another route. #1618 is the same defect in the rational canonical form.

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.