Skip to content

Deprecate .modulo(), add .smod(), .rem()#365

Merged
kfriedberger merged 14 commits into
sosy-lab:masterfrom
leventeBajczi:fix-modulo
Mar 24, 2024
Merged

Deprecate .modulo(), add .smod(), .rem()#365
kfriedberger merged 14 commits into
sosy-lab:masterfrom
leventeBajczi:fix-modulo

Conversation

@leventeBajczi

Copy link
Copy Markdown
Contributor

As discussed in #360, the .modulo() method on the BitvectorFormulaManager API is misleading, because it creates a {s,u}rem operation. Therefore, we deprecate the method, and add separate .smod() and .rem() methods.

The (now deprecated) .modulo() operation delegates to the .rem() operation.

leventeBajczi and others added 14 commits March 23, 2024 21:53
This is another API-incompatible change in recent history,
and we do not want to touch this location twice (also from user perspective),
A new major version of JavaSMT is required anyway.
The previous implementation did not correctly encode smodule-by-zero.

Additionally, using a basis of srem instead of urem allows to simplify the encoding.
The hardest part of programming is documentation :-)
@kfriedberger kfriedberger merged commit 9a994a1 into sosy-lab:master Mar 24, 2024
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