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

split dual AD and mathematical types #10

Closed
mlubin opened this issue May 31, 2014 · 2 comments
Closed

split dual AD and mathematical types #10

mlubin opened this issue May 31, 2014 · 2 comments

Comments

@mlubin
Copy link
Contributor

mlubin commented May 31, 2014

There seems to be some conflict over whether we should follow the mathematical convention for dual numbers or use the definitions that allow dual numbers to be dropped in automatically to compute derivatives. I propose separating these into two separate types to settle the conflict.

As the primary use of DualNumbers, as far as I'm aware, is for computing derivatives, I'd argue that the AD type should keep the name Dual. This also avoids breakage downstream. Perhaps DualAlg could be used for the algebraic/mathematical type?

@Scidom @andreasnoackjensen

@papamarkou
Copy link
Contributor

It's ok @mlubin, there is no actual conflict, at least not on my part. I think we both agree that the mathematically correct definition of dual equality differs from the one that serves the practical purposes of autodiff. We also both agree that the latter is what is used in practice. For this reason, as I have previously mentioned, I don't mind if we change the existing mathematical definition of equality to match that of autodiff. By that I mean that you can simply change the definition without needing to proceed and define a second type to satisfy mathematical equality. If for any reason mathametical equality arises in the future as a programming need, then we can create the second type - for now simply change the definition of == to save yourself from extra unnecessary work.

@andreasnoack
Copy link
Member

I also don't think that it is worth spending time on a DualAlg type. The purpose for this package is to allow automatic differentiation so I think it is fine just to use the special definitions here. It would be nice to keep a note about that in the documentation though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants