A rational coefficient beside a variable never reaches a fixed point at the safe ceiling
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza con ConstantFoldTest.ACoefficientBesideAVariableStallsRatherThanRunsAway y RunawayBreadthTest para reproducir el comportamiento de saturación medido. Lee las reglas Rearranges y Common mencionadas en la issue y determina después si es apropiada una forma normal con coeficientes racionales o una orientación unidireccional de las reglas; el trabajo estará terminado cuando haya un resultado acotado y terminante con la cobertura de regresión descrita.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- 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
-
type/automation type/tech-debt
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
High-DPI fixes for release/1.3: editor toolbar icons and Color Picker layout (patch included)Abiertono-stack-trace
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
v9 review: TestingAbiertodocs/external squad/utforming
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Altinn/altinn-studio#21041 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
stryker-mutator/stryker-net#3892 ·
Los mantenedores suelen responder en 1 día