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

More general IfElse conditionals? #5

Open
dromaiidae opened this issue Dec 18, 2020 · 1 comment
Open

More general IfElse conditionals? #5

dromaiidae opened this issue Dec 18, 2020 · 1 comment
Labels
research Future research direction

Comments

@dromaiidae
Copy link
Collaborator

dromaiidae commented Dec 18, 2020

Future research direction in extending IfElse conditionals past affine expressions

e.g. division, polynomials, piecewise affine, general black box functions

@dromaiidae dromaiidae added enhancement New feature or request wontfix This will not be worked on research Future research direction and removed wontfix This will not be worked on enhancement New feature or request labels Dec 18, 2020
@saipraveenb25
Copy link
Collaborator

There are two approches we could take, to allow for more general functions.

  1. Invertible maps. We have added support for a BiMap operator that acts as a two-way let expression. The invertibility allows us to process deltas expressed in the mapped coordinates. Several maps can be composed together to create more complicated expressions. For example the radial coordinate transform can be used to create a circular condition. Composing the radial coordinates with a scaling map creates ellipses (and so on). Unfortunately, some expressions are difficult (and in some cases impossible) to invert and therefore cannot be expressed using BiMaps. An example would be a fifth degree polynomial which are theoretically impossible to invert (in the general case).

  2. Implicit method. This is much more involved and uses Stokes' theorem, but works without requiring inversion, at the cost of time complexity. We'll likely implement this much later.

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

No branches or pull requests

2 participants