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

Add rotation operations to BitvectorFormulaManager #362

Closed
wants to merge 7 commits into from

Conversation

leventeBajczi
Copy link
Contributor

As discussed in #360, this PR adds enhances the rotateRight and rotateLeft operations in the bitvector formula manager.

I added implementations for solvers that do not directly support rotation-by-bitvector, by using shift operations. Therefore, all bitvector-supporting solvers can also use rotation now.

@leventeBajczi
Copy link
Contributor Author

All tests seem to pass, but Princess is very slow in the bvRotateByBV test. Maybe it is worth disabling that test for Princess as to not make testing take too long (and bvIsIdenticalAfterFullRotation tests Princess's rotation capabilities to some degree)

@leventeBajczi leventeBajczi changed the title Add rotation operations to BitvectorFormulaManagerRotate Add rotation operations to BitvectorFormulaManager Mar 23, 2024
@leventeBajczi
Copy link
Contributor Author

Yes, even in the AppVeyor the test experienced a timeout with princess. I'll disable it.

kfriedberger added a commit that referenced this pull request Mar 24, 2024
@kfriedberger
Copy link
Member

The idea to use mod/rem for computing the shift is very good.
I adapted your solution and applied it in 12ceedf.

Princess is quite slow for BV theory, and BV-rotation seems to be beyond its limits, for now.

I will close this PR without merging.

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

Successfully merging this pull request may close these issues.

2 participants