Hacker News new | past | comments | ask | show | jobs | submit login

Risch is not automatic.



Because there is no known algorithm for deciding equality. It becomes automatic if we assume an oracle. Since deciding equality is an open problem and the answer is probably 'no there isn't a decidable equality algorithm' it is as good an answer as we are going to get.


You are assuming that we care about expressing the integral as a function. Given that with autodiff, we don't actually get the function expression, presumably with autodiff, we also wouldn't get it.


In automatic differentiation we depend on the fact that a closed form elementary solution exists even if we don't calculate it directly.

For integration we need to prove that such a object exists for each expression we want to integrate before we try integrating. Which as far as I'm aware is a problem equivalent to that solved by the Risch algorithm.


> For integration we need to prove that such a object exists for each expression we want to integrate before we try integrating.

Can't we just integrate away and check if it's correct by differentiating it back?

EDIT: oh, I guess that's why we need to be able to check for function equality :)


It's been over a decade since I studied it, but from memory you could also end up in infinite loops when you start generating the closed form solution if it doesn't exist. Which with as much hand waving as possible is ultimately equivalent to the computer function form auto integration would produce.


These things seem impossible in theory but in practice you just set a time limit.


Math algorithms are the one area where good enough really isn't good enough.


OK but that's not how automatic differentiation would work?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: