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

Implement loose vs. strict evaluation #51

Closed
dpsanders opened this issue Aug 26, 2015 · 2 comments
Closed

Implement loose vs. strict evaluation #51

dpsanders opened this issue Aug 26, 2015 · 2 comments

Comments

@dpsanders
Copy link
Member

As pointed out by Warwick Tucker, it is necessary to be able to turn on and off "loose evaluation" (in which the part of an interval outside the domain of a function is ignored, i.e. for sqrt([-1,1]), and "hard evaluation", in which an exception is thrown.

This is because fixed-point results do not hold with loose evaluation.
This is implemented, for example, in filib

It will be necessary to have a global switch, and then two new types of exception, TotalDomainError and PartialDomainError, for example.

EDIT: When there is no overlap with the domain of the function and loose evaluation is in place, we should return the empty interval. However, it is not clear how to handle this in the context of multidimensional intervals.

@lbenet
Copy link
Member

lbenet commented Aug 27, 2015

I agree; incidentally, great micro-curse and discussion!

The global switch essentially should constrain the interval with the functional domain for "loose evaluation" (for log it is [0,Inf]), as we already do. For "hard evaluation" we should not constrain the interval (or take the trivial intersection with [-Inf,Inf]), and let Julia throw a DomainError() if there are problems.

Or are you thinking on something more sofisticated?

@dpsanders
Copy link
Member Author

This will be possible (I believe) via decorations, required by the IEEE 1788 standard #67.

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

2 participants