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

Special function support for interpreted floating point #159

Open
robdockins opened this issue Sep 22, 2021 · 3 comments
Open

Special function support for interpreted floating point #159

robdockins opened this issue Sep 22, 2021 · 3 comments
Labels
enhancement New feature or request

Comments

@robdockins
Copy link
Contributor

In order to represent programs that use trigonometric and complex mathematics, we should add representation support for special functions on real and floating-point values. Of course, very little solver support for such things exists, but we can at least treat such functions as uninterpreted, or perhaps state useful range restrictions or identities about them.

This will be necessary to, e.g., represent most of the standard C functions from math.h and similar constructs in other languages.

@robdockins
Copy link
Contributor Author

At a minimum, we should support standard and hyperbolic trig functions, exponential and log functions. We might also look at things like gamma, erf, Bessel functions, etc.

@robdockins
Copy link
Contributor Author

PR #160 makes strides in this direction. I'm not sure when we should call this "done" but this initial work adds support for what i think are the most popular functions.

Currently, the SpecialFunctions module exposes information about domain, range and symmetry properties of these functions that are not used anywhere. Moreover, the IEEE-754 floating point mode and the real mode do not handle any of the special functions. Probably, we should add, at a minimum, support for treating these functions as uninterpreted.

@RyanGlScott
Copy link
Contributor

#163 adds support for Pow.

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

No branches or pull requests

2 participants