Change the type of variable "missing" in Entry when fvalue type is double #49
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.
According to the comment in
predictor.h,Entryworks well as intended for floatElementTypecase.But for the double 'ElementType' case, it is possible to misjudge valid floating point value as missing value.
Due to the size difference between int and double data types,
fvaluerepresents valid floating point value even thoughmissingis set to -1. And this means many other valid floating point values whose lower 4 bytes are 0xffffffff can also be misjudged as missing value by the check!(data[xx].missing != -1).Therefore, I would like to suggest changing the code a little bit like this PR.
In this PR, the type of
missingbecomes "long" when theElementTypeis double, sofvaluerepresents-NaNwhen themissingis set to -1. As a result, there is no possibility for valid floating point values to be misjudged as missing values, as originally intended.