Dividing by a reciprocal gives a value where the quotient has none: 1/(1/x) is x
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C#
- Estrellas
- 831
- Forks
- 79
- Merge medio
- 2 h 22 min
- PR fusionados (30 d)
- 507
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ASC-Community/AngouriMath
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
ASC-Community/AngouriMath#1807 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ASC-Community/AngouriMath#1692 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
ASC-Community/AngouriMath#1690 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
ASC-Community/AngouriMath#1689 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
ASC-Community/AngouriMath#1684 ·
Los mantenedores suelen responder en 1 día
Todos los issues de ASC-Community/AngouriMath
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
Esri/calcite-dotnet-toolkit#30 · 1 reacción ·
-
VideoViewer: rotated (portrait phone) videos shown sideways when system decimal separator is a commaAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Volodymyr-Petrunin/Bankomaten#45 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
thekid/inotify-win#45 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
AvaloniaUI/Avalonia#22420 ·
Los mantenedores suelen responder en 1 día