Fix dom_power issue on 32bit machine#197
Merged
ClementPernet merged 1 commit intomasterfrom Dec 16, 2021
Merged
Conversation
Member
|
LGTM. |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
dom_power is used to compute
n^l. In the code of masterlis taken as an long.This causes some issues on 32 bits machine (see for exemple linbox-team/linbox#293).
In this PR, I propose to switch the type from long to uint64_t.
First, I think an unsigned type should be used: in the code of dom_power, the argument
lis immediatly cast to anunsigned longand the bit representation of this value is used to perform a double and add algorithm. It means that calling dom_power with a negativelis incorrect (except in the case where order(n) = ULONG_MAX+1).Second, I think that using a type with a fixed size is clearer: just looking at the prototype of the function tells you the maximum possible value of the exponent.
This PR fixes linbox-team/linbox#293