Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

等式や不等式を解くやつをもっとかしこくする #144

Closed
5 tasks done
kmyk opened this issue Aug 5, 2021 · 0 comments · Fixed by #191
Closed
5 tasks done

等式や不等式を解くやつをもっとかしこくする #144

kmyk opened this issue Aug 5, 2021 · 0 comments · Fixed by #191
Labels
good first issue Good for newcomers

Comments

@kmyk
Copy link
Collaborator

kmyk commented Aug 5, 2021

Description / 説明

@hotman78#135src/Jikka/Core/Convert/EqualitySolving.hs を足してくれた。整数についてはそこそこ動く。しかし全部をやりきったわけではないはずで、さらなる改善の余地はある。

例:

  • b >= ab > aa <= ba < b に直す。>=> のことは考えなくてよくなって楽
    • a <= ba < b || a == b にするとか a < ba <= b && a != b にするとかは、するべきかすべきでないか不明
  • 等号の対称律を使った変換。つまり左右を入れ替える。複雑な式を左辺に集めて定数を右辺に集めることにしておくと他の規則が書きやすいはず
  • 組み込み関数の単射性を用いた最適化。単射 f に対し f(a) = f(b) があったら a = b にできる
    • 整数の場合は ... = 0 に揃えられてるので f(a) - f(b) = 0- f(a) + f(b) = 0a - b = 0 にするやつも
    • もう一方がすでに計算済みの場合にもうまくやる。たとえば - a = - ba = b にできるだけでなく - a = 0a = 0 にできる
@kmyk kmyk added the good first issue Good for newcomers label Aug 5, 2021
@kmyk kmyk closed this as completed in #191 Aug 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant